Преглед изворни кода

Merge remote-tracking branch 'origin/dev'

* origin/dev: (42 commits)
  fix: 修复个人页底部菜单界面底部镂空的问题
  fix: 修复在手机输入页面进行其他方式登录后,没有返回首页的问题
  feat: 补充正式环境的 APNs 推送配置
  feat: 调整技能示例图的展示方式
  fix: 修复 IM 离线推送的配置问题,以及补充官方消息跳转逻辑支持 deeplink 逻辑
  feat: 补充清理缓存的弹窗
  fix: 修复官方消息跳转界面没展示的问题
  fix: 接入腾讯 IM 离线推送
  fix: 修复 IM 页面顶部信息展示异常的问题
  feat: 修改兴趣的时候,需要重新加载首页
  fix: 修复创建技能后跳转的界面异常的问题
  feat: 修复 IM 会话列表闪烁的问题
  feat: 官方消息无跳转链接时,不展示跳转界面
  feat: 调整技能价格相关展示
  feat: 调整技能价格展示逻辑
  feat: 移除腾讯推送组建
  feat: 调整金豆界面逻辑
  fix: 修复技能选择项异常的问题
  feat: 补充语言选择弹窗
  feat: 重新设计透明导航栏逻辑
  ...
陈文艺 пре 1 месец
родитељ
комит
fef3ea4ff1
100 измењених фајлова са 829 додато и 24 уклоњено
  1. 62 20
      Lanu.xcodeproj/project.pbxproj
  2. 78 0
      Lanu.xcodeproj/xcshareddata/xcschemes/Lanu_Debug.xcscheme
  3. 78 0
      Lanu.xcodeproj/xcshareddata/xcschemes/Lanu_Release.xcscheme
  4. 2 2
      Lanu.xcworkspace/xcshareddata/swiftpm/Package.resolved
  5. 17 0
      Lanu/AppDelegate.swift
  6. 6 0
      Lanu/Assets.xcassets/JoinUs/Contents.json
  7. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_1.imageset/Contents.json
  8. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_1.imageset/ic_avatar_example_1@2x.png
  9. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_1.imageset/ic_avatar_example_1@3x.png
  10. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_2.imageset/Contents.json
  11. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_2.imageset/ic_avatar_example_2@2x.png
  12. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_2.imageset/ic_avatar_example_2@3x.png
  13. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_3.imageset/Contents.json
  14. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_3.imageset/ic_avatar_example_3@2x.png
  15. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_3.imageset/ic_avatar_example_3@3x.png
  16. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_4.imageset/Contents.json
  17. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_4.imageset/ic_avatar_example_4@2x.png
  18. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_4.imageset/ic_avatar_example_4@3x.png
  19. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_5.imageset/Contents.json
  20. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_5.imageset/ic_avatar_example_5@2x.png
  21. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_5.imageset/ic_avatar_example_5@3x.png
  22. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_6.imageset/Contents.json
  23. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_6.imageset/ic_avatar_example_6@2x.png
  24. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_6.imageset/ic_avatar_example_6@3x.png
  25. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_7.imageset/Contents.json
  26. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_7.imageset/ic_avatar_example_7@2x.png
  27. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_7.imageset/ic_avatar_example_7@3x.png
  28. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_8.imageset/Contents.json
  29. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_8.imageset/ic_avatar_example_8@2x.png
  30. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_8.imageset/ic_avatar_example_8@3x.png
  31. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_correct.imageset/Contents.json
  32. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_correct.imageset/ic_avatar_example_correct@2x.png
  33. BIN
      Lanu/Assets.xcassets/JoinUs/ic_avatar_example_correct.imageset/ic_avatar_example_correct@3x.png
  34. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_join_us_header_bg.imageset/Contents.json
  35. BIN
      Lanu/Assets.xcassets/JoinUs/ic_join_us_header_bg.imageset/ic_join_us_header_bg@2x.png
  36. BIN
      Lanu/Assets.xcassets/JoinUs/ic_join_us_header_bg.imageset/ic_join_us_header_bg@3x.png
  37. 2 2
      Lanu/Assets.xcassets/JoinUs/ic_join_us_review.imageset/Contents.json
  38. BIN
      Lanu/Assets.xcassets/JoinUs/ic_join_us_review.imageset/ic_join_us_review@2x.png
  39. BIN
      Lanu/Assets.xcassets/JoinUs/ic_join_us_review.imageset/ic_join_us_review@3x.png
  40. 22 0
      Lanu/Assets.xcassets/JoinUs/ic_join_us_review_bg.imageset/Contents.json
  41. BIN
      Lanu/Assets.xcassets/JoinUs/ic_join_us_review_bg.imageset/ic_join_us_review_bg@2x.png
  42. BIN
      Lanu/Assets.xcassets/JoinUs/ic_join_us_review_bg.imageset/ic_join_us_review_bg@3x.png
  43. BIN
      Lanu/Assets.xcassets/Login/google.imageset/google@2x.png
  44. BIN
      Lanu/Assets.xcassets/Login/google.imageset/google@3x.png
  45. 22 0
      Lanu/Assets.xcassets/Login/ic_google.imageset/Contents.json
  46. BIN
      Lanu/Assets.xcassets/Login/ic_google.imageset/ic_google@2x.png
  47. BIN
      Lanu/Assets.xcassets/Login/ic_google.imageset/ic_google@3x.png
  48. 22 0
      Lanu/Assets.xcassets/Login/ic_login_phone.imageset/Contents.json
  49. BIN
      Lanu/Assets.xcassets/Login/ic_login_phone.imageset/ic_login_phone@2x.png
  50. BIN
      Lanu/Assets.xcassets/Login/ic_login_phone.imageset/ic_login_phone@3x.png
  51. 22 0
      Lanu/Assets.xcassets/Login/ic_login_phone_bg.imageset/Contents.json
  52. BIN
      Lanu/Assets.xcassets/Login/ic_login_phone_bg.imageset/ic_login_phone_bg@2x.png
  53. BIN
      Lanu/Assets.xcassets/Login/ic_login_phone_bg.imageset/ic_login_phone_bg@3x.png
  54. 22 0
      Lanu/Assets.xcassets/Profile/Mine/ic_profile_join_us.imageset/Contents.json
  55. BIN
      Lanu/Assets.xcassets/Profile/Mine/ic_profile_join_us.imageset/ic_profile_join_us@2x.png
  56. BIN
      Lanu/Assets.xcassets/Profile/Mine/ic_profile_join_us.imageset/ic_profile_join_us@3x.png
  57. BIN
      Lanu/Assets.xcassets/Profile/Mine/ic_profile_records.imageset/ic_profile_records@2x.png
  58. BIN
      Lanu/Assets.xcassets/Profile/Mine/ic_profile_records.imageset/ic_profile_records@3x.png
  59. 22 0
      Lanu/Assets.xcassets/Profile/Skill/ic_skill_edit.imageset/Contents.json
  60. BIN
      Lanu/Assets.xcassets/Profile/Skill/ic_skill_edit.imageset/ic_skill_edit@2x.png
  61. BIN
      Lanu/Assets.xcassets/Profile/Skill/ic_skill_edit.imageset/ic_skill_edit@3x.png
  62. BIN
      Lanu/Assets.xcassets/Wallet/ic_bean_bg.imageset/ic_bean_bg@2x.png
  63. BIN
      Lanu/Assets.xcassets/Wallet/ic_bean_bg.imageset/ic_bean_bg@3x.png
  64. 22 0
      Lanu/Assets.xcassets/common/Check/ic_check_26.imageset/Contents.json
  65. BIN
      Lanu/Assets.xcassets/common/Check/ic_check_26.imageset/ic_check_26@2x.png
  66. BIN
      Lanu/Assets.xcassets/common/Check/ic_check_26.imageset/ic_check_26@3x.png
  67. 0 0
      Lanu/Assets.xcassets/common/Search/ic_magnifyingglass.imageset/Contents.json
  68. 0 0
      Lanu/Assets.xcassets/common/Search/ic_magnifyingglass.imageset/ic_ magnifyingglass@2x.png
  69. 0 0
      Lanu/Assets.xcassets/common/Search/ic_magnifyingglass.imageset/ic_ magnifyingglass@3x.png
  70. 22 0
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_pause.imageset/Contents.json
  71. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_pause.imageset/ic_voice_edit_pause@2x.png
  72. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_pause.imageset/ic_voice_edit_pause@3x.png
  73. 22 0
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_play.imageset/Contents.json
  74. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_play.imageset/ic_voice_edit_play@2x.png
  75. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_play.imageset/ic_voice_edit_play@3x.png
  76. 22 0
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_remake.imageset/Contents.json
  77. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_remake.imageset/ic_voice_edit_remake@2x.png
  78. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_remake.imageset/ic_voice_edit_remake@3x.png
  79. 22 0
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_review.imageset/Contents.json
  80. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_review.imageset/ic_voice_edit_review@2x.png
  81. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_review.imageset/ic_voice_edit_review@3x.png
  82. 22 0
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_start.imageset/Contents.json
  83. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_start.imageset/ic_voice_edit_start@2x.png
  84. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_start.imageset/ic_voice_edit_start@3x.png
  85. 22 0
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_stop.imageset/Contents.json
  86. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_stop.imageset/ic_voice_edit_stop@2x.png
  87. BIN
      Lanu/Assets.xcassets/common/Voice/ic_voice_edit_stop.imageset/ic_voice_edit_stop@3x.png
  88. 6 0
      Lanu/Assets.xcassets/common/Wallet/Contents.json
  89. 0 0
      Lanu/Assets.xcassets/common/Wallet/ic_wallet.imageset/Contents.json
  90. BIN
      Lanu/Assets.xcassets/common/Wallet/ic_wallet.imageset/ic_wallet@2x.png
  91. BIN
      Lanu/Assets.xcassets/common/Wallet/ic_wallet.imageset/ic_wallet@3x.png
  92. 22 0
      Lanu/Assets.xcassets/common/Wallet/ic_wallet_with_bg.imageset/Contents.json
  93. 0 0
      Lanu/Assets.xcassets/common/Wallet/ic_wallet_with_bg.imageset/ic_wallet@2x.png
  94. 0 0
      Lanu/Assets.xcassets/common/Wallet/ic_wallet_with_bg.imageset/ic_wallet@3x.png
  95. 6 0
      Lanu/Assets.xcassets/common/XMark/Contents.json
  96. 22 0
      Lanu/Assets.xcassets/common/XMark/ic_x_mark.imageset/Contents.json
  97. BIN
      Lanu/Assets.xcassets/common/XMark/ic_x_mark.imageset/ic_x_mark@2x.png
  98. BIN
      Lanu/Assets.xcassets/common/XMark/ic_x_mark.imageset/ic_x_mark@3x.png
  99. 22 0
      Lanu/Assets.xcassets/common/ic_settings.imageset/Contents.json
  100. BIN
      Lanu/Assets.xcassets/common/ic_settings.imageset/ic_settings@2x.png

+ 62 - 20
Lanu.xcodeproj/project.pbxproj

@@ -14,7 +14,7 @@
 		FB9CD11E2EC1EEF30033B14B /* GoogleSignIn in Frameworks */ = {isa = PBXBuildFile; productRef = FB9CD11D2EC1EEF30033B14B /* GoogleSignIn */; };
 		FB9EAE7B2F011ACD00E77B7C /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB9EAE7A2F011ACD00E77B7C /* StoreKit.framework */; };
 		FB9FCD262EF25D6B00DDAAC9 /* SDWebImage in Frameworks */ = {isa = PBXBuildFile; productRef = FB9FCD252EF25D6B00DDAAC9 /* SDWebImage */; };
-		FBECA9BE2EC1C50F0013A5E6 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = FBECA9BD2EC1C50F0013A5E6 /* SnapKit */; };
+		FBA06B692F18F7D300DDD745 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = FBA06B682F18F7D300DDD745 /* SnapKit */; };
 		FBECA9C42EC1C5250013A5E6 /* AutoCodable in Frameworks */ = {isa = PBXBuildFile; productRef = FBECA9C32EC1C5250013A5E6 /* AutoCodable */; };
 		FBECA9CA2EC1C8240013A5E6 /* CocoaLumberjackSwift in Frameworks */ = {isa = PBXBuildFile; productRef = FBECA9C92EC1C8240013A5E6 /* CocoaLumberjackSwift */; };
 		FBECAA1D2EC1C8860013A5E6 /* CocoaLumberjackSwiftLogBackend in Frameworks */ = {isa = PBXBuildFile; productRef = FBECAA1C2EC1C8860013A5E6 /* CocoaLumberjackSwiftLogBackend */; };
@@ -50,8 +50,10 @@
 				"Common/Extension/NSObject+Extension.swift",
 				"Common/Extension/String+Extension.swift",
 				"Common/Extension/TimeInterval+Extension.swift",
+				"Common/Extension/UIButton+Theme.swift",
 				"Common/Extension/UIColor+Extension.swift",
 				"Common/Extension/UIImage+Extension.swift",
+				"Common/Extension/UIScrollView+Extension.swift",
 				"Common/Extension/UITableView+Extension.swift",
 				"Common/Extension/UIView+Extension.swift",
 				"Common/Extension/URL+Extension.swift",
@@ -65,20 +67,23 @@
 				"Common/Theme/UIFont+Theme.swift",
 				"Common/Theme/UIImage+Theme.swift",
 				"Common/Theme/UIImageView+Theme.swift",
+				Common/Views/Base/LNFakeNaviBar.swift,
 				Common/Views/Base/LNNavigationController.swift,
 				Common/Views/Base/LNViewController.swift,
-				Common/Views/Gender/LNGenderView.swift,
 				Common/Views/ImagePreview/LNImagePreviewCell.swift,
 				Common/Views/ImagePreview/LNImagePreviewController.swift,
 				Common/Views/ImageUpload/LNFeedbackImageUploadView.swift,
 				Common/Views/ImageUpload/LNMultiImagesUploadView.swift,
 				Common/Views/ImageUpload/LNUploadImageView.swift,
 				Common/Views/LNAutoSizeTextView.swift,
-				Common/Views/LNBirthdayDatePickerPanel.swift,
+				Common/Views/LNCaptchaInputView.swift,
 				Common/Views/LNCircleProgressView.swift,
+				Common/Views/LNCountrySelectPanel.swift,
+				Common/Views/LNGenderView.swift,
 				Common/Views/LNOnlineView.swift,
 				Common/Views/LNPopupView.swift,
 				Common/Views/LNSortedEditView.swift,
+				Common/Views/LNTextField.swift,
 				Common/Views/LNVoiceWaveView.swift,
 				Common/Views/Loading/LNLoadingView.swift,
 				Common/Views/Menu/LNBottomSheetMenu.swift,
@@ -86,6 +91,10 @@
 				Common/Views/NoMoreView/LNNoMoreDataView.swift,
 				Common/Views/ScrollView/LNNestedScrollView.swift,
 				Common/Views/ScrollView/LNNestedTableView.swift,
+				Common/Views/Selection/LNDatePickerPanel.swift,
+				Common/Views/Selection/LNHourRangePickerPanel.swift,
+				Common/Views/Selection/LNMultiSelectionPanel.swift,
+				Common/Views/Selection/LNSingleSelectionPanel.swift,
 				Common/Views/StackView/LNAutoFillStackView.swift,
 				Common/Views/StackView/LNMultiLineStackView.swift,
 				Common/Views/StarScore/LNFiveStarScoreView.swift,
@@ -102,7 +111,7 @@
 				"GoogleService-Info-Release.plist",
 				Localizable.xcstrings,
 				Manager/Account/LNAccountManager.swift,
-				"Manager/Account/Network/LNHttpManager+Login.swift",
+				"Manager/Account/Network/LNHttpManager+Account.swift",
 				Manager/Account/Network/LNLoginResponse.swift,
 				Manager/Config/LNConfigManager.swift,
 				Manager/Config/Network/LNConfigResponse.swift,
@@ -150,10 +159,26 @@
 				Manager/Relation/Network/LNRelationResponse.swift,
 				Manager/Report/LNReportManager.swift,
 				"Manager/Report/Network/LNHttpManager+Report.swift",
+				Manager/Statistic/LNStatisticManager.swift,
+				"Manager/Statistic/Network/LNHttpManager+Statistic.swift",
+				Manager/Statistic/Network/LNStatisticResponse.swift,
 				SceneDelegate.swift,
 				Views/Game/Category/LNGameCategoryListView.swift,
 				Views/Game/Category/LNGameCategoryListViewController.swift,
 				Views/Game/Category/LNGameCategoryTabView.swift,
+				Views/Game/Join/Input/BaseInfo/LNJoinUsInputInfoView.swift,
+				Views/Game/Join/Input/BaseInfo/LNLanguageSelectPanel.swift,
+				Views/Game/Join/Input/BindPhone/LNJoinUsInputCaptchaView.swift,
+				Views/Game/Join/Input/BindPhone/LNJoinUsInputPhoneView.swift,
+				Views/Game/Join/Input/Example/LNJoinUsPhotoExamplePanel.swift,
+				Views/Game/Join/Input/Example/LNJoinUsVoiceExamplePanel.swift,
+				Views/Game/Join/Input/LNJoinUsAvatarExamplePanel.swift,
+				Views/Game/Join/Input/LNJoinUsHeaderView.swift,
+				Views/Game/Join/Input/LNJoinUsInputFieldGroupView.swift,
+				Views/Game/Join/Input/LNJoinUsViewController.swift,
+				Views/Game/Join/Input/SkillInfo/LNJoinUsSelectSkillView.swift,
+				Views/Game/Join/Input/SkillInfo/LNJoinUsSkillFieldsEditView.swift,
+				Views/Game/Join/Review/LNJoinUsReviewViewController.swift,
 				Views/Game/MateFilter/LNGameCategoryFilterPanel.swift,
 				Views/Game/MateFilter/LNGameFilterPanel.swift,
 				Views/Game/MateFilter/LNGameMateFilterPanel.swift,
@@ -161,10 +186,26 @@
 				Views/Game/MateList/LNGameMateListMenuView.swift,
 				Views/Game/MateList/LNGameMateListView.swift,
 				Views/Game/MateList/LNGameMateListViewController.swift,
+				Views/Game/OrderCenter/LNGameMateCenterViewController.swift,
+				Views/Game/OrderCenter/LNOrderAcceptSettingsViewController.swift,
+				Views/Game/OrderCenter/Skill/LNSkillCreateViewController.swift,
+				Views/Game/OrderCenter/Skill/LNSkillEditViewController.swift,
+				Views/Game/OrderCenter/Skill/LNSkillFieldsEditView.swift,
+				Views/Game/OrderCenter/Skill/LNSkillManagerViewController.swift,
+				Views/Game/OrderCenter/Skill/LNSkillReviewViewController.swift,
+				Views/Game/OrderCenter/Visitors/LNVisitorItemCell.swift,
+				Views/Game/OrderCenter/Visitors/LNVisitorsViewController.swift,
+				Views/Game/Skill/Edit/LNSkillFieldBaseEditView.swift,
+				Views/Game/Skill/Edit/LNSkillFieldMultiLineEditView.swift,
+				Views/Game/Skill/Edit/LNSkillFieldPhotoEditView.swift,
+				Views/Game/Skill/Edit/LNSkillFieldPriceEditView.swift,
+				Views/Game/Skill/Edit/LNSkillFieldSelectionEditView.swift,
+				Views/Game/Skill/Edit/LNSkillFieldSingleLineEditView.swift,
+				Views/Game/Skill/Edit/LNSkillFieldVoiceEditView.swift,
 				Views/Game/Skill/LNSkillBottomMenuView.swift,
 				Views/Game/Skill/LNSkillDetailViewController.swift,
-				Views/Game/Skill/LNSkillNaviBarView.swift,
 				Views/Game/Skill/LNSkillPhotosView.swift,
+				Views/Game/Skill/LNSkillSettingMenu.swift,
 				Views/Game/Skill/LNSkillTagView.swift,
 				Views/Game/Skill/LNSkillUserInfoView.swift,
 				Views/Game/Skill/LNSkillVoiceBarView.swift,
@@ -194,7 +235,6 @@
 				Views/IM/Chat/InputMenu/LNIMChatTextInputView.swift,
 				Views/IM/Chat/InputMenu/LNIMChatVoiceInputView.swift,
 				Views/IM/Chat/InputMenu/LNIMChatVoiceWaveView.swift,
-				Views/IM/Chat/LNIMChatTopMenuView.swift,
 				Views/IM/Chat/LNIMChatViewController.swift,
 				Views/IM/Chat/UserMenu/LNIMChatUserMenuView.swift,
 				Views/IM/Chat/ViewModel/LNIMChatViewModel.swift,
@@ -204,8 +244,9 @@
 				Views/IM/Notify/Cell/LNIMOfficialMessageCell.swift,
 				Views/IM/Notify/LNIMOfficialMessageViewController.swift,
 				Views/Login/LNLoginPanel.swift,
-				Views/Login/LNLoginViewController.swift,
 				Views/Login/LNPrivacyTextView.swift,
+				Views/Login/Phone/LNLoginCaptchaInputViewController.swift,
+				Views/Login/Phone/LNLoginPhoneInputViewController.swift,
 				Views/Login/Setup/LNBaseInfoSetupViewController.swift,
 				Views/Login/Setup/LNGenderSetupViewController.swift,
 				Views/Login/Setup/LNInterestSetupViewController.swift,
@@ -240,7 +281,9 @@
 				Views/Profile/Edit/LNEditNickNamePanel.swift,
 				Views/Profile/Edit/LNEditProfilePhotoWallView.swift,
 				Views/Profile/Edit/LNEditProfileViewController.swift,
+				Views/Profile/Edit/LNEditVoicePanel.swift,
 				Views/Profile/Mine/LNMineFunctionView.swift,
+				Views/Profile/Mine/LNMineOrderRecordView.swift,
 				Views/Profile/Mine/LNMineQRCodeShareView.swift,
 				Views/Profile/Mine/LNMineUserInfoView.swift,
 				Views/Profile/Mine/LNMineViewController.swift,
@@ -251,7 +294,6 @@
 				Views/Profile/Post/LNPostSkillSelectPanel.swift,
 				Views/Profile/Profile/LNProfileBottomMenu.swift,
 				Views/Profile/Profile/LNProfileInfosView.swift,
-				Views/Profile/Profile/LNProfileNaviBarView.swift,
 				Views/Profile/Profile/LNProfilePhotoWall.swift,
 				Views/Profile/Profile/LNProfileScoreFloatingView.swift,
 				Views/Profile/Profile/LNProfileSkillListView.swift,
@@ -264,7 +306,6 @@
 				"Views/Profile/Relation/LNCommonAlertView+Relation.swift",
 				Views/Profile/Relation/LNUserRelationItemCell.swift,
 				Views/Profile/Relation/LNUserRelationListView.swift,
-				Views/Profile/Relation/LNUserRelationNaviBarView.swift,
 				Views/Profile/Relation/LNUserRelationViewController.swift,
 				Views/Report/LNReportViewController.swift,
 				Views/Search/LNUserSearchHistoryView.swift,
@@ -276,6 +317,7 @@
 				Views/Settings/LNLanguageSettingPanel.swift,
 				Views/Settings/LNNewVersionView.swift,
 				Views/Settings/LNSettingsViewController.swift,
+				Views/Wallet/Bean/LNBeanViewController.swift,
 				Views/Wallet/Coin/LNCoinViewController.swift,
 				Views/Wallet/Diamond/LNDiamondViewController.swift,
 				Views/Wallet/LNExchangePanel.swift,
@@ -316,10 +358,10 @@
 				FB696C172EC96C0F00FAD639 /* MJRefresh in Frameworks */,
 				FB9CD11B2EC1EEA10033B14B /* FirebaseCrashlytics in Frameworks */,
 				FBECA9C42EC1C5250013A5E6 /* AutoCodable in Frameworks */,
-				FBECA9BE2EC1C50F0013A5E6 /* SnapKit in Frameworks */,
 				FB9CD11E2EC1EEF30033B14B /* GoogleSignIn in Frameworks */,
 				FB9EAE7B2F011ACD00E77B7C /* StoreKit.framework in Frameworks */,
 				314B1B286681A79A6D153299 /* Pods_Gami.framework in Frameworks */,
+				FBA06B692F18F7D300DDD745 /* SnapKit in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -416,13 +458,13 @@
 			mainGroup = FBFE13B72EBC39B000DCE6E9;
 			minimizedProjectReferenceProxies = 1;
 			packageReferences = (
-				FBECA9BC2EC1C50F0013A5E6 /* XCRemoteSwiftPackageReference "SnapKit" */,
 				FBECA9C22EC1C5250013A5E6 /* XCRemoteSwiftPackageReference "AutoCodable" */,
 				FBECAA192EC1C8860013A5E6 /* XCRemoteSwiftPackageReference "CocoaLumberjack" */,
 				FB9CD1172EC1EEA10033B14B /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
 				FB9CD11C2EC1EEF30033B14B /* XCRemoteSwiftPackageReference "GoogleSignIn-iOS" */,
 				FB696C152EC96C0F00FAD639 /* XCRemoteSwiftPackageReference "MJRefresh" */,
 				FB9FCD242EF25D6B00DDAAC9 /* XCRemoteSwiftPackageReference "SDWebImage" */,
+				FBA06B672F18F7D300DDD745 /* XCRemoteSwiftPackageReference "SnapKit" */,
 			);
 			preferredProjectObjectVersion = 77;
 			productRefGroup = FBFE13C12EBC39B000DCE6E9 /* Products */;
@@ -531,12 +573,12 @@
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = Lanu/Lanu.entitlements;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 33;
+				CURRENT_PROJECT_VERSION = 34;
 				DEVELOPMENT_TEAM = 5H8D98R72W;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
 				INFOPLIST_FILE = Lanu/Info.plist;
-				INFOPLIST_KEY_CFBundleDisplayName = Gami;
+				INFOPLIST_KEY_CFBundleDisplayName = "Gami(Debug)";
 				INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
 				INFOPLIST_KEY_NSAccessoryTrackingUsageDescription = "";
 				INFOPLIST_KEY_NSCameraUsageDescription = "need permission";
@@ -552,7 +594,7 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.0.1;
+				MARKETING_VERSION = 1.1.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.jiehe.gami;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -580,7 +622,7 @@
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_ENTITLEMENTS = Lanu/Lanu.entitlements;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 33;
+				CURRENT_PROJECT_VERSION = 34;
 				DEVELOPMENT_TEAM = 5H8D98R72W;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -601,7 +643,7 @@
 					"$(inherited)",
 					"@executable_path/Frameworks",
 				);
-				MARKETING_VERSION = 1.0.1;
+				MARKETING_VERSION = 1.1.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.jiehe.gami;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -804,12 +846,12 @@
 				minimumVersion = 5.21.3;
 			};
 		};
-		FBECA9BC2EC1C50F0013A5E6 /* XCRemoteSwiftPackageReference "SnapKit" */ = {
+		FBA06B672F18F7D300DDD745 /* XCRemoteSwiftPackageReference "SnapKit" */ = {
 			isa = XCRemoteSwiftPackageReference;
 			repositoryURL = "http://8.134.139.102:10880/chenwenyi/SnapKit.git";
 			requirement = {
 				kind = upToNextMajorVersion;
-				minimumVersion = 5.7.1;
+				minimumVersion = 5.7.2;
 			};
 		};
 		FBECA9C22EC1C5250013A5E6 /* XCRemoteSwiftPackageReference "AutoCodable" */ = {
@@ -864,9 +906,9 @@
 			package = FB9FCD242EF25D6B00DDAAC9 /* XCRemoteSwiftPackageReference "SDWebImage" */;
 			productName = SDWebImage;
 		};
-		FBECA9BD2EC1C50F0013A5E6 /* SnapKit */ = {
+		FBA06B682F18F7D300DDD745 /* SnapKit */ = {
 			isa = XCSwiftPackageProductDependency;
-			package = FBECA9BC2EC1C50F0013A5E6 /* XCRemoteSwiftPackageReference "SnapKit" */;
+			package = FBA06B672F18F7D300DDD745 /* XCRemoteSwiftPackageReference "SnapKit" */;
 			productName = SnapKit;
 		};
 		FBECA9C32EC1C5250013A5E6 /* AutoCodable */ = {

+ 78 - 0
Lanu.xcodeproj/xcshareddata/xcschemes/Lanu_Debug.xcscheme

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "2600"
+   version = "1.7">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES"
+      buildArchitectures = "Automatic">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "FBFE13BF2EBC39B000DCE6E9"
+               BuildableName = "Gami.app"
+               BlueprintName = "Gami"
+               ReferencedContainer = "container:Lanu.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      shouldAutocreateTestPlan = "YES">
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "FBFE13BF2EBC39B000DCE6E9"
+            BuildableName = "Gami.app"
+            BlueprintName = "Gami"
+            ReferencedContainer = "container:Lanu.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Debug"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "FBFE13BF2EBC39B000DCE6E9"
+            BuildableName = "Gami.app"
+            BlueprintName = "Gami"
+            ReferencedContainer = "container:Lanu.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Debug"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 78 - 0
Lanu.xcodeproj/xcshareddata/xcschemes/Lanu_Release.xcscheme

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "2600"
+   version = "1.7">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES"
+      buildArchitectures = "Automatic">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "FBFE13BF2EBC39B000DCE6E9"
+               BuildableName = "Gami.app"
+               BlueprintName = "Gami"
+               ReferencedContainer = "container:Lanu.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      shouldAutocreateTestPlan = "YES">
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Release"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "FBFE13BF2EBC39B000DCE6E9"
+            BuildableName = "Gami.app"
+            BlueprintName = "Gami"
+            ReferencedContainer = "container:Lanu.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "FBFE13BF2EBC39B000DCE6E9"
+            BuildableName = "Gami.app"
+            BlueprintName = "Gami"
+            ReferencedContainer = "container:Lanu.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Release">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 2 - 2
Lanu.xcworkspace/xcshareddata/swiftpm/Package.resolved

@@ -186,8 +186,8 @@
       "kind" : "remoteSourceControl",
       "location" : "http://8.134.139.102:10880/chenwenyi/SnapKit.git",
       "state" : {
-        "revision" : "2842e6e84e82eb9a8dac0100ca90d9444b0307f4",
-        "version" : "5.7.1"
+        "revision" : "0456911aa90276968dbcee48f011629aef6f2f4e",
+        "version" : "5.7.2"
       }
     },
     {

+ 17 - 0
Lanu/AppDelegate.swift

@@ -35,6 +35,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
         if let url = launchOptions?[.url] as? URL {
             LNDeeplinkManager.shared.handleDeepLink(url)
         }
+        reportLanguage()
         
         return true
     }
@@ -54,6 +55,22 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
     }
 }
 
+extension AppDelegate {
+    @objc func businessID() -> Int32 {
+        LNIMManager.shared.offlinePushAppId
+    }
+    
+    @objc func onRemoteNotificationReceived(_ notice: String?) -> Bool {
+        false
+    }
+}
+
+extension AppDelegate {
+    private func reportLanguage() {
+        LNProfileManager.shared.reportCurrentLanguage(code: LNAppConfig.shared.curLang.languageCode) { _ in }
+    }
+}
+
 extension AppDelegate {
     private func setupFirebase() {
 #if DEBUG

+ 6 - 0
Lanu/Assets.xcassets/JoinUs/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_1.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_1@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_1@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_1.imageset/ic_avatar_example_1@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_1.imageset/ic_avatar_example_1@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_2.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_2@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_2@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_2.imageset/ic_avatar_example_2@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_2.imageset/ic_avatar_example_2@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_3.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_3@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_3@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_3.imageset/ic_avatar_example_3@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_3.imageset/ic_avatar_example_3@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_4.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_4@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_4@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_4.imageset/ic_avatar_example_4@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_4.imageset/ic_avatar_example_4@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_5.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_5@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_5@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_5.imageset/ic_avatar_example_5@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_5.imageset/ic_avatar_example_5@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_6.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_6@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_6@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_6.imageset/ic_avatar_example_6@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_6.imageset/ic_avatar_example_6@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_7.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_7@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_7@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_7.imageset/ic_avatar_example_7@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_7.imageset/ic_avatar_example_7@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_8.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_8@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_8@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_8.imageset/ic_avatar_example_8@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_8.imageset/ic_avatar_example_8@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_correct.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_avatar_example_correct@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_avatar_example_correct@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_correct.imageset/ic_avatar_example_correct@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_avatar_example_correct.imageset/ic_avatar_example_correct@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_join_us_header_bg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_join_us_header_bg@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_join_us_header_bg@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_join_us_header_bg.imageset/ic_join_us_header_bg@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_join_us_header_bg.imageset/ic_join_us_header_bg@3x.png


+ 2 - 2
Lanu/Assets.xcassets/Profile/Mine/ic_profile_records.imageset/Contents.json → Lanu/Assets.xcassets/JoinUs/ic_join_us_review.imageset/Contents.json

@@ -5,12 +5,12 @@
       "scale" : "1x"
     },
     {
-      "filename" : "ic_profile_records@2x.png",
+      "filename" : "ic_join_us_review@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },
     {
-      "filename" : "ic_profile_records@3x.png",
+      "filename" : "ic_join_us_review@3x.png",
       "idiom" : "universal",
       "scale" : "3x"
     }

BIN
Lanu/Assets.xcassets/JoinUs/ic_join_us_review.imageset/ic_join_us_review@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_join_us_review.imageset/ic_join_us_review@3x.png


+ 22 - 0
Lanu/Assets.xcassets/JoinUs/ic_join_us_review_bg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_join_us_review_bg@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_join_us_review_bg@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/JoinUs/ic_join_us_review_bg.imageset/ic_join_us_review_bg@2x.png


BIN
Lanu/Assets.xcassets/JoinUs/ic_join_us_review_bg.imageset/ic_join_us_review_bg@3x.png


BIN
Lanu/Assets.xcassets/Login/google.imageset/google@2x.png


BIN
Lanu/Assets.xcassets/Login/google.imageset/google@3x.png


+ 22 - 0
Lanu/Assets.xcassets/Login/ic_google.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_google@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_google@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/Login/ic_google.imageset/ic_google@2x.png


BIN
Lanu/Assets.xcassets/Login/ic_google.imageset/ic_google@3x.png


+ 22 - 0
Lanu/Assets.xcassets/Login/ic_login_phone.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_login_phone@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_login_phone@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/Login/ic_login_phone.imageset/ic_login_phone@2x.png


BIN
Lanu/Assets.xcassets/Login/ic_login_phone.imageset/ic_login_phone@3x.png


+ 22 - 0
Lanu/Assets.xcassets/Login/ic_login_phone_bg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_login_phone_bg@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_login_phone_bg@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/Login/ic_login_phone_bg.imageset/ic_login_phone_bg@2x.png


BIN
Lanu/Assets.xcassets/Login/ic_login_phone_bg.imageset/ic_login_phone_bg@3x.png


+ 22 - 0
Lanu/Assets.xcassets/Profile/Mine/ic_profile_join_us.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_profile_join_us@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_profile_join_us@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/Profile/Mine/ic_profile_join_us.imageset/ic_profile_join_us@2x.png


BIN
Lanu/Assets.xcassets/Profile/Mine/ic_profile_join_us.imageset/ic_profile_join_us@3x.png


BIN
Lanu/Assets.xcassets/Profile/Mine/ic_profile_records.imageset/ic_profile_records@2x.png


BIN
Lanu/Assets.xcassets/Profile/Mine/ic_profile_records.imageset/ic_profile_records@3x.png


+ 22 - 0
Lanu/Assets.xcassets/Profile/Skill/ic_skill_edit.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_skill_edit@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_skill_edit@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/Profile/Skill/ic_skill_edit.imageset/ic_skill_edit@2x.png


BIN
Lanu/Assets.xcassets/Profile/Skill/ic_skill_edit.imageset/ic_skill_edit@3x.png


BIN
Lanu/Assets.xcassets/Wallet/ic_bean_bg.imageset/ic_bean_bg@2x.png


BIN
Lanu/Assets.xcassets/Wallet/ic_bean_bg.imageset/ic_bean_bg@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Check/ic_check_26.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_check_26@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_check_26@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/Check/ic_check_26.imageset/ic_check_26@2x.png


BIN
Lanu/Assets.xcassets/common/Check/ic_check_26.imageset/ic_check_26@3x.png


+ 0 - 0
Lanu/Assets.xcassets/common/Search/ic_ magnifyingglass.imageset/Contents.json → Lanu/Assets.xcassets/common/Search/ic_magnifyingglass.imageset/Contents.json


+ 0 - 0
Lanu/Assets.xcassets/common/Search/ic_ magnifyingglass.imageset/ic_ magnifyingglass@2x.png → Lanu/Assets.xcassets/common/Search/ic_magnifyingglass.imageset/ic_ magnifyingglass@2x.png


+ 0 - 0
Lanu/Assets.xcassets/common/Search/ic_ magnifyingglass.imageset/ic_ magnifyingglass@3x.png → Lanu/Assets.xcassets/common/Search/ic_magnifyingglass.imageset/ic_ magnifyingglass@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_pause.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_voice_edit_pause@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_voice_edit_pause@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_pause.imageset/ic_voice_edit_pause@2x.png


BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_pause.imageset/ic_voice_edit_pause@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_play.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_voice_edit_play@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_voice_edit_play@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_play.imageset/ic_voice_edit_play@2x.png


BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_play.imageset/ic_voice_edit_play@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_remake.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_voice_edit_remake@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_voice_edit_remake@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_remake.imageset/ic_voice_edit_remake@2x.png


BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_remake.imageset/ic_voice_edit_remake@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_review.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_voice_edit_review@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_voice_edit_review@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_review.imageset/ic_voice_edit_review@2x.png


BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_review.imageset/ic_voice_edit_review@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_start.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_voice_edit_start@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_voice_edit_start@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_start.imageset/ic_voice_edit_start@2x.png


BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_start.imageset/ic_voice_edit_start@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_stop.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_voice_edit_stop@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_voice_edit_stop@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_stop.imageset/ic_voice_edit_stop@2x.png


BIN
Lanu/Assets.xcassets/common/Voice/ic_voice_edit_stop.imageset/ic_voice_edit_stop@3x.png


+ 6 - 0
Lanu/Assets.xcassets/common/Wallet/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 0 - 0
Lanu/Assets.xcassets/common/ic_wallet.imageset/Contents.json → Lanu/Assets.xcassets/common/Wallet/ic_wallet.imageset/Contents.json


BIN
Lanu/Assets.xcassets/common/Wallet/ic_wallet.imageset/ic_wallet@2x.png


BIN
Lanu/Assets.xcassets/common/Wallet/ic_wallet.imageset/ic_wallet@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/Wallet/ic_wallet_with_bg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_wallet@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_wallet@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 0 - 0
Lanu/Assets.xcassets/common/ic_wallet.imageset/ic_wallet@2x.png → Lanu/Assets.xcassets/common/Wallet/ic_wallet_with_bg.imageset/ic_wallet@2x.png


+ 0 - 0
Lanu/Assets.xcassets/common/ic_wallet.imageset/ic_wallet@3x.png → Lanu/Assets.xcassets/common/Wallet/ic_wallet_with_bg.imageset/ic_wallet@3x.png


+ 6 - 0
Lanu/Assets.xcassets/common/XMark/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
Lanu/Assets.xcassets/common/XMark/ic_x_mark.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_x_mark@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_x_mark@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/XMark/ic_x_mark.imageset/ic_x_mark@2x.png


BIN
Lanu/Assets.xcassets/common/XMark/ic_x_mark.imageset/ic_x_mark@3x.png


+ 22 - 0
Lanu/Assets.xcassets/common/ic_settings.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "ic_settings@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "ic_settings@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
Lanu/Assets.xcassets/common/ic_settings.imageset/ic_settings@2x.png


Неке датотеке нису приказане због велике количине промена