diff --git a/.DS_Store b/.DS_Store index 1f912b88..f06e609f 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/TLChat.xcodeproj/project.pbxproj b/TLChat.xcodeproj/project.pbxproj index 977ceb3e..9f2eefee 100644 --- a/TLChat.xcodeproj/project.pbxproj +++ b/TLChat.xcodeproj/project.pbxproj @@ -14,6 +14,13 @@ C2097EE81C52326500163B5C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C2097EE71C52326500163B5C /* main.m */; }; C2097F011C52326500163B5C /* TLChatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C2097F001C52326500163B5C /* TLChatTests.m */; }; C2097F0C1C52326500163B5C /* TLChatUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = C2097F0B1C52326500163B5C /* TLChatUITests.m */; }; + C20B8322204EA0190086F5E7 /* TLSettingSectionFooterView.m in Sources */ = {isa = PBXBuildFile; fileRef = C20B8321204EA0190086F5E7 /* TLSettingSectionFooterView.m */; }; + C20B8325204EA0340086F5E7 /* TLSettingSectionHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = C20B8324204EA0340086F5E7 /* TLSettingSectionHeaderView.m */; }; + C20B8329204EA2BC0086F5E7 /* TLPrivacySettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20B8328204EA2BC0086F5E7 /* TLPrivacySettingViewController.m */; }; + C20B8330204EA3140086F5E7 /* TLMineInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20B832C204EA3140086F5E7 /* TLMineInfoViewController.m */; }; + C20B8331204EA3140086F5E7 /* TLMineInfoAvatarCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C20B832F204EA3140086F5E7 /* TLMineInfoAvatarCell.m */; }; + C20B8335204EA31A0086F5E7 /* TLMyQRCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20B8334204EA3190086F5E7 /* TLMyQRCodeViewController.m */; }; + C20B8339204EA3300086F5E7 /* TLWalletViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C20B8338204EA32F0086F5E7 /* TLWalletViewController.m */; }; C23EE4701F7392540069885F /* TLExpressionDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C23EE4471F7392540069885F /* TLExpressionDetailViewController.m */; }; C23EE4761F7392550069885F /* TLExpressionChosenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C23EE4571F7392540069885F /* TLExpressionChosenViewController.m */; }; C23EE47C1F7392550069885F /* TLExpressionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C23EE4661F7392540069885F /* TLExpressionViewController.m */; }; @@ -57,6 +64,16 @@ C249DBBD2003AE5800702FA4 /* TLExpressionSearchResultViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C249DBBB2003AE5800702FA4 /* TLExpressionSearchResultViewController.m */; }; C25128E01FFB90DF00893400 /* TLExpressionDownloadButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C25128DF1FFB90DF00893400 /* TLExpressionDownloadButton.m */; }; C25129051FFBA84700893400 /* TLExpressionGroupModel+Download.m in Sources */ = {isa = PBXBuildFile; fileRef = C25129041FFBA84700893400 /* TLExpressionGroupModel+Download.m */; }; + C2531ABD204E3ED100D27C99 /* TLSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531ABC204E3ED000D27C99 /* TLSettingViewController.m */; }; + C2531AC7204E3FBF00D27C99 /* TLSettingItemNormalCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531AC0204E3FBF00D27C99 /* TLSettingItemNormalCell.m */; }; + C2531AC8204E3FBF00D27C99 /* TLMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531AC4204E3FBF00D27C99 /* TLMenuItem.m */; }; + C2531AC9204E3FBF00D27C99 /* TLMenuItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531AC5204E3FBF00D27C99 /* TLMenuItemCell.m */; }; + C2531ACC204E43CA00D27C99 /* TLSettingItemButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531ACB204E43CA00D27C99 /* TLSettingItemButtonCell.m */; }; + C2531ACF204E445500D27C99 /* TLSettingItemBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531ACE204E445500D27C99 /* TLSettingItemBaseCell.m */; }; + C2531B29204E85C300D27C99 /* TLAboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531B22204E85C300D27C99 /* TLAboutViewController.m */; }; + C2531B2A204E85C300D27C99 /* TLAboutFooterView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531B25204E85C300D27C99 /* TLAboutFooterView.m */; }; + C2531B2B204E85C300D27C99 /* TLAboutHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531B28204E85C300D27C99 /* TLAboutHeaderView.m */; }; + C2531B2F204E8B9E00D27C99 /* TLAccountSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2531B2E204E8B9E00D27C99 /* TLAccountSettingViewController.m */; }; C259CE881FF2283E0058FD6E /* UINavigationController+TLChat.m in Sources */ = {isa = PBXBuildFile; fileRef = C259CE861FF2283D0058FD6E /* UINavigationController+TLChat.m */; }; C259CE901FF2290D0058FD6E /* TLExpressionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = C259CE8A1FF2290D0058FD6E /* TLExpressionHelper.m */; }; C259CE911FF2290D0058FD6E /* TLDBExpressionStore.m in Sources */ = {isa = PBXBuildFile; fileRef = C259CE8D1FF2290D0058FD6E /* TLDBExpressionStore.m */; }; @@ -117,10 +134,6 @@ C29C6B6D2004FD200058ED75 /* TLMobileContactsAngel.m in Sources */ = {isa = PBXBuildFile; fileRef = C29C6B6C2004FD200058ED75 /* TLMobileContactsAngel.m */; }; C29C6B70200505390058ED75 /* TLMobileContactHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = C29C6B6F200505390058ED75 /* TLMobileContactHelper.m */; }; C2A92CA71F7A24DD0038CFAE /* TLDiscoverViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A92CA11F7A24D30038CFAE /* TLDiscoverViewController.m */; }; - C2A92CA81F7A24DF0038CFAE /* TLDiscoverViewController+Delegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A92C9F1F7A24D30038CFAE /* TLDiscoverViewController+Delegate.m */; }; - C2A92CA91F7A24E40038CFAE /* TLMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A92CA41F7A24D40038CFAE /* TLMenuItem.m */; }; - C2A92CAA1F7A24E60038CFAE /* TLMenuItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A92CA61F7A24D40038CFAE /* TLMenuItemCell.m */; }; - C2A92CB31F7A2B010038CFAE /* TLMineViewController+Delegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A92CAD1F7A29510038CFAE /* TLMineViewController+Delegate.m */; }; C2A92CB41F7A2B040038CFAE /* TLMineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A92CAF1F7A29510038CFAE /* TLMineViewController.m */; }; C2A92CB51F7A2B060038CFAE /* TLMineHeaderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A92CB21F7A29510038CFAE /* TLMineHeaderCell.m */; }; C2AF1FAA1C6B78F600617D98 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2AF1FA91C6B78F600617D98 /* WebKit.framework */; }; @@ -133,8 +146,7 @@ C2D7C8EC1F72464A00648CED /* TLSettingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8CB1F72464A00648CED /* TLSettingCell.m */; }; C2D7C8ED1F72464A00648CED /* TLSettingSwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8CD1F72464A00648CED /* TLSettingSwitchCell.m */; }; C2D7C8EE1F72464A00648CED /* TLSettingGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8D01F72464A00648CED /* TLSettingGroup.m */; }; - C2D7C8EF1F72464A00648CED /* TLSettingItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8D21F72464A00648CED /* TLSettingItem.m */; }; - C2D7C8F01F72464A00648CED /* TLSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8D41F72464A00648CED /* TLSettingViewController.m */; }; + C2D7C8F01F72464A00648CED /* TLBaseSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8D41F72464A00648CED /* TLBaseSettingViewController.m */; }; C2D7C8F11F72464A00648CED /* TLSettingFooterTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8D71F72464A00648CED /* TLSettingFooterTitleView.m */; }; C2D7C8F21F72464A00648CED /* TLSettingHeaderTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8D91F72464A00648CED /* TLSettingHeaderTitleView.m */; }; C2D7C8F51F72464A00648CED /* TLViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C8E21F72464A00648CED /* TLViewController.m */; }; @@ -214,32 +226,14 @@ C2D7CB561F72470400648CED /* TLConversationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C9D51F72470400648CED /* TLConversationCell.m */; }; C2D7CB571F72470400648CED /* Conversation.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2D7C9D71F72470400648CED /* Conversation.xcassets */; }; C2D7CB591F72470400648CED /* TLConversationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C9DB1F72470400648CED /* TLConversationViewController.m */; }; - C2D7CB5B1F72470400648CED /* TLBottleButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C9E31F72470400648CED /* TLBottleButton.m */; }; - C2D7CB5C1F72470400648CED /* TLBottleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C9E51F72470400648CED /* TLBottleViewController.m */; }; - C2D7CB5D1F72470400648CED /* TLGameViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7C9E81F72470400648CED /* TLGameViewController.m */; }; C2D7CB6F1F72470400648CED /* Discover.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2D7CA131F72470400648CED /* Discover.xcassets */; }; - C2D7CB711F72470400648CED /* TLScannerBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA191F72470400648CED /* TLScannerBackgroundView.m */; }; - C2D7CB721F72470400648CED /* TLScannerButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA1B1F72470400648CED /* TLScannerButton.m */; }; - C2D7CB731F72470400648CED /* TLScannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA1D1F72470400648CED /* TLScannerView.m */; }; - C2D7CB741F72470400648CED /* TLScannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA1F1F72470400648CED /* TLScannerViewController.m */; }; - C2D7CB751F72470400648CED /* TLScanningViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA211F72470400648CED /* TLScanningViewController.m */; }; - C2D7CB761F72470400648CED /* TLShakeSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA251F72470400648CED /* TLShakeSettingViewController.m */; }; - C2D7CB771F72470400648CED /* TLShakeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA281F72470400648CED /* TLShakeButton.m */; }; - C2D7CB781F72470400648CED /* TLShakeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA2A1F72470400648CED /* TLShakeViewController.m */; }; C2D7CB9B1F72470400648CED /* Launch.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2D7CA881F72470400648CED /* Launch.xcassets */; }; C2D7CB9C1F72470400648CED /* TLAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA8B1F72470400648CED /* TLAppDelegate.m */; }; C2D7CB9D1F72470500648CED /* TLLaunchManager+UserData.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA8E1F72470400648CED /* TLLaunchManager+UserData.m */; }; C2D7CB9E1F72470500648CED /* TLLaunchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA901F72470400648CED /* TLLaunchManager.m */; }; C2D7CBA01F72470500648CED /* TLSDKManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CA961F72470400648CED /* TLSDKManager.m */; }; - C2D7CBB31F72470500648CED /* TLMineInfoAvatarCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CACB1F72470400648CED /* TLMineInfoAvatarCell.m */; }; - C2D7CBB41F72470500648CED /* TLMyQRCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CACE1F72470400648CED /* TLMyQRCodeViewController.m */; }; - C2D7CBB51F72470500648CED /* TLMineInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAD01F72470400648CED /* TLMineInfoViewController.m */; }; C2D7CBB81F72470500648CED /* Mine.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2D7CAD81F72470400648CED /* Mine.xcassets */; }; - C2D7CBB91F72470500648CED /* TLWalletViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CADB1F72470400648CED /* TLWalletViewController.m */; }; C2D7CBBA1F72470500648CED /* TLSearchController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CADF1F72470400648CED /* TLSearchController.m */; }; - C2D7CBBB1F72470500648CED /* TLAboutHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAE31F72470400648CED /* TLAboutHeaderView.m */; }; - C2D7CBBC1F72470500648CED /* TLAboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAE51F72470400648CED /* TLAboutViewController.m */; }; - C2D7CBBD1F72470500648CED /* TLAccountAndSafetyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAE81F72470400648CED /* TLAccountAndSafetyViewController.m */; }; C2D7CBBE1F72470500648CED /* TLChatBackgroundSelectCell.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAEE1F72470400648CED /* TLChatBackgroundSelectCell.m */; }; C2D7CBBF1F72470500648CED /* TLChatBackgroundSelectViewController+CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAF01F72470400648CED /* TLChatBackgroundSelectViewController+CollectionView.m */; }; C2D7CBC01F72470500648CED /* TLChatBackgroundSelectViewController+Proxy.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAF21F72470400648CED /* TLChatBackgroundSelectViewController+Proxy.m */; }; @@ -248,10 +242,7 @@ C2D7CBC31F72470500648CED /* TLChatFontSettingView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAF91F72470400648CED /* TLChatFontSettingView.m */; }; C2D7CBC41F72470500648CED /* TLChatFontViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAFB1F72470400648CED /* TLChatFontViewController.m */; }; C2D7CBC51F72470500648CED /* TLCommonSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CAFD1F72470400648CED /* TLCommonSettingViewController.m */; }; - C2D7CBC61F72470500648CED /* TLHelpAndFeedbackViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CB001F72470400648CED /* TLHelpAndFeedbackViewController.m */; }; C2D7CBC71F72470500648CED /* TLNewMessageSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CB031F72470400648CED /* TLNewMessageSettingViewController.m */; }; - C2D7CBC81F72470500648CED /* TLPrivacySettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CB061F72470400648CED /* TLPrivacySettingViewController.m */; }; - C2D7CBC91F72470500648CED /* TLMineSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CB091F72470400648CED /* TLMineSettingViewController.m */; }; C2D7CBD51F72472700648CED /* TLWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CBD01F72472700648CED /* TLWebViewController.m */; }; C2D7CBD61F72472700648CED /* UIBarButtonItem+Back.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CBD21F72472700648CED /* UIBarButtonItem+Back.m */; }; C2D7CBD71F72472700648CED /* WKWebView+Post.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CBD41F72472700648CED /* WKWebView+Post.m */; }; @@ -290,6 +281,21 @@ C2D7CC7E1F72854200648CED /* TLDBMessageStore.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CC7C1F72854200648CED /* TLDBMessageStore.m */; }; C2D7CC861F72859600648CED /* TLDBConversationStore.m in Sources */ = {isa = PBXBuildFile; fileRef = C2D7CC851F72859600648CED /* TLDBConversationStore.m */; }; C2ECC77E2049433F00D3D7AB /* Moments.json in Resources */ = {isa = PBXBuildFile; fileRef = C2ECC77D2049433E00D3D7AB /* Moments.json */; }; + C2EE3222204F8C1300467298 /* TLSettingItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3221204F8C1200467298 /* TLSettingItem.m */; }; + C2EE325D204F938700467298 /* TLScanningViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3252204F938600467298 /* TLScanningViewController.m */; }; + C2EE325E204F938700467298 /* TLScannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3255204F938600467298 /* TLScannerViewController.m */; }; + C2EE325F204F938700467298 /* TLScannerButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3258204F938600467298 /* TLScannerButton.m */; }; + C2EE3260204F938700467298 /* TLScannerBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3259204F938600467298 /* TLScannerBackgroundView.m */; }; + C2EE3261204F938700467298 /* TLScannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE325A204F938600467298 /* TLScannerView.m */; }; + C2EE3266204F93CC00467298 /* TLGameViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3265204F93CB00467298 /* TLGameViewController.m */; }; + C2EE326E204F93D300467298 /* TLBottleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3269204F93D200467298 /* TLBottleViewController.m */; }; + C2EE326F204F93D300467298 /* TLBottleButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE326C204F93D200467298 /* TLBottleButton.m */; }; + C2EE327A204F93DF00467298 /* TLShakeSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3272204F93DE00467298 /* TLShakeSettingViewController.m */; }; + C2EE327B204F93DF00467298 /* TLShakeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3276204F93DE00467298 /* TLShakeViewController.m */; }; + C2EE327C204F93DF00467298 /* TLShakeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C2EE3279204F93DE00467298 /* TLShakeButton.m */; }; + C2EE327F204F943700467298 /* Bottle.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2EE327E204F943700467298 /* Bottle.xcassets */; }; + C2EE3283204F94A600467298 /* Scanner.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2EE3282204F94A600467298 /* Scanner.xcassets */; }; + C2EE3285204F94C800467298 /* Shake.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2EE3284204F94C800467298 /* Shake.xcassets */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -342,6 +348,20 @@ C2097F071C52326500163B5C /* TLChatUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TLChatUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C2097F0B1C52326500163B5C /* TLChatUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLChatUITests.m; sourceTree = ""; }; C2097F0D1C52326500163B5C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C20B8320204EA0190086F5E7 /* TLSettingSectionFooterView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLSettingSectionFooterView.h; sourceTree = ""; }; + C20B8321204EA0190086F5E7 /* TLSettingSectionFooterView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLSettingSectionFooterView.m; sourceTree = ""; }; + C20B8323204EA0340086F5E7 /* TLSettingSectionHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLSettingSectionHeaderView.h; sourceTree = ""; }; + C20B8324204EA0340086F5E7 /* TLSettingSectionHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLSettingSectionHeaderView.m; sourceTree = ""; }; + C20B8327204EA2BC0086F5E7 /* TLPrivacySettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLPrivacySettingViewController.h; sourceTree = ""; }; + C20B8328204EA2BC0086F5E7 /* TLPrivacySettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLPrivacySettingViewController.m; sourceTree = ""; }; + C20B832B204EA3140086F5E7 /* TLMineInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMineInfoViewController.h; sourceTree = ""; }; + C20B832C204EA3140086F5E7 /* TLMineInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMineInfoViewController.m; sourceTree = ""; }; + C20B832E204EA3140086F5E7 /* TLMineInfoAvatarCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMineInfoAvatarCell.h; sourceTree = ""; }; + C20B832F204EA3140086F5E7 /* TLMineInfoAvatarCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMineInfoAvatarCell.m; sourceTree = ""; }; + C20B8333204EA3190086F5E7 /* TLMyQRCodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMyQRCodeViewController.h; sourceTree = ""; }; + C20B8334204EA3190086F5E7 /* TLMyQRCodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMyQRCodeViewController.m; sourceTree = ""; }; + C20B8337204EA32F0086F5E7 /* TLWalletViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLWalletViewController.h; sourceTree = ""; }; + C20B8338204EA32F0086F5E7 /* TLWalletViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLWalletViewController.m; sourceTree = ""; }; C2142EC61C5326C30030B29B /* PrefixHeader.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; }; C23EE4461F7392540069885F /* TLExpressionDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLExpressionDetailViewController.h; sourceTree = ""; }; C23EE4471F7392540069885F /* TLExpressionDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLExpressionDetailViewController.m; sourceTree = ""; }; @@ -410,6 +430,26 @@ C25128DF1FFB90DF00893400 /* TLExpressionDownloadButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLExpressionDownloadButton.m; sourceTree = ""; }; C25129031FFBA84700893400 /* TLExpressionGroupModel+Download.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TLExpressionGroupModel+Download.h"; sourceTree = ""; }; C25129041FFBA84700893400 /* TLExpressionGroupModel+Download.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "TLExpressionGroupModel+Download.m"; sourceTree = ""; }; + C2531ABB204E3ED000D27C99 /* TLSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingViewController.h; sourceTree = ""; }; + C2531ABC204E3ED000D27C99 /* TLSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingViewController.m; sourceTree = ""; }; + C2531AC0204E3FBF00D27C99 /* TLSettingItemNormalCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingItemNormalCell.m; sourceTree = ""; }; + C2531AC1204E3FBF00D27C99 /* TLSettingItemNormalCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingItemNormalCell.h; sourceTree = ""; }; + C2531AC3204E3FBF00D27C99 /* TLMenuItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMenuItemCell.h; sourceTree = ""; }; + C2531AC4204E3FBF00D27C99 /* TLMenuItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMenuItem.m; sourceTree = ""; }; + C2531AC5204E3FBF00D27C99 /* TLMenuItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMenuItemCell.m; sourceTree = ""; }; + C2531AC6204E3FBF00D27C99 /* TLMenuItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMenuItem.h; sourceTree = ""; }; + C2531ACA204E43CA00D27C99 /* TLSettingItemButtonCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLSettingItemButtonCell.h; sourceTree = ""; }; + C2531ACB204E43CA00D27C99 /* TLSettingItemButtonCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLSettingItemButtonCell.m; sourceTree = ""; }; + C2531ACD204E445500D27C99 /* TLSettingItemBaseCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLSettingItemBaseCell.h; sourceTree = ""; }; + C2531ACE204E445500D27C99 /* TLSettingItemBaseCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLSettingItemBaseCell.m; sourceTree = ""; }; + C2531B22204E85C300D27C99 /* TLAboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAboutViewController.m; sourceTree = ""; }; + C2531B23204E85C300D27C99 /* TLAboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAboutViewController.h; sourceTree = ""; }; + C2531B25204E85C300D27C99 /* TLAboutFooterView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAboutFooterView.m; sourceTree = ""; }; + C2531B26204E85C300D27C99 /* TLAboutHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAboutHeaderView.h; sourceTree = ""; }; + C2531B27204E85C300D27C99 /* TLAboutFooterView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAboutFooterView.h; sourceTree = ""; }; + C2531B28204E85C300D27C99 /* TLAboutHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAboutHeaderView.m; sourceTree = ""; }; + C2531B2D204E8B9E00D27C99 /* TLAccountSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAccountSettingViewController.h; sourceTree = ""; }; + C2531B2E204E8B9E00D27C99 /* TLAccountSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAccountSettingViewController.m; sourceTree = ""; }; C259CE861FF2283D0058FD6E /* UINavigationController+TLChat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UINavigationController+TLChat.m"; sourceTree = ""; }; C259CE871FF2283E0058FD6E /* UINavigationController+TLChat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UINavigationController+TLChat.h"; sourceTree = ""; }; C259CE8A1FF2290D0058FD6E /* TLExpressionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLExpressionHelper.m; sourceTree = ""; }; @@ -549,16 +589,8 @@ C29C6B6C2004FD200058ED75 /* TLMobileContactsAngel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLMobileContactsAngel.m; sourceTree = ""; }; C29C6B6E200505390058ED75 /* TLMobileContactHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLMobileContactHelper.h; sourceTree = ""; }; C29C6B6F200505390058ED75 /* TLMobileContactHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLMobileContactHelper.m; sourceTree = ""; }; - C2A92C9E1F7A24D30038CFAE /* TLDiscoverViewController+Delegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TLDiscoverViewController+Delegate.h"; sourceTree = ""; }; - C2A92C9F1F7A24D30038CFAE /* TLDiscoverViewController+Delegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "TLDiscoverViewController+Delegate.m"; sourceTree = ""; }; C2A92CA01F7A24D30038CFAE /* TLDiscoverViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLDiscoverViewController.h; sourceTree = ""; }; C2A92CA11F7A24D30038CFAE /* TLDiscoverViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLDiscoverViewController.m; sourceTree = ""; }; - C2A92CA31F7A24D40038CFAE /* TLMenuItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLMenuItem.h; sourceTree = ""; }; - C2A92CA41F7A24D40038CFAE /* TLMenuItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLMenuItem.m; sourceTree = ""; }; - C2A92CA51F7A24D40038CFAE /* TLMenuItemCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLMenuItemCell.h; sourceTree = ""; }; - C2A92CA61F7A24D40038CFAE /* TLMenuItemCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLMenuItemCell.m; sourceTree = ""; }; - C2A92CAC1F7A29510038CFAE /* TLMineViewController+Delegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TLMineViewController+Delegate.h"; sourceTree = ""; }; - C2A92CAD1F7A29510038CFAE /* TLMineViewController+Delegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "TLMineViewController+Delegate.m"; sourceTree = ""; }; C2A92CAE1F7A29510038CFAE /* TLMineViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLMineViewController.h; sourceTree = ""; }; C2A92CAF1F7A29510038CFAE /* TLMineViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TLMineViewController.m; sourceTree = ""; }; C2A92CB11F7A29510038CFAE /* TLMineHeaderCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLMineHeaderCell.h; sourceTree = ""; }; @@ -583,10 +615,8 @@ C2D7C8CD1F72464A00648CED /* TLSettingSwitchCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingSwitchCell.m; sourceTree = ""; }; C2D7C8CF1F72464A00648CED /* TLSettingGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingGroup.h; sourceTree = ""; }; C2D7C8D01F72464A00648CED /* TLSettingGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingGroup.m; sourceTree = ""; }; - C2D7C8D11F72464A00648CED /* TLSettingItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingItem.h; sourceTree = ""; }; - C2D7C8D21F72464A00648CED /* TLSettingItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingItem.m; sourceTree = ""; }; - C2D7C8D31F72464A00648CED /* TLSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingViewController.h; sourceTree = ""; }; - C2D7C8D41F72464A00648CED /* TLSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingViewController.m; sourceTree = ""; }; + C2D7C8D31F72464A00648CED /* TLBaseSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLBaseSettingViewController.h; sourceTree = ""; }; + C2D7C8D41F72464A00648CED /* TLBaseSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLBaseSettingViewController.m; sourceTree = ""; }; C2D7C8D61F72464A00648CED /* TLSettingFooterTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingFooterTitleView.h; sourceTree = ""; }; C2D7C8D71F72464A00648CED /* TLSettingFooterTitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingFooterTitleView.m; sourceTree = ""; }; C2D7C8D81F72464A00648CED /* TLSettingHeaderTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingHeaderTitleView.h; sourceTree = ""; }; @@ -754,29 +784,7 @@ C2D7C9D71F72470400648CED /* Conversation.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Conversation.xcassets; sourceTree = ""; }; C2D7C9DA1F72470400648CED /* TLConversationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLConversationViewController.h; sourceTree = ""; }; C2D7C9DB1F72470400648CED /* TLConversationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLConversationViewController.m; sourceTree = ""; }; - C2D7C9E21F72470400648CED /* TLBottleButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLBottleButton.h; sourceTree = ""; }; - C2D7C9E31F72470400648CED /* TLBottleButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLBottleButton.m; sourceTree = ""; }; - C2D7C9E41F72470400648CED /* TLBottleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLBottleViewController.h; sourceTree = ""; }; - C2D7C9E51F72470400648CED /* TLBottleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLBottleViewController.m; sourceTree = ""; }; - C2D7C9E71F72470400648CED /* TLGameViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLGameViewController.h; sourceTree = ""; }; - C2D7C9E81F72470400648CED /* TLGameViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLGameViewController.m; sourceTree = ""; }; C2D7CA131F72470400648CED /* Discover.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Discover.xcassets; sourceTree = ""; }; - C2D7CA181F72470400648CED /* TLScannerBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerBackgroundView.h; sourceTree = ""; }; - C2D7CA191F72470400648CED /* TLScannerBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerBackgroundView.m; sourceTree = ""; }; - C2D7CA1A1F72470400648CED /* TLScannerButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerButton.h; sourceTree = ""; }; - C2D7CA1B1F72470400648CED /* TLScannerButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerButton.m; sourceTree = ""; }; - C2D7CA1C1F72470400648CED /* TLScannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerView.h; sourceTree = ""; }; - C2D7CA1D1F72470400648CED /* TLScannerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerView.m; sourceTree = ""; }; - C2D7CA1E1F72470400648CED /* TLScannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerViewController.h; sourceTree = ""; }; - C2D7CA1F1F72470400648CED /* TLScannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerViewController.m; sourceTree = ""; }; - C2D7CA201F72470400648CED /* TLScanningViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScanningViewController.h; sourceTree = ""; }; - C2D7CA211F72470400648CED /* TLScanningViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScanningViewController.m; sourceTree = ""; }; - C2D7CA241F72470400648CED /* TLShakeSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLShakeSettingViewController.h; sourceTree = ""; }; - C2D7CA251F72470400648CED /* TLShakeSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLShakeSettingViewController.m; sourceTree = ""; }; - C2D7CA271F72470400648CED /* TLShakeButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLShakeButton.h; sourceTree = ""; }; - C2D7CA281F72470400648CED /* TLShakeButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLShakeButton.m; sourceTree = ""; }; - C2D7CA291F72470400648CED /* TLShakeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLShakeViewController.h; sourceTree = ""; }; - C2D7CA2A1F72470400648CED /* TLShakeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLShakeViewController.m; sourceTree = ""; }; C2D7CA881F72470400648CED /* Launch.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Launch.xcassets; sourceTree = ""; }; C2D7CA8A1F72470400648CED /* TLAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAppDelegate.h; sourceTree = ""; }; C2D7CA8B1F72470400648CED /* TLAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAppDelegate.m; sourceTree = ""; }; @@ -788,23 +796,9 @@ C2D7CA951F72470400648CED /* TLSDKManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSDKManager.h; sourceTree = ""; }; C2D7CA961F72470400648CED /* TLSDKManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSDKManager.m; sourceTree = ""; }; C2D7CA991F72470400648CED /* TLMineEventStatistics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMineEventStatistics.h; sourceTree = ""; }; - C2D7CACA1F72470400648CED /* TLMineInfoAvatarCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMineInfoAvatarCell.h; sourceTree = ""; }; - C2D7CACB1F72470400648CED /* TLMineInfoAvatarCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMineInfoAvatarCell.m; sourceTree = ""; }; - C2D7CACD1F72470400648CED /* TLMyQRCodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMyQRCodeViewController.h; sourceTree = ""; }; - C2D7CACE1F72470400648CED /* TLMyQRCodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMyQRCodeViewController.m; sourceTree = ""; }; - C2D7CACF1F72470400648CED /* TLMineInfoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMineInfoViewController.h; sourceTree = ""; }; - C2D7CAD01F72470400648CED /* TLMineInfoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMineInfoViewController.m; sourceTree = ""; }; C2D7CAD81F72470400648CED /* Mine.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Mine.xcassets; sourceTree = ""; }; - C2D7CADA1F72470400648CED /* TLWalletViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLWalletViewController.h; sourceTree = ""; }; - C2D7CADB1F72470400648CED /* TLWalletViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLWalletViewController.m; sourceTree = ""; }; C2D7CADE1F72470400648CED /* TLSearchController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSearchController.h; sourceTree = ""; }; C2D7CADF1F72470400648CED /* TLSearchController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSearchController.m; sourceTree = ""; }; - C2D7CAE21F72470400648CED /* TLAboutHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAboutHeaderView.h; sourceTree = ""; }; - C2D7CAE31F72470400648CED /* TLAboutHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAboutHeaderView.m; sourceTree = ""; }; - C2D7CAE41F72470400648CED /* TLAboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAboutViewController.h; sourceTree = ""; }; - C2D7CAE51F72470400648CED /* TLAboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAboutViewController.m; sourceTree = ""; }; - C2D7CAE71F72470400648CED /* TLAccountAndSafetyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLAccountAndSafetyViewController.h; sourceTree = ""; }; - C2D7CAE81F72470400648CED /* TLAccountAndSafetyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLAccountAndSafetyViewController.m; sourceTree = ""; }; C2D7CAED1F72470400648CED /* TLChatBackgroundSelectCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLChatBackgroundSelectCell.h; sourceTree = ""; }; C2D7CAEE1F72470400648CED /* TLChatBackgroundSelectCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLChatBackgroundSelectCell.m; sourceTree = ""; }; C2D7CAEF1F72470400648CED /* TLChatBackgroundSelectViewController+CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TLChatBackgroundSelectViewController+CollectionView.h"; sourceTree = ""; }; @@ -821,14 +815,8 @@ C2D7CAFB1F72470400648CED /* TLChatFontViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLChatFontViewController.m; sourceTree = ""; }; C2D7CAFC1F72470400648CED /* TLCommonSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLCommonSettingViewController.h; sourceTree = ""; }; C2D7CAFD1F72470400648CED /* TLCommonSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLCommonSettingViewController.m; sourceTree = ""; }; - C2D7CAFF1F72470400648CED /* TLHelpAndFeedbackViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLHelpAndFeedbackViewController.h; sourceTree = ""; }; - C2D7CB001F72470400648CED /* TLHelpAndFeedbackViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLHelpAndFeedbackViewController.m; sourceTree = ""; }; C2D7CB021F72470400648CED /* TLNewMessageSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLNewMessageSettingViewController.h; sourceTree = ""; }; C2D7CB031F72470400648CED /* TLNewMessageSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLNewMessageSettingViewController.m; sourceTree = ""; }; - C2D7CB051F72470400648CED /* TLPrivacySettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLPrivacySettingViewController.h; sourceTree = ""; }; - C2D7CB061F72470400648CED /* TLPrivacySettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLPrivacySettingViewController.m; sourceTree = ""; }; - C2D7CB081F72470400648CED /* TLMineSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLMineSettingViewController.h; sourceTree = ""; }; - C2D7CB091F72470400648CED /* TLMineSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLMineSettingViewController.m; sourceTree = ""; }; C2D7CBCF1F72472700648CED /* TLWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLWebViewController.h; sourceTree = ""; }; C2D7CBD01F72472700648CED /* TLWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLWebViewController.m; sourceTree = ""; }; C2D7CBD11F72472700648CED /* UIBarButtonItem+Back.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIBarButtonItem+Back.h"; sourceTree = ""; }; @@ -913,6 +901,33 @@ C2D7CC841F72859600648CED /* TLDBConversationStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLDBConversationStore.h; sourceTree = ""; }; C2D7CC851F72859600648CED /* TLDBConversationStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLDBConversationStore.m; sourceTree = ""; }; C2ECC77D2049433E00D3D7AB /* Moments.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Moments.json; sourceTree = ""; }; + C2EE3220204F8C1200467298 /* TLSettingItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSettingItem.h; sourceTree = ""; }; + C2EE3221204F8C1200467298 /* TLSettingItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSettingItem.m; sourceTree = ""; }; + C2EE3252204F938600467298 /* TLScanningViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScanningViewController.m; sourceTree = ""; }; + C2EE3253204F938600467298 /* TLScannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerViewController.h; sourceTree = ""; }; + C2EE3254204F938600467298 /* TLScanningViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScanningViewController.h; sourceTree = ""; }; + C2EE3255204F938600467298 /* TLScannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerViewController.m; sourceTree = ""; }; + C2EE3257204F938600467298 /* TLScannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerView.h; sourceTree = ""; }; + C2EE3258204F938600467298 /* TLScannerButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerButton.m; sourceTree = ""; }; + C2EE3259204F938600467298 /* TLScannerBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerBackgroundView.m; sourceTree = ""; }; + C2EE325A204F938600467298 /* TLScannerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLScannerView.m; sourceTree = ""; }; + C2EE325B204F938600467298 /* TLScannerBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerBackgroundView.h; sourceTree = ""; }; + C2EE325C204F938600467298 /* TLScannerButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLScannerButton.h; sourceTree = ""; }; + C2EE3264204F93CB00467298 /* TLGameViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLGameViewController.h; sourceTree = ""; }; + C2EE3265204F93CB00467298 /* TLGameViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLGameViewController.m; sourceTree = ""; }; + C2EE3269204F93D200467298 /* TLBottleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLBottleViewController.m; sourceTree = ""; }; + C2EE326B204F93D200467298 /* TLBottleButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLBottleButton.h; sourceTree = ""; }; + C2EE326C204F93D200467298 /* TLBottleButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLBottleButton.m; sourceTree = ""; }; + C2EE326D204F93D200467298 /* TLBottleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLBottleViewController.h; sourceTree = ""; }; + C2EE3272204F93DE00467298 /* TLShakeSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLShakeSettingViewController.m; sourceTree = ""; }; + C2EE3273204F93DE00467298 /* TLShakeSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLShakeSettingViewController.h; sourceTree = ""; }; + C2EE3275204F93DE00467298 /* TLShakeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLShakeViewController.h; sourceTree = ""; }; + C2EE3276204F93DE00467298 /* TLShakeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLShakeViewController.m; sourceTree = ""; }; + C2EE3278204F93DE00467298 /* TLShakeButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLShakeButton.h; sourceTree = ""; }; + C2EE3279204F93DE00467298 /* TLShakeButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLShakeButton.m; sourceTree = ""; }; + C2EE327E204F943700467298 /* Bottle.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Bottle.xcassets; sourceTree = ""; }; + C2EE3282204F94A600467298 /* Scanner.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Scanner.xcassets; sourceTree = ""; }; + C2EE3284204F94C800467298 /* Shake.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Shake.xcassets; sourceTree = ""; }; F47069788539839E1FB073F9 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -1038,6 +1053,52 @@ path = TLChatUITests; sourceTree = ""; }; + C20B8326204EA2BC0086F5E7 /* TLPrivacySettingViewController */ = { + isa = PBXGroup; + children = ( + C20B8327204EA2BC0086F5E7 /* TLPrivacySettingViewController.h */, + C20B8328204EA2BC0086F5E7 /* TLPrivacySettingViewController.m */, + ); + path = TLPrivacySettingViewController; + sourceTree = ""; + }; + C20B832A204EA3140086F5E7 /* TLMineInfoViewController */ = { + isa = PBXGroup; + children = ( + C20B832D204EA3140086F5E7 /* Views */, + C20B832B204EA3140086F5E7 /* TLMineInfoViewController.h */, + C20B832C204EA3140086F5E7 /* TLMineInfoViewController.m */, + ); + path = TLMineInfoViewController; + sourceTree = ""; + }; + C20B832D204EA3140086F5E7 /* Views */ = { + isa = PBXGroup; + children = ( + C20B832E204EA3140086F5E7 /* TLMineInfoAvatarCell.h */, + C20B832F204EA3140086F5E7 /* TLMineInfoAvatarCell.m */, + ); + path = Views; + sourceTree = ""; + }; + C20B8332204EA3190086F5E7 /* TLMyQRCodeViewController */ = { + isa = PBXGroup; + children = ( + C20B8333204EA3190086F5E7 /* TLMyQRCodeViewController.h */, + C20B8334204EA3190086F5E7 /* TLMyQRCodeViewController.m */, + ); + path = TLMyQRCodeViewController; + sourceTree = ""; + }; + C20B8336204EA32F0086F5E7 /* TLWalletViewController */ = { + isa = PBXGroup; + children = ( + C20B8337204EA32F0086F5E7 /* TLWalletViewController.h */, + C20B8338204EA32F0086F5E7 /* TLWalletViewController.m */, + ); + path = TLWalletViewController; + sourceTree = ""; + }; C23EE3CD1F73914A0069885F /* Expression */ = { isa = PBXGroup; children = ( @@ -1310,6 +1371,84 @@ path = Download; sourceTree = ""; }; + C2531ABA204E3ED000D27C99 /* TLSettingViewController */ = { + isa = PBXGroup; + children = ( + C2531ABB204E3ED000D27C99 /* TLSettingViewController.h */, + C2531ABC204E3ED000D27C99 /* TLSettingViewController.m */, + ); + path = TLSettingViewController; + sourceTree = ""; + }; + C2531ABE204E3F9700D27C99 /* Components */ = { + isa = PBXGroup; + children = ( + C2531AC2204E3FBF00D27C99 /* TLMenuItem */, + C2531ABF204E3FBF00D27C99 /* TLSettingItem */, + ); + path = Components; + sourceTree = ""; + }; + C2531ABF204E3FBF00D27C99 /* TLSettingItem */ = { + isa = PBXGroup; + children = ( + C2EE3220204F8C1200467298 /* TLSettingItem.h */, + C2EE3221204F8C1200467298 /* TLSettingItem.m */, + C20B8323204EA0340086F5E7 /* TLSettingSectionHeaderView.h */, + C20B8324204EA0340086F5E7 /* TLSettingSectionHeaderView.m */, + C20B8320204EA0190086F5E7 /* TLSettingSectionFooterView.h */, + C20B8321204EA0190086F5E7 /* TLSettingSectionFooterView.m */, + C2531ACD204E445500D27C99 /* TLSettingItemBaseCell.h */, + C2531ACE204E445500D27C99 /* TLSettingItemBaseCell.m */, + C2531AC1204E3FBF00D27C99 /* TLSettingItemNormalCell.h */, + C2531AC0204E3FBF00D27C99 /* TLSettingItemNormalCell.m */, + C2531ACA204E43CA00D27C99 /* TLSettingItemButtonCell.h */, + C2531ACB204E43CA00D27C99 /* TLSettingItemButtonCell.m */, + ); + path = TLSettingItem; + sourceTree = ""; + }; + C2531AC2204E3FBF00D27C99 /* TLMenuItem */ = { + isa = PBXGroup; + children = ( + C2531AC6204E3FBF00D27C99 /* TLMenuItem.h */, + C2531AC4204E3FBF00D27C99 /* TLMenuItem.m */, + C2531AC3204E3FBF00D27C99 /* TLMenuItemCell.h */, + C2531AC5204E3FBF00D27C99 /* TLMenuItemCell.m */, + ); + path = TLMenuItem; + sourceTree = ""; + }; + C2531B21204E85C300D27C99 /* TLAboutViewController */ = { + isa = PBXGroup; + children = ( + C2531B24204E85C300D27C99 /* Views */, + C2531B23204E85C300D27C99 /* TLAboutViewController.h */, + C2531B22204E85C300D27C99 /* TLAboutViewController.m */, + ); + path = TLAboutViewController; + sourceTree = ""; + }; + C2531B24204E85C300D27C99 /* Views */ = { + isa = PBXGroup; + children = ( + C2531B26204E85C300D27C99 /* TLAboutHeaderView.h */, + C2531B28204E85C300D27C99 /* TLAboutHeaderView.m */, + C2531B27204E85C300D27C99 /* TLAboutFooterView.h */, + C2531B25204E85C300D27C99 /* TLAboutFooterView.m */, + ); + path = Views; + sourceTree = ""; + }; + C2531B2C204E8B9E00D27C99 /* TLAccountSettingViewController */ = { + isa = PBXGroup; + children = ( + C2531B2D204E8B9E00D27C99 /* TLAccountSettingViewController.h */, + C2531B2E204E8B9E00D27C99 /* TLAccountSettingViewController.m */, + ); + path = TLAccountSettingViewController; + sourceTree = ""; + }; C259CE891FF2290D0058FD6E /* TLExpressionManager */ = { isa = PBXGroup; children = ( @@ -1755,31 +1894,16 @@ children = ( C2A92CA01F7A24D30038CFAE /* TLDiscoverViewController.h */, C2A92CA11F7A24D30038CFAE /* TLDiscoverViewController.m */, - C2A92C9E1F7A24D30038CFAE /* TLDiscoverViewController+Delegate.h */, - C2A92C9F1F7A24D30038CFAE /* TLDiscoverViewController+Delegate.m */, ); path = TLDiscoverViewController; sourceTree = ""; }; - C2A92CA21F7A24D40038CFAE /* TLMenuItem */ = { - isa = PBXGroup; - children = ( - C2A92CA31F7A24D40038CFAE /* TLMenuItem.h */, - C2A92CA41F7A24D40038CFAE /* TLMenuItem.m */, - C2A92CA51F7A24D40038CFAE /* TLMenuItemCell.h */, - C2A92CA61F7A24D40038CFAE /* TLMenuItemCell.m */, - ); - path = TLMenuItem; - sourceTree = ""; - }; C2A92CAB1F7A29510038CFAE /* TLMineViewController */ = { isa = PBXGroup; children = ( C2A92CB01F7A29510038CFAE /* Views */, C2A92CAE1F7A29510038CFAE /* TLMineViewController.h */, C2A92CAF1F7A29510038CFAE /* TLMineViewController.m */, - C2A92CAC1F7A29510038CFAE /* TLMineViewController+Delegate.h */, - C2A92CAD1F7A29510038CFAE /* TLMineViewController+Delegate.m */, ); path = TLMineViewController; sourceTree = ""; @@ -1869,8 +1993,8 @@ C2D7C8D51F72464A00648CED /* TLSettingViews */, C2D7C8C71F72464A00648CED /* TLSettingCells */, C2D7C8CE1F72464A00648CED /* TLSettingModels */, - C2D7C8D31F72464A00648CED /* TLSettingViewController.h */, - C2D7C8D41F72464A00648CED /* TLSettingViewController.m */, + C2D7C8D31F72464A00648CED /* TLBaseSettingViewController.h */, + C2D7C8D41F72464A00648CED /* TLBaseSettingViewController.m */, ); path = TLSettingViewController; sourceTree = ""; @@ -1893,8 +2017,6 @@ children = ( C2D7C8CF1F72464A00648CED /* TLSettingGroup.h */, C2D7C8D01F72464A00648CED /* TLSettingGroup.m */, - C2D7C8D11F72464A00648CED /* TLSettingItem.h */, - C2D7C8D21F72464A00648CED /* TLSettingItem.m */, ); path = TLSettingModels; sourceTree = ""; @@ -2003,6 +2125,10 @@ C2D7C91F1F72470400648CED /* Chat */, C2D7CBCD1F72472700648CED /* Web */, C2D7CADC1F72470400648CED /* Search */, + C2EE3250204F938600467298 /* Scanner */, + C2EE3270204F93DE00467298 /* Shake */, + C2EE3267204F93D200467298 /* Bottle */, + C2EE3262204F93CB00467298 /* Game */, C23EE3CD1F73914A0069885F /* Expression */, C2D7CAE01F72470400648CED /* Setting */, ); @@ -2530,45 +2656,12 @@ C2D7C9DC1F72470400648CED /* Discover */ = { isa = PBXGroup; children = ( - C2A92CA21F7A24D40038CFAE /* TLMenuItem */, C2A92C9D1F7A24D30038CFAE /* TLDiscoverViewController */, - C2D7C9E01F72470400648CED /* DriftBottleViewController */, - C2D7C9E61F72470400648CED /* GameViewController */, - C2D7CA161F72470400648CED /* ScannerViewController */, - C2D7CA221F72470400648CED /* ShakeViewController */, C2D7CA121F72470400648CED /* Resources */, ); path = Discover; sourceTree = ""; }; - C2D7C9E01F72470400648CED /* DriftBottleViewController */ = { - isa = PBXGroup; - children = ( - C2D7C9E11F72470400648CED /* BottleViews */, - C2D7C9E41F72470400648CED /* TLBottleViewController.h */, - C2D7C9E51F72470400648CED /* TLBottleViewController.m */, - ); - path = DriftBottleViewController; - sourceTree = ""; - }; - C2D7C9E11F72470400648CED /* BottleViews */ = { - isa = PBXGroup; - children = ( - C2D7C9E21F72470400648CED /* TLBottleButton.h */, - C2D7C9E31F72470400648CED /* TLBottleButton.m */, - ); - path = BottleViews; - sourceTree = ""; - }; - C2D7C9E61F72470400648CED /* GameViewController */ = { - isa = PBXGroup; - children = ( - C2D7C9E71F72470400648CED /* TLGameViewController.h */, - C2D7C9E81F72470400648CED /* TLGameViewController.m */, - ); - path = GameViewController; - sourceTree = ""; - }; C2D7CA121F72470400648CED /* Resources */ = { isa = PBXGroup; children = ( @@ -2577,60 +2670,6 @@ path = Resources; sourceTree = ""; }; - C2D7CA161F72470400648CED /* ScannerViewController */ = { - isa = PBXGroup; - children = ( - C2D7CA171F72470400648CED /* ScannerView */, - C2D7CA1E1F72470400648CED /* TLScannerViewController.h */, - C2D7CA1F1F72470400648CED /* TLScannerViewController.m */, - C2D7CA201F72470400648CED /* TLScanningViewController.h */, - C2D7CA211F72470400648CED /* TLScanningViewController.m */, - ); - path = ScannerViewController; - sourceTree = ""; - }; - C2D7CA171F72470400648CED /* ScannerView */ = { - isa = PBXGroup; - children = ( - C2D7CA181F72470400648CED /* TLScannerBackgroundView.h */, - C2D7CA191F72470400648CED /* TLScannerBackgroundView.m */, - C2D7CA1A1F72470400648CED /* TLScannerButton.h */, - C2D7CA1B1F72470400648CED /* TLScannerButton.m */, - C2D7CA1C1F72470400648CED /* TLScannerView.h */, - C2D7CA1D1F72470400648CED /* TLScannerView.m */, - ); - path = ScannerView; - sourceTree = ""; - }; - C2D7CA221F72470400648CED /* ShakeViewController */ = { - isa = PBXGroup; - children = ( - C2D7CA231F72470400648CED /* ShakeSettingViewController */, - C2D7CA261F72470400648CED /* ShakeViews */, - C2D7CA291F72470400648CED /* TLShakeViewController.h */, - C2D7CA2A1F72470400648CED /* TLShakeViewController.m */, - ); - path = ShakeViewController; - sourceTree = ""; - }; - C2D7CA231F72470400648CED /* ShakeSettingViewController */ = { - isa = PBXGroup; - children = ( - C2D7CA241F72470400648CED /* TLShakeSettingViewController.h */, - C2D7CA251F72470400648CED /* TLShakeSettingViewController.m */, - ); - path = ShakeSettingViewController; - sourceTree = ""; - }; - C2D7CA261F72470400648CED /* ShakeViews */ = { - isa = PBXGroup; - children = ( - C2D7CA271F72470400648CED /* TLShakeButton.h */, - C2D7CA281F72470400648CED /* TLShakeButton.m */, - ); - path = ShakeViews; - sourceTree = ""; - }; C2D7CA861F72470400648CED /* Launcher */ = { isa = PBXGroup; children = ( @@ -2685,8 +2724,9 @@ children = ( C2D7CA981F72470400648CED /* Config */, C2A92CAB1F7A29510038CFAE /* TLMineViewController */, - C2D7CAC81F72470400648CED /* MineInfoViewController */, - C2D7CAD91F72470400648CED /* WalletViewController */, + C20B832A204EA3140086F5E7 /* TLMineInfoViewController */, + C20B8332204EA3190086F5E7 /* TLMyQRCodeViewController */, + C20B8336204EA32F0086F5E7 /* TLWalletViewController */, C2D7CAD71F72470400648CED /* Resources */, ); path = Mine; @@ -2700,35 +2740,6 @@ path = Config; sourceTree = ""; }; - C2D7CAC81F72470400648CED /* MineInfoViewController */ = { - isa = PBXGroup; - children = ( - C2D7CAC91F72470400648CED /* MineInfoViews */, - C2D7CACC1F72470400648CED /* MyQRCodeViewController */, - C2D7CACF1F72470400648CED /* TLMineInfoViewController.h */, - C2D7CAD01F72470400648CED /* TLMineInfoViewController.m */, - ); - path = MineInfoViewController; - sourceTree = ""; - }; - C2D7CAC91F72470400648CED /* MineInfoViews */ = { - isa = PBXGroup; - children = ( - C2D7CACA1F72470400648CED /* TLMineInfoAvatarCell.h */, - C2D7CACB1F72470400648CED /* TLMineInfoAvatarCell.m */, - ); - path = MineInfoViews; - sourceTree = ""; - }; - C2D7CACC1F72470400648CED /* MyQRCodeViewController */ = { - isa = PBXGroup; - children = ( - C2D7CACD1F72470400648CED /* TLMyQRCodeViewController.h */, - C2D7CACE1F72470400648CED /* TLMyQRCodeViewController.m */, - ); - path = MyQRCodeViewController; - sourceTree = ""; - }; C2D7CAD71F72470400648CED /* Resources */ = { isa = PBXGroup; children = ( @@ -2737,15 +2748,6 @@ path = Resources; sourceTree = ""; }; - C2D7CAD91F72470400648CED /* WalletViewController */ = { - isa = PBXGroup; - children = ( - C2D7CADA1F72470400648CED /* TLWalletViewController.h */, - C2D7CADB1F72470400648CED /* TLWalletViewController.m */, - ); - path = WalletViewController; - sourceTree = ""; - }; C2D7CADC1F72470400648CED /* Search */ = { isa = PBXGroup; children = ( @@ -2767,37 +2769,16 @@ C2D7CAE01F72470400648CED /* Setting */ = { isa = PBXGroup; children = ( - C2D7CAE11F72470400648CED /* AboutViewController */, - C2D7CAE61F72470400648CED /* AccountAndSafetyViewController */, + C2531ABA204E3ED000D27C99 /* TLSettingViewController */, + C2531B2C204E8B9E00D27C99 /* TLAccountSettingViewController */, + C20B8326204EA2BC0086F5E7 /* TLPrivacySettingViewController */, + C2531B21204E85C300D27C99 /* TLAboutViewController */, C2D7CAE91F72470400648CED /* CommonSettingViewController */, - C2D7CAFE1F72470400648CED /* HelpAndFeedbackViewController */, C2D7CB011F72470400648CED /* NewMessageSettingViewController */, - C2D7CB041F72470400648CED /* PrivacySettingViewController */, - C2D7CB071F72470400648CED /* SettingViewController */, ); path = Setting; sourceTree = ""; }; - C2D7CAE11F72470400648CED /* AboutViewController */ = { - isa = PBXGroup; - children = ( - C2D7CAE21F72470400648CED /* TLAboutHeaderView.h */, - C2D7CAE31F72470400648CED /* TLAboutHeaderView.m */, - C2D7CAE41F72470400648CED /* TLAboutViewController.h */, - C2D7CAE51F72470400648CED /* TLAboutViewController.m */, - ); - path = AboutViewController; - sourceTree = ""; - }; - C2D7CAE61F72470400648CED /* AccountAndSafetyViewController */ = { - isa = PBXGroup; - children = ( - C2D7CAE71F72470400648CED /* TLAccountAndSafetyViewController.h */, - C2D7CAE81F72470400648CED /* TLAccountAndSafetyViewController.m */, - ); - path = AccountAndSafetyViewController; - sourceTree = ""; - }; C2D7CAE91F72470400648CED /* CommonSettingViewController */ = { isa = PBXGroup; children = ( @@ -2853,15 +2834,6 @@ path = ChatFontViewController; sourceTree = ""; }; - C2D7CAFE1F72470400648CED /* HelpAndFeedbackViewController */ = { - isa = PBXGroup; - children = ( - C2D7CAFF1F72470400648CED /* TLHelpAndFeedbackViewController.h */, - C2D7CB001F72470400648CED /* TLHelpAndFeedbackViewController.m */, - ); - path = HelpAndFeedbackViewController; - sourceTree = ""; - }; C2D7CB011F72470400648CED /* NewMessageSettingViewController */ = { isa = PBXGroup; children = ( @@ -2871,24 +2843,6 @@ path = NewMessageSettingViewController; sourceTree = ""; }; - C2D7CB041F72470400648CED /* PrivacySettingViewController */ = { - isa = PBXGroup; - children = ( - C2D7CB051F72470400648CED /* TLPrivacySettingViewController.h */, - C2D7CB061F72470400648CED /* TLPrivacySettingViewController.m */, - ); - path = PrivacySettingViewController; - sourceTree = ""; - }; - C2D7CB071F72470400648CED /* SettingViewController */ = { - isa = PBXGroup; - children = ( - C2D7CB081F72470400648CED /* TLMineSettingViewController.h */, - C2D7CB091F72470400648CED /* TLMineSettingViewController.m */, - ); - path = SettingViewController; - sourceTree = ""; - }; C2D7CBCD1F72472700648CED /* Web */ = { isa = PBXGroup; children = ( @@ -3109,6 +3063,7 @@ C284AE9F1FF24DAD00075E59 /* Shortcut */, C2D7C8B01F72464A00648CED /* Base */, C2D7C8F61F7246CC00648CED /* Utilities */, + C2531ABE204E3F9700D27C99 /* Components */, C292D3381F7A54AB007EB0A6 /* TLNetwork */, ); path = TLKitExtensions; @@ -3131,6 +3086,147 @@ path = TestData; sourceTree = ""; }; + C2EE3250204F938600467298 /* Scanner */ = { + isa = PBXGroup; + children = ( + C2EE3251204F938600467298 /* TLScannerViewController */, + C2EE3280204F947600467298 /* Resources */, + ); + path = Scanner; + sourceTree = ""; + }; + C2EE3251204F938600467298 /* TLScannerViewController */ = { + isa = PBXGroup; + children = ( + C2EE3256204F938600467298 /* Views */, + C2EE3253204F938600467298 /* TLScannerViewController.h */, + C2EE3255204F938600467298 /* TLScannerViewController.m */, + C2EE3254204F938600467298 /* TLScanningViewController.h */, + C2EE3252204F938600467298 /* TLScanningViewController.m */, + ); + path = TLScannerViewController; + sourceTree = ""; + }; + C2EE3256204F938600467298 /* Views */ = { + isa = PBXGroup; + children = ( + C2EE3257204F938600467298 /* TLScannerView.h */, + C2EE325A204F938600467298 /* TLScannerView.m */, + C2EE325C204F938600467298 /* TLScannerButton.h */, + C2EE3258204F938600467298 /* TLScannerButton.m */, + C2EE325B204F938600467298 /* TLScannerBackgroundView.h */, + C2EE3259204F938600467298 /* TLScannerBackgroundView.m */, + ); + path = Views; + sourceTree = ""; + }; + C2EE3262204F93CB00467298 /* Game */ = { + isa = PBXGroup; + children = ( + C2EE3263204F93CB00467298 /* TLGameViewController */, + ); + path = Game; + sourceTree = ""; + }; + C2EE3263204F93CB00467298 /* TLGameViewController */ = { + isa = PBXGroup; + children = ( + C2EE3264204F93CB00467298 /* TLGameViewController.h */, + C2EE3265204F93CB00467298 /* TLGameViewController.m */, + ); + path = TLGameViewController; + sourceTree = ""; + }; + C2EE3267204F93D200467298 /* Bottle */ = { + isa = PBXGroup; + children = ( + C2EE3268204F93D200467298 /* TLBottleViewController */, + C2EE327D204F942900467298 /* Resources */, + ); + path = Bottle; + sourceTree = ""; + }; + C2EE3268204F93D200467298 /* TLBottleViewController */ = { + isa = PBXGroup; + children = ( + C2EE326A204F93D200467298 /* Views */, + C2EE326D204F93D200467298 /* TLBottleViewController.h */, + C2EE3269204F93D200467298 /* TLBottleViewController.m */, + ); + path = TLBottleViewController; + sourceTree = ""; + }; + C2EE326A204F93D200467298 /* Views */ = { + isa = PBXGroup; + children = ( + C2EE326B204F93D200467298 /* TLBottleButton.h */, + C2EE326C204F93D200467298 /* TLBottleButton.m */, + ); + path = Views; + sourceTree = ""; + }; + C2EE3270204F93DE00467298 /* Shake */ = { + isa = PBXGroup; + children = ( + C2EE3271204F93DE00467298 /* TLShakeSettingViewController */, + C2EE3274204F93DE00467298 /* TLShakeViewController */, + C2EE3281204F948D00467298 /* Resources */, + ); + path = Shake; + sourceTree = ""; + }; + C2EE3271204F93DE00467298 /* TLShakeSettingViewController */ = { + isa = PBXGroup; + children = ( + C2EE3273204F93DE00467298 /* TLShakeSettingViewController.h */, + C2EE3272204F93DE00467298 /* TLShakeSettingViewController.m */, + ); + path = TLShakeSettingViewController; + sourceTree = ""; + }; + C2EE3274204F93DE00467298 /* TLShakeViewController */ = { + isa = PBXGroup; + children = ( + C2EE3277204F93DE00467298 /* Views */, + C2EE3275204F93DE00467298 /* TLShakeViewController.h */, + C2EE3276204F93DE00467298 /* TLShakeViewController.m */, + ); + path = TLShakeViewController; + sourceTree = ""; + }; + C2EE3277204F93DE00467298 /* Views */ = { + isa = PBXGroup; + children = ( + C2EE3278204F93DE00467298 /* TLShakeButton.h */, + C2EE3279204F93DE00467298 /* TLShakeButton.m */, + ); + path = Views; + sourceTree = ""; + }; + C2EE327D204F942900467298 /* Resources */ = { + isa = PBXGroup; + children = ( + C2EE327E204F943700467298 /* Bottle.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; + C2EE3280204F947600467298 /* Resources */ = { + isa = PBXGroup; + children = ( + C2EE3282204F94A600467298 /* Scanner.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; + C2EE3281204F948D00467298 /* Resources */ = { + isa = PBXGroup; + children = ( + C2EE3284204F94C800467298 /* Shake.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -3251,12 +3347,15 @@ C2D7CB571F72470400648CED /* Conversation.xcassets in Resources */, C284AE9B1FF2498400075E59 /* AddMenu.xcassets in Resources */, C269EC04204CE915007B6B11 /* Moments.xcassets in Resources */, + C2EE327F204F943700467298 /* Bottle.xcassets in Resources */, C249DB4F2003ABF500702FA4 /* FriendList.json in Resources */, C249DB502003ABF500702FA4 /* FriendGroupList.json in Resources */, + C2EE3285204F94C800467298 /* Shake.xcassets in Resources */, C284AE991FF247BA00075E59 /* Localizable.strings in Resources */, C2D7CB4B1F72470400648CED /* SystemEmoji.json in Resources */, C2D7CB4A1F72470400648CED /* FaceEmoji.json in Resources */, C249DB512003ABF500702FA4 /* Friends.xcassets in Resources */, + C2EE3283204F94A600467298 /* Scanner.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3330,13 +3429,11 @@ buildActionMask = 2147483647; files = ( C249935C1FFB8C7400F69B16 /* TLExpressionDetailItemCell.m in Sources */, - C2D7CB711F72470400648CED /* TLScannerBackgroundView.m in Sources */, C292D3731F7A54C5007EB0A6 /* NSURL+TLNetwork.m in Sources */, C292D3231F7A4B67007EB0A6 /* TLMoment.m in Sources */, C2D7CB521F72470400648CED /* TLQRCodeViewController.m in Sources */, C249932B1FFB646900F69B16 /* TLExpressionGroupModel+ChosenRequest.m in Sources */, C2D7CB3C1F72470400648CED /* TLEmojiGroupDisplayModel.m in Sources */, - C2D7CBB51F72470500648CED /* TLMineInfoViewController.m in Sources */, C249934B1FFB84A100F69B16 /* TLExpressionMoreCell.m in Sources */, C2D7CB2F1F72470400648CED /* TLChatMessageDisplayView+Delegate.m in Sources */, C24993281FFB645100F69B16 /* TLExpressionItemCell.m in Sources */, @@ -3344,49 +3441,46 @@ C2D674BD1FFC785E00FAA24D /* TLDownloadRequest.m in Sources */, C292D32B1F7A4B86007EB0A6 /* TLMomentDetailImagesView.m in Sources */, C2D7CB511F72470400648CED /* TLPictureCarouselViewCell.m in Sources */, + C2531AC8204E3FBF00D27C99 /* TLMenuItem.m in Sources */, C2D7CBD61F72472700648CED /* UIBarButtonItem+Back.m in Sources */, C249935D1FFB8C7400F69B16 /* TLExpressionDetailInfoCell.m in Sources */, C24993341FFB663A00F69B16 /* UIScrollView+TLRefreshHeader.m in Sources */, C23EE47D1F7392550069885F /* TLMyExpressionCell.m in Sources */, C29C6A2620048D8A0058ED75 /* TLGroupItemCell.m in Sources */, C249933C1FFB7E1200F69B16 /* TLExpressionChosenAngel.m in Sources */, - C2D7CB751F72470400648CED /* TLScanningViewController.m in Sources */, C2D674BE1FFC785E00FAA24D /* TLBaseRequest.m in Sources */, C243B6551F7A5B670059A886 /* TLResponse.m in Sources */, C2D7CBBF1F72470500648CED /* TLChatBackgroundSelectViewController+CollectionView.m in Sources */, C2D7CC051F7267F000648CED /* TLMessageManager+ConversationRecord.m in Sources */, C2D7CC2A1F726D7B00648CED /* TLGroup.m in Sources */, C249DB852003AC4300702FA4 /* TLGroupViewController.m in Sources */, - C2D7CBBB1F72470500648CED /* TLAboutHeaderView.m in Sources */, - C2D7CB721F72470400648CED /* TLScannerButton.m in Sources */, C29C6A94200494DD0058ED75 /* TLUserDetailViewController.m in Sources */, C249DBBD2003AE5800702FA4 /* TLExpressionSearchResultViewController.m in Sources */, C2D7CC211F726D4900648CED /* TLUserChatSetting.m in Sources */, C2D7CB481F72470400648CED /* TLChatViewController.m in Sources */, - C2D7CB771F72470400648CED /* TLShakeButton.m in Sources */, + C2EE3266204F93CC00467298 /* TLGameViewController.m in Sources */, C29C6B292004B81C0058ED75 /* TLNewFriendViewController.m in Sources */, + C2531B29204E85C300D27C99 /* TLAboutViewController.m in Sources */, C2D7C9101F7246CC00648CED /* TLAudioRecorder.m in Sources */, C249DBBC2003AE5800702FA4 /* TLExpressionGroupModel+SearchRequest.m in Sources */, C2D7CBC71F72470500648CED /* TLNewMessageSettingViewController.m in Sources */, C2D674C01FFC785E00FAA24D /* TLUploadRequest.m in Sources */, C24993361FFB663A00F69B16 /* UIView+TLEmpty.m in Sources */, C29C6A8A200494DD0058ED75 /* TLFriendDetailSettingViewController.m in Sources */, + C2531B2B204E85C300D27C99 /* TLAboutHeaderView.m in Sources */, C243B65A1F7A5B7C0059A886 /* TLNetworkSerializer.m in Sources */, C249DB472003AA3F00702FA4 /* TLContactsSearchResultViewController.m in Sources */, C29C6A90200494DD0058ED75 /* TLUserDetailBaseKVCell.m in Sources */, C29C6A93200494DD0058ED75 /* TLUserDetailTagsKVCell.m in Sources */, C2D7CBFF1F7267F000648CED /* TLChatDetailHelper.m in Sources */, - C2D7CB5C1F72470400648CED /* TLBottleViewController.m in Sources */, - C2D7CB761F72470400648CED /* TLShakeSettingViewController.m in Sources */, C2D7CB371F72470400648CED /* TLEmojiGroupDisplayView.m in Sources */, - C2D7CBB41F72470500648CED /* TLMyQRCodeViewController.m in Sources */, C249DB432003692300702FA4 /* TLContactsAngel.m in Sources */, C2D7CC141F726D0900648CED /* TLRootProxy.m in Sources */, C2D7CB131F72470400648CED /* TLLoginViewController.m in Sources */, C2D7CB561F72470400648CED /* TLConversationCell.m in Sources */, - C2D7CB5B1F72470400648CED /* TLBottleButton.m in Sources */, C2D7CBA01F72470500648CED /* TLSDKManager.m in Sources */, C2D7CB441F72470400648CED /* TLBaseKeyboard.m in Sources */, + C2531ACF204E445500D27C99 /* TLSettingItemBaseCell.m in Sources */, C243B6521F7A5B5D0059A886 /* UIButton+TLWebImage.m in Sources */, C2D7CB3E1F72470400648CED /* TLEmojiKeyboard+EmojiGroupControl.m in Sources */, C2D7CBC11F72470500648CED /* TLChatBackgroundSelectViewController.m in Sources */, @@ -3398,12 +3492,12 @@ C249DB402003676A00702FA4 /* TLContactsItemCell.m in Sources */, C2D7CBDF1F7249C500648CED /* TLUserHelper.m in Sources */, C2D7CB501F72470400648CED /* TLPictureCarouselView.m in Sources */, - C2A92CA91F7A24E40038CFAE /* TLMenuItem.m in Sources */, + C2EE3261204F938700467298 /* TLScannerView.m in Sources */, C2D7CB411F72470400648CED /* TLMoreKeyboardItem.m in Sources */, - C2A92CA81F7A24DF0038CFAE /* TLDiscoverViewController+Delegate.m in Sources */, C2D7C8F21F72464A00648CED /* TLSettingHeaderTitleView.m in Sources */, C29C6AA5200497030058ED75 /* TLOfficialAccountViewController.m in Sources */, C2D7C8ED1F72464A00648CED /* TLSettingSwitchCell.m in Sources */, + C2EE327A204F93DF00467298 /* TLShakeSettingViewController.m in Sources */, C243B6531F7A5B5F0059A886 /* TLImageDownloader.m in Sources */, C2D7CB9C1F72470400648CED /* TLAppDelegate.m in Sources */, C2D7CB541F72470400648CED /* TLAddMenuItem.m in Sources */, @@ -3419,6 +3513,7 @@ C2D7CB531F72470400648CED /* TLAddMenuCell.m in Sources */, C2D7CC581F7281D200648CED /* TLVoiceMessage.m in Sources */, C2D7CC001F7267F000648CED /* TLEmojiKBHelper.m in Sources */, + C20B8330204EA3140086F5E7 /* TLMineInfoViewController.m in Sources */, C29C6B302004B88B0058ED75 /* TLFriendFindViewController.m in Sources */, C2D7CC061F7267F000648CED /* TLMessageManager+MessageRecord.m in Sources */, C29C6A92200494DD0058ED75 /* TLUserDetailTitleCell.m in Sources */, @@ -3426,6 +3521,7 @@ C29C6A2A20048E360058ED75 /* TLGroupSearchResultViewController.m in Sources */, C29C6B1D2004B8010058ED75 /* TLMobileContactsItemCell.m in Sources */, C2D7CC0E1F72680200648CED /* TLFriendHelper.m in Sources */, + C2EE326E204F93D300467298 /* TLBottleViewController.m in Sources */, C2D7CB9D1F72470500648CED /* TLLaunchManager+UserData.m in Sources */, C29C6B1A2004B8010058ED75 /* TLMobileContactModel.m in Sources */, C292D3261F7A4B6F007EB0A6 /* TLMomentExtension.m in Sources */, @@ -3434,14 +3530,14 @@ C23EE47E1F7392550069885F /* TLMyExpressionViewController.m in Sources */, C2D674BF1FFC785E00FAA24D /* TLBaseRequest+Private.m in Sources */, C2D7CC6B1F7284F500648CED /* TLDBUserStore.m in Sources */, + C2EE326F204F93D300467298 /* TLBottleButton.m in Sources */, C29C6A8B200494DD0058ED75 /* TLUserDetailPhoneKVCell.m in Sources */, C2D7CB451F72470400648CED /* TLGroup+ChatModel.m in Sources */, C2D7CBC01F72470500648CED /* TLChatBackgroundSelectViewController+Proxy.m in Sources */, - C2D7CBC61F72470500648CED /* TLHelpAndFeedbackViewController.m in Sources */, - C2D7CBB91F72470500648CED /* TLWalletViewController.m in Sources */, + C2EE325D204F938700467298 /* TLScanningViewController.m in Sources */, + C2EE3222204F8C1300467298 /* TLSettingItem.m in Sources */, C292D3281F7A4B75007EB0A6 /* TLMomentHeaderCell.m in Sources */, C2040F3B1FFB57D600A334F8 /* TLExpressionGroupModel.m in Sources */, - C2D7CB741F72470400648CED /* TLScannerViewController.m in Sources */, C2D7CC561F7281D200648CED /* TLTextMessage.m in Sources */, C24993391FFB693D00F69B16 /* TLExpressionTitleView.m in Sources */, C2D7CBBA1F72470500648CED /* TLSearchController.m in Sources */, @@ -3463,60 +3559,61 @@ C2D7CB2C1F72470400648CED /* TLTextMessageCell.m in Sources */, C284AEAE1FF261D800075E59 /* TLChatViewController+Conversation.m in Sources */, C2A92CB41F7A2B040038CFAE /* TLMineViewController.m in Sources */, - C2D7CBB31F72470500648CED /* TLMineInfoAvatarCell.m in Sources */, C2D7CC661F72844F00648CED /* TLDBBaseStore.m in Sources */, C29C6B70200505390058ED75 /* TLMobileContactHelper.m in Sources */, + C20B8339204EA3300086F5E7 /* TLWalletViewController.m in Sources */, C292D3271F7A4B73007EB0A6 /* TLMomentBaseCell.m in Sources */, C292D32F1F7A4B92007EB0A6 /* TLMomentExtensionLikedCell.m in Sources */, C292D2AB1F7A378A007EB0A6 /* UIViewController+PopGesture.m in Sources */, C249DB3F2003676A00702FA4 /* TLContactsHeaderView.m in Sources */, - C2A92CAA1F7A24E60038CFAE /* TLMenuItemCell.m in Sources */, - C2D7C8EF1F72464A00648CED /* TLSettingItem.m in Sources */, C2D7CB1A1F72470400648CED /* TLChatFileHeaderView.m in Sources */, - C2D7CBBD1F72470500648CED /* TLAccountAndSafetyViewController.m in Sources */, C2D7CB1D1F72470400648CED /* TLTalkButton.m in Sources */, C2D7CB3F1F72470400648CED /* TLEmojiKeyboard.m in Sources */, C2D7CC2B1F726D7B00648CED /* TLGroup+CreateAvatar.m in Sources */, C292D3341F7A4BA8007EB0A6 /* TLMomentsProxy.m in Sources */, - C2D7C8F01F72464A00648CED /* TLSettingViewController.m in Sources */, + C2D7C8F01F72464A00648CED /* TLBaseSettingViewController.m in Sources */, C259CE901FF2290D0058FD6E /* TLExpressionHelper.m in Sources */, C29C6AE12004B1850058ED75 /* TLTagItemCell.m in Sources */, + C2531B2F204E8B9E00D27C99 /* TLAccountSettingViewController.m in Sources */, C2D7CB191F72470400648CED /* TLChatFileCell.m in Sources */, C2D7CB421F72470400648CED /* TLMoreKeyboard+CollectionView.m in Sources */, C2D7CBC21F72470500648CED /* TLChatBackgroundSettingViewController.m in Sources */, - C2A92CB31F7A2B010038CFAE /* TLMineViewController+Delegate.m in Sources */, C2D7CB471F72470400648CED /* TLChatViewController+Delegate.m in Sources */, C2D7CB321F72470400648CED /* TLEmojiFaceItemCell.m in Sources */, C2D7CB301F72470400648CED /* TLChatMessageDisplayView.m in Sources */, C2D7CC521F7281D200648CED /* TLExpressionMessage.m in Sources */, C2D7CBC31F72470500648CED /* TLChatFontSettingView.m in Sources */, + C20B8331204EA3140086F5E7 /* TLMineInfoAvatarCell.m in Sources */, C2D7CB2B1F72470400648CED /* TLMessageImageView.m in Sources */, C29C6A8D200494DD0058ED75 /* TLUserDetailNormalKVCell.m in Sources */, C29C6B2B2004B81C0058ED75 /* TLNewFriendFuncationCell.m in Sources */, C2D7CC221F726D4900648CED /* TLUserDetail.m in Sources */, + C20B8335204EA31A0086F5E7 /* TLMyQRCodeViewController.m in Sources */, C292D3241F7A4B69007EB0A6 /* TLMomentComment.m in Sources */, C292D3371F7A4BAF007EB0A6 /* TLMomentsViewController.m in Sources */, C29C6B1E2004B8010058ED75 /* TLAddContactsViewController.m in Sources */, C2D7CB341F72470400648CED /* TLEmojiImageTitleItemCell.m in Sources */, C292D32E1F7A4B8F007EB0A6 /* TLMomentExtensionCommentCell.m in Sources */, + C2EE327C204F93DF00467298 /* TLShakeButton.m in Sources */, C2D7C9111F7246CC00648CED /* TLNetworking.m in Sources */, C292D3711F7A54C0007EB0A6 /* NSMutableURLRequest+TLNetwork.m in Sources */, + C20B8322204EA0190086F5E7 /* TLSettingSectionFooterView.m in Sources */, C23EE47C1F7392550069885F /* TLExpressionViewController.m in Sources */, - C2D7CB731F72470400648CED /* TLScannerView.m in Sources */, C2D7CB251F72470400648CED /* TLImageExpressionDisplayView.m in Sources */, + C2531B2A204E85C300D27C99 /* TLAboutFooterView.m in Sources */, C2D7CC011F7267F000648CED /* TLMoreKBHelper.m in Sources */, C2D7CB181F72470400648CED /* TLChatGroupDetailViewController.m in Sources */, C29C6A8E200494DD0058ED75 /* TLUserDetailAlbumCell.m in Sources */, - C2D7CB781F72470400648CED /* TLShakeViewController.m in Sources */, C2D7CB591F72470400648CED /* TLConversationViewController.m in Sources */, C249934E1FFB84E200F69B16 /* TLExpressionGroupModel+MoreRequest.m in Sources */, + C2EE3260204F938700467298 /* TLScannerBackgroundView.m in Sources */, C2D7C9121F7246CC00648CED /* UIColor+TLChat.m in Sources */, C2D7CB381F72470400648CED /* TLEmojiGroupCell.m in Sources */, + C2531AC7204E3FBF00D27C99 /* TLSettingItemNormalCell.m in Sources */, C2D7C8EE1F72464A00648CED /* TLSettingGroup.m in Sources */, - C2D7CB5D1F72470400648CED /* TLGameViewController.m in Sources */, + C2531ACC204E43CA00D27C99 /* TLSettingItemButtonCell.m in Sources */, C2D7CB2A1F72470400648CED /* TLMessageBaseCell.m in Sources */, C29C6B6D2004FD200058ED75 /* TLMobileContactsAngel.m in Sources */, - C2D7CBC91F72470500648CED /* TLMineSettingViewController.m in Sources */, C2D7CB4E1F72470400648CED /* TLImageBrowserController.m in Sources */, C2D7CB281F72470400648CED /* TLExpressionMessageCell.m in Sources */, C2D7CB151F72470400648CED /* TLUserGroupCell.m in Sources */, @@ -3526,6 +3623,8 @@ C2D7CB391F72470400648CED /* TLEmojiGroupControl.m in Sources */, C2D7CB121F72470400648CED /* TLAccountViewController.m in Sources */, C2D7CB351F72470400648CED /* TLEmojiGroupDisplayView+CollectionView.m in Sources */, + C2531ABD204E3ED100D27C99 /* TLSettingViewController.m in Sources */, + C2531AC9204E3FBF00D27C99 /* TLMenuItemCell.m in Sources */, C24993611FFB8C8C00F69B16 /* TLExpressionGroupModel+DetailRequest.m in Sources */, C2D7CB221F72470400648CED /* TLChatBaseViewController.m in Sources */, C27A498A1FFDC59C00EA5FD5 /* TLExpressionDetailBannerCell.m in Sources */, @@ -3537,7 +3636,6 @@ C2D7C8EC1F72464A00648CED /* TLSettingCell.m in Sources */, C2D7CC531F7281D200648CED /* TLImageMessage.m in Sources */, C2D7CC631F72844200648CED /* TLDBManager.m in Sources */, - C2D7CBC81F72470500648CED /* TLPrivacySettingViewController.m in Sources */, C2D7CC101F72680200648CED /* TLFriendHelper+Detail.m in Sources */, C284AE9E1FF24D0D00075E59 /* TLConversationNoNetCell.m in Sources */, C2D7CC791F72852E00648CED /* TLDBGroupStore.m in Sources */, @@ -3546,6 +3644,7 @@ C2D7CB9E1F72470500648CED /* TLLaunchManager.m in Sources */, C2D7C90E1F7246CC00648CED /* NSString+Message.m in Sources */, C29C6B1C2004B8010058ED75 /* TLMobileContactsSearchResultViewController.m in Sources */, + C2EE325F204F938700467298 /* TLScannerButton.m in Sources */, C2D7CBD51F72472700648CED /* TLWebViewController.m in Sources */, C2D7CB331F72470400648CED /* TLEmojiImageItemCell.m in Sources */, C2D7CC201F726D4900648CED /* TLUser.m in Sources */, @@ -3559,13 +3658,14 @@ C2D7CB551F72470400648CED /* TLAddMenuView.m in Sources */, C2A92CB51F7A2B060038CFAE /* TLMineHeaderCell.m in Sources */, C2D7C90D1F7246CC00648CED /* NSFileManager+TLChat.m in Sources */, - C2D7CBBC1F72470500648CED /* TLAboutViewController.m in Sources */, + C20B8329204EA2BC0086F5E7 /* TLPrivacySettingViewController.m in Sources */, C292D3701F7A54BC007EB0A6 /* NSHTTPURLResponse+TLNetwork.m in Sources */, C25128E01FFB90DF00893400 /* TLExpressionDownloadButton.m in Sources */, C2D7CBC41F72470500648CED /* TLChatFontViewController.m in Sources */, C2D7CB2D1F72470400648CED /* TLVoiceImageView.m in Sources */, C2D7CBD71F72472700648CED /* WKWebView+Post.m in Sources */, C2D7CC7E1F72854200648CED /* TLDBMessageStore.m in Sources */, + C20B8325204EA0340086F5E7 /* TLSettingSectionHeaderView.m in Sources */, C259CE911FF2290D0058FD6E /* TLDBExpressionStore.m in Sources */, C29C6AA6200497030058ED75 /* TLOfficialAccountSearchResultViewController.m in Sources */, C2D7CB361F72470400648CED /* TLEmojiGroupDisplayView+Gesture.m in Sources */, @@ -3574,7 +3674,9 @@ C2D7CC571F7281D200648CED /* TLVideoMessage.m in Sources */, C2D7CBC51F72470500648CED /* TLCommonSettingViewController.m in Sources */, C29C6A8F200494DD0058ED75 /* TLUserDetailViewChatButtonCell.m in Sources */, + C2EE327B204F93DF00467298 /* TLShakeViewController.m in Sources */, C292D3721F7A54C3007EB0A6 /* NSString+TLNetwork.m in Sources */, + C2EE325E204F938700467298 /* TLScannerViewController.m in Sources */, C2040F3F1FFB582E00A334F8 /* TLExpressionGroupModel+TLEmojiKB.m in Sources */, C29C6A91200494DD0058ED75 /* TLUserDetailBaseInfoCell.m in Sources */, C29C6B192004B8010058ED75 /* TLMobileContactsViewController.m in Sources */, diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleBkgSpotLight.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleBkgSpotLight.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleBkgSpotLight.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleBkgSpotLight.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleBkgSpotLight.imageset/bottleBkgSpotLight@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleBkgSpotLight.imageset/bottleBkgSpotLight@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleBkgSpotLight.imageset/bottleBkgSpotLight@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleBkgSpotLight.imageset/bottleBkgSpotLight@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleRecord.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleRecord.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleRecord.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleRecord.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleRecord.imageset/bottleRecord@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleRecord.imageset/bottleRecord@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottleRecord.imageset/bottleRecord@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottleRecord.imageset/bottleRecord@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_day.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_day.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_day.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_day.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_day.imageset/bottle_backgroup_day@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_day.imageset/bottle_backgroup_day@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_day.imageset/bottle_backgroup_day@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_day.imageset/bottle_backgroup_day@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_night.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_night.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_night.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_night.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_night.imageset/bottle_backgroup_night@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_night.imageset/bottle_backgroup_night@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_backgroud_night.imageset/bottle_backgroup_night@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_backgroud_night.imageset/bottle_backgroup_night@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_board.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_board.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_board.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_board.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_board.imageset/bottleBoard.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_board.imageset/bottleBoard.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_board.imageset/bottleBoard.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_board.imageset/bottleBoard.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_board.imageset/bottleBoard@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_board.imageset/bottleBoard@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_board.imageset/bottleBoard@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_board.imageset/bottleBoard@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_mine.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_mine.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_mine.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_mine.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_mine.imageset/bottleButtonMine.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_mine.imageset/bottleButtonMine.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_mine.imageset/bottleButtonMine.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_mine.imageset/bottleButtonMine.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_mine.imageset/bottleButtonMine@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_mine.imageset/bottleButtonMine@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_mine.imageset/bottleButtonMine@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_mine.imageset/bottleButtonMine@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_pickup.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_pickup.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_pickup.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_pickup.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_pickup.imageset/bottleButtonFish.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_pickup.imageset/bottleButtonFish.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_pickup.imageset/bottleButtonFish.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_pickup.imageset/bottleButtonFish.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_pickup.imageset/bottleButtonFish@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_pickup.imageset/bottleButtonFish@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_pickup.imageset/bottleButtonFish@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_pickup.imageset/bottleButtonFish@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_throw.imageset/Contents.json b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_throw.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_throw.imageset/Contents.json rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_throw.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_throw.imageset/bottleButtonThrow.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_throw.imageset/bottleButtonThrow.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_throw.imageset/bottleButtonThrow.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_throw.imageset/bottleButtonThrow.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_throw.imageset/bottleButtonThrow@2x.png b/TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_throw.imageset/bottleButtonThrow@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/bottle_button_throw.imageset/bottleButtonThrow@2x.png rename to TLChat/Modules/Bottle/Resources/Bottle.xcassets/bottle_button_throw.imageset/bottleButtonThrow@2x.png diff --git a/TLChat/Modules/Discover/DriftBottleViewController/TLBottleViewController.h b/TLChat/Modules/Bottle/TLBottleViewController/TLBottleViewController.h similarity index 100% rename from TLChat/Modules/Discover/DriftBottleViewController/TLBottleViewController.h rename to TLChat/Modules/Bottle/TLBottleViewController/TLBottleViewController.h diff --git a/TLChat/Modules/Discover/DriftBottleViewController/TLBottleViewController.m b/TLChat/Modules/Bottle/TLBottleViewController/TLBottleViewController.m similarity index 100% rename from TLChat/Modules/Discover/DriftBottleViewController/TLBottleViewController.m rename to TLChat/Modules/Bottle/TLBottleViewController/TLBottleViewController.m diff --git a/TLChat/Modules/Discover/DriftBottleViewController/BottleViews/TLBottleButton.h b/TLChat/Modules/Bottle/TLBottleViewController/Views/TLBottleButton.h similarity index 100% rename from TLChat/Modules/Discover/DriftBottleViewController/BottleViews/TLBottleButton.h rename to TLChat/Modules/Bottle/TLBottleViewController/Views/TLBottleButton.h diff --git a/TLChat/Modules/Discover/DriftBottleViewController/BottleViews/TLBottleButton.m b/TLChat/Modules/Bottle/TLBottleViewController/Views/TLBottleButton.m similarity index 100% rename from TLChat/Modules/Discover/DriftBottleViewController/BottleViews/TLBottleButton.m rename to TLChat/Modules/Bottle/TLBottleViewController/Views/TLBottleButton.m diff --git a/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatDetailViewController.h b/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatDetailViewController.h index 242dbd91..95502294 100644 --- a/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatDetailViewController.h +++ b/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatDetailViewController.h @@ -6,10 +6,10 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" @class TLUser; -@interface TLChatDetailViewController : TLSettingViewController +@interface TLChatDetailViewController : TLBaseSettingViewController @property (nonatomic, strong) TLUser *user; diff --git a/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatGroupDetailViewController.h b/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatGroupDetailViewController.h index 93dbc08a..fbacde6e 100644 --- a/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatGroupDetailViewController.h +++ b/TLChat/Modules/Chat/ChatDetailViewController/ChatDetailViewController/TLChatGroupDetailViewController.h @@ -6,10 +6,10 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" #import "TLGroup.h" -@interface TLChatGroupDetailViewController : TLSettingViewController +@interface TLChatGroupDetailViewController : TLBaseSettingViewController @property (nonatomic, strong) TLGroup *group; diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/Contents.json b/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/TLChat/Modules/Discover/Resources/Discover.xcassets/Bottle/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/Contents.json b/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/Contents.json b/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController+Delegate.h b/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController+Delegate.h deleted file mode 100644 index 383356d2..00000000 --- a/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController+Delegate.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// TLDiscoverViewController+Delegate.h -// TLChat -// -// Created by 李伯坤 on 2017/7/17. -// Copyright © 2017年 李伯坤. All rights reserved. -// - -#import "TLDiscoverViewController.h" -#import "TLMenuItem.h" - -typedef NS_ENUM(NSInteger, TLDiscoverSectionTag) { - TLDiscoverSectionTagMoments, - TLDiscoverSectionTagFounction, - TLDiscoverSectionTagStudy, - TLDiscoverSectionTagSocial, - TLDiscoverSectionTagLife, - TLDiscoverSectionTagProgram, -}; - -typedef NS_ENUM(NSInteger, TLDiscoverCellTag) { - TLDiscoverCellTagMoments, // 好友圈 - TLDiscoverCellTagScaner, // 扫一扫 - TLDiscoverCellTagShake, // 摇一摇 - TLDiscoverCellTagRead, // 看一看 - TLDiscoverCellTagSearch, // 搜一搜 - TLDiscoverCellTagNearby, // 附近的人 - TLDiscoverCellTagBottle, // 漂流瓶 - TLDiscoverCellTagShopping, // 购物 - TLDiscoverCellTagGame, // 游戏 - TLDiscoverCellTagProgram, // 小程序 -}; - -@interface TLDiscoverViewController (Delegate) - -/// 重置tabBar红点 -- (void)resetTabBarBadge; - -@end diff --git a/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController+Delegate.m b/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController+Delegate.m deleted file mode 100644 index 39aa041e..00000000 --- a/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController+Delegate.m +++ /dev/null @@ -1,108 +0,0 @@ -// -// TLDiscoverViewController+Delegate.m -// TLChat -// -// Created by 李伯坤 on 2017/7/17. -// Copyright © 2017年 李伯坤. All rights reserved. -// - -#import "TLDiscoverViewController+Delegate.h" -#import "TLMomentsViewController.h" -#import "TLScanningViewController.h" -#import "TLShakeViewController.h" -#import "TLBottleViewController.h" -#import "TLGameViewController.h" -#import "TLGameViewController.h" - -@implementation TLDiscoverViewController (Delegate) - -- (void)collectionViewDidSelectItem:(TLMenuItem *)dataModel sectionTag:(NSInteger)sectionTag cellTag:(NSInteger)cellTag className:(NSString *)className indexPath:(NSIndexPath *)indexPath -{ - if (cellTag == TLDiscoverCellTagMoments) { // 朋友圈 - if (!self.momentsVC) { - self.momentsVC = [[TLMomentsViewController alloc] init]; - } - PushVC(self.momentsVC); - } - else if (cellTag == TLDiscoverCellTagScaner) { // 扫一扫 - TLScanningViewController *scannerVC = [[TLScanningViewController alloc] init]; - PushVC(scannerVC); - } - else if (cellTag == TLDiscoverCellTagShake) { // 摇一摇 - TLShakeViewController *shakeVC = [[TLShakeViewController alloc] init]; - PushVC(shakeVC); - } - else if (cellTag == TLDiscoverCellTagRead) { // 看一看 - TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"http://www.jianshu.com/u/8dabd0639b26/"]; - [webVC setTitle:dataModel.title]; - PushVC(webVC); - } - else if (cellTag == TLDiscoverCellTagSearch) { // 搜一搜 - TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://www.zhihu.com/people/li-bo-kun-40/activities"]; - [webVC setTitle:dataModel.title]; - PushVC(webVC); - } - else if (cellTag == TLDiscoverCellTagNearby) { // 附近的人 - - } - else if (cellTag == TLDiscoverCellTagBottle) { // 漂流瓶 - TLBottleViewController *bottleVC = [[TLBottleViewController alloc] init]; - PushVC(bottleVC); - } - else if (cellTag == TLDiscoverCellTagShopping) { // 购物 - TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"http://m.zhuanzhuan.com"]; - [webVC setTitle:@"转转"]; - PushVC(webVC); - } - else if (cellTag == TLDiscoverCellTagGame) { // 游戏 - TLGameViewController *gameVC = [[TLGameViewController alloc] init]; - PushVC(gameVC); - } - else if (cellTag == TLDiscoverCellTagProgram) { // 小程序 - TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://github.com/tbl00c"]; - PushVC(webVC) - } - - if ([dataModel isKindOfClass:[TLMenuItem class]]) { - BOOL needResetTabBarBadge = (dataModel.badge || (dataModel.rightIconURL && dataModel.showRightIconBadge)); - BOOL hasDesc = dataModel.subTitle.length > 0 || dataModel.rightIconURL.length > 0; - - if (needResetTabBarBadge) { - [dataModel setBadge:nil]; - [self resetTabBarBadge]; - } - if (hasDesc) { - [dataModel setSubTitle:nil]; - [dataModel setRightIconURL:nil]; - } - - if (needResetTabBarBadge || hasDesc) { - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [self reloadView]; - }); - } - } -} - -- (void)resetTabBarBadge -{ - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - NSString *badgeValue; - NSArray *data = [self allDataModelArray]; - for (NSArray *section in data) { - for (id item in section) { - if ([item isKindOfClass:[TLMenuItem class]]) { - if ([(TLMenuItem *)item badge] || [(TLMenuItem *)item showRightIconBadge]) { - badgeValue = @""; - break; - } - } - } - } - dispatch_async(dispatch_get_main_queue(), ^{ - [self.tabBarItem setBadgeValue:badgeValue]; - }); - }); -} - -@end diff --git a/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController.m b/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController.m index ecd5ead4..6b19708e 100644 --- a/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController.m +++ b/TLChat/Modules/Discover/TLDiscoverViewController/TLDiscoverViewController.m @@ -7,9 +7,36 @@ // #import "TLDiscoverViewController.h" -#import "TLDiscoverViewController+Delegate.h" +#import "TLMomentsViewController.h" +#import "TLScanningViewController.h" +#import "TLShakeViewController.h" +#import "TLBottleViewController.h" +#import "TLGameViewController.h" +#import "TLGameViewController.h" -#define NAME_DISCOVER_MENU_CELL @"TLMenuItemCell" +#import "TLMenuItem.h" + +typedef NS_ENUM(NSInteger, TLDiscoverSectionTag) { + TLDiscoverSectionTagMoments, + TLDiscoverSectionTagFounction, + TLDiscoverSectionTagStudy, + TLDiscoverSectionTagSocial, + TLDiscoverSectionTagLife, + TLDiscoverSectionTagProgram, +}; + +typedef NS_ENUM(NSInteger, TLDiscoverCellTag) { + TLDiscoverCellTagMoments, // 好友圈 + TLDiscoverCellTagScaner, // 扫一扫 + TLDiscoverCellTagShake, // 摇一摇 + TLDiscoverCellTagRead, // 看一看 + TLDiscoverCellTagSearch, // 搜一搜 + TLDiscoverCellTagNearby, // 附近的人 + TLDiscoverCellTagBottle, // 漂流瓶 + TLDiscoverCellTagShopping, // 购物 + TLDiscoverCellTagGame, // 游戏 + TLDiscoverCellTagProgram, // 小程序 +}; @implementation TLDiscoverViewController @@ -38,68 +65,166 @@ - (void)didReceiveMemoryWarning self.momentsVC = nil; } -- (void)viewWillLayoutSubviews -{ - [super viewWillLayoutSubviews]; - - if (!CGRectEqualToRect(self.view.bounds, self.collectionView.frame)) { - [self.collectionView setFrame:self.view.bounds]; - } -} - -#pragma mark - # Private Methods +#pragma mark - # UI - (void)loadMenus { - [self deleteAllItems]; + @weakify(self); + self.clear(); // 好友圈 - self.addSection(TLDiscoverSectionTagMoments).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0)); - TLMenuItem *moments = createMenuItem(@"discover_album", LOCSTR(@"朋友圈")); - [moments setRightIconURL:@"http://i01.pic.sogou.com/23112449ac395e72" withRightIconBadge:YES]; - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagMoments).withDataModel(moments).viewTag(TLDiscoverCellTagMoments); + { + NSInteger sectionTag = TLDiscoverSectionTagMoments; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0)); + TLMenuItem *moments = createMenuItem(@"discover_album", LOCSTR(@"朋友圈")); + [moments setRightIconURL:@"http://i01.pic.sogou.com/23112449ac395e72" withRightIconBadge:YES]; + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(moments).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + if (!self.momentsVC) { + self.momentsVC = [[TLMomentsViewController alloc] init]; + } + PushVC(self.momentsVC); + }); + } // 功能 - self.addSection(TLDiscoverSectionTagFounction).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); - // 扫一扫 - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagFounction).withDataModel(createMenuItem(@"discover_scaner", LOCSTR(@"扫一扫"))).viewTag(TLDiscoverCellTagScaner); - // 摇一摇 - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagFounction).withDataModel(createMenuItem(@"discover_shake", LOCSTR(@"摇一摇"))).viewTag(TLDiscoverCellTagShake); + { + NSInteger sectionTag = TLDiscoverSectionTagFounction; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + // 扫一扫 + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_scaner", LOCSTR(@"扫一扫"))).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + TLScanningViewController *scannerVC = [[TLScanningViewController alloc] init]; + PushVC(scannerVC); + }); + // 摇一摇 + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_shake", LOCSTR(@"摇一摇"))).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + TLShakeViewController *shakeVC = [[TLShakeViewController alloc] init]; + PushVC(shakeVC); + }); + } // 学习 - self.addSection(TLDiscoverSectionTagStudy).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); - // 看一看 - TLMenuItem *read = createMenuItem(@"discover_read", LOCSTR(@"看一看")); - [read setBadge:@"2"]; - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagStudy).withDataModel(read).viewTag(TLDiscoverCellTagRead); - // 搜一搜 - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagStudy).withDataModel(createMenuItem(@"discover_search", LOCSTR(@"搜一搜"))).viewTag(TLDiscoverCellTagSearch); + { + NSInteger sectionTag = TLDiscoverSectionTagStudy; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + // 看一看 + TLMenuItem *read = createMenuItem(@"discover_read", LOCSTR(@"看一看")); + [read setBadge:@"2"]; + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(read).viewTag(TLDiscoverCellTagRead).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"http://www.jianshu.com/u/8dabd0639b26/"]; + [webVC setTitle:data.title]; + PushVC(webVC); + }); + // 搜一搜 + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_search", LOCSTR(@"搜一搜"))).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://www.zhihu.com/people/li-bo-kun-40/activities"]; + [webVC setTitle:data.title]; + PushVC(webVC); + }); + } // 社交 - self.addSection(TLDiscoverSectionTagSocial).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); - // 附近的人 -// self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagSocial).withDataModelcreateMenuItem(@"discover_location", LOCSTR(@"附近的人")).viewTag(TLDiscoverCellTagNearby); - // 漂流瓶 - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagSocial).withDataModel(createMenuItem(@"discover_bottle", LOCSTR(@"漂流瓶"))).viewTag(TLDiscoverCellTagBottle); + { + NSInteger sectionTag = TLDiscoverSectionTagSocial; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + // 附近的人 +// self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModelcreateMenuItem(@"discover_location", LOCSTR(@"附近的人")).selectedAction(^ (TLMenuItem *data) { +// @strongify(self); +// +// }); + // 漂流瓶 + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(createMenuItem(@"discover_bottle", LOCSTR(@"漂流瓶"))).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + TLBottleViewController *bottleVC = [[TLBottleViewController alloc] init]; + PushVC(bottleVC); + }); + } // 生活 - self.addSection(TLDiscoverSectionTagLife).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); - // 购物 - TLMenuItem *shopping = createMenuItem(@"discover_shopping", LOCSTR(@"购物")); - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagLife).withDataModel(shopping).viewTag(TLDiscoverCellTagShopping); - // 游戏 - TLMenuItem *game = createMenuItem(@"discover_game", LOCSTR(@"游戏")); - [game setRightIconURL:@"http://qq1234.org/uploads/allimg/140404/3_140404151205_8.jpg" withRightIconBadge:YES]; - [game setSubTitle:@"英雄联盟计算器版"]; - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagLife).withDataModel(game).viewTag(TLDiscoverCellTagGame); + { + NSInteger sectionTag = TLDiscoverSectionTagLife; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + // 购物 + TLMenuItem *shopping = createMenuItem(@"discover_shopping", LOCSTR(@"购物")); + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(shopping).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"http://m.zhuanzhuan.com"]; + [webVC setTitle:@"转转"]; + PushVC(webVC); + }); + // 游戏 + TLMenuItem *game = createMenuItem(@"discover_game", LOCSTR(@"游戏")); + [game setRightIconURL:@"http://qq1234.org/uploads/allimg/140404/3_140404151205_8.jpg" withRightIconBadge:YES]; + [game setSubTitle:@"英雄联盟计算器版"]; + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(game).selectedAction(^ (TLMenuItem *data) { + @strongify(self); + TLGameViewController *gameVC = [[TLGameViewController alloc] init]; + PushVC(gameVC); + }); + } // 小程序 - self.addSection(TLDiscoverSectionTagProgram).sectionInsets(UIEdgeInsetsMake(20, 0, 30, 0)); - TLMenuItem *program = createMenuItem(@"discover_app", LOCSTR(@"小程序")); - self.addCell(NAME_DISCOVER_MENU_CELL).toSection(TLDiscoverSectionTagProgram).withDataModel(program).viewTag(TLDiscoverCellTagProgram); + { + NSInteger sectionTag = TLDiscoverSectionTagProgram; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 30, 0)); + TLMenuItem *program = createMenuItem(@"discover_app", LOCSTR(@"小程序")); + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(program).selectedAction(^ (id data) { + @strongify(self); + TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://github.com/tbl00c"]; + PushVC(webVC); + }); + } [self reloadView]; - [self resetTabBarBadge]; } +- (void)resetTabBarBadge +{ + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + NSString *badgeValue; + NSArray *data = [self allDataModelArray]; + for (NSArray *section in data) { + for (id item in section) { + if ([item isKindOfClass:[TLMenuItem class]]) { + if ([(TLMenuItem *)item badge] || [(TLMenuItem *)item showRightIconBadge]) { + badgeValue = @""; + break; + } + } + } + } + dispatch_async(dispatch_get_main_queue(), ^{ + [self.tabBarItem setBadgeValue:badgeValue]; + }); + }); +} + +#pragma mark - # Delegate +- (void)collectionViewDidSelectItem:(TLMenuItem *)dataModel sectionTag:(NSInteger)sectionTag cellTag:(NSInteger)cellTag className:(NSString *)className indexPath:(NSIndexPath *)indexPath +{ + if ([dataModel isKindOfClass:[TLMenuItem class]]) { + BOOL needResetTabBarBadge = (dataModel.badge || (dataModel.rightIconURL && dataModel.showRightIconBadge)); + BOOL hasDesc = dataModel.subTitle.length > 0 || dataModel.rightIconURL.length > 0; + + if (needResetTabBarBadge) { + [dataModel setBadge:nil]; + [self resetTabBarBadge]; + } + if (hasDesc) { + [dataModel setSubTitle:nil]; + [dataModel setRightIconURL:nil]; + } + + if (needResetTabBarBadge || hasDesc) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self reloadView]; + }); + } + } +} + @end diff --git a/TLChat/Modules/Expression/TLMyExpressionViewController/TLMyExpressionViewController.h b/TLChat/Modules/Expression/TLMyExpressionViewController/TLMyExpressionViewController.h index a4e4f40a..a4cf4026 100644 --- a/TLChat/Modules/Expression/TLMyExpressionViewController/TLMyExpressionViewController.h +++ b/TLChat/Modules/Expression/TLMyExpressionViewController/TLMyExpressionViewController.h @@ -6,8 +6,8 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" -@interface TLMyExpressionViewController : TLSettingViewController +@interface TLMyExpressionViewController : TLBaseSettingViewController @end diff --git a/TLChat/Modules/Discover/GameViewController/TLGameViewController.h b/TLChat/Modules/Game/TLGameViewController/TLGameViewController.h similarity index 100% rename from TLChat/Modules/Discover/GameViewController/TLGameViewController.h rename to TLChat/Modules/Game/TLGameViewController/TLGameViewController.h diff --git a/TLChat/Modules/Discover/GameViewController/TLGameViewController.m b/TLChat/Modules/Game/TLGameViewController/TLGameViewController.m similarity index 100% rename from TLChat/Modules/Discover/GameViewController/TLGameViewController.m rename to TLChat/Modules/Game/TLGameViewController/TLGameViewController.m diff --git a/TLChat/Modules/Mine/MineInfoViewController/MineInfoViews/TLMineInfoAvatarCell.h b/TLChat/Modules/Mine/MineInfoViewController/MineInfoViews/TLMineInfoAvatarCell.h deleted file mode 100644 index 696cee53..00000000 --- a/TLChat/Modules/Mine/MineInfoViewController/MineInfoViews/TLMineInfoAvatarCell.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// TLMineInfoAvatarCell.h -// TLChat -// -// Created by 李伯坤 on 16/2/10. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import -#import "TLSettingItem.h" - -@interface TLMineInfoAvatarCell : UITableViewCell - -@property (nonatomic, strong) TLSettingItem *item; - -@end diff --git a/TLChat/Modules/Mine/MineInfoViewController/TLMineInfoViewController.m b/TLChat/Modules/Mine/MineInfoViewController/TLMineInfoViewController.m deleted file mode 100644 index caa1b0ac..00000000 --- a/TLChat/Modules/Mine/MineInfoViewController/TLMineInfoViewController.m +++ /dev/null @@ -1,93 +0,0 @@ -// -// TLMineInfoViewController.m -// TLChat -// -// Created by 李伯坤 on 16/2/10. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLMineInfoViewController.h" -#import "TLMineInfoAvatarCell.h" -#import "TLMyQRCodeViewController.h" -#import "TLUserHelper.h" - -@implementation TLMineInfoViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - [self.navigationItem setTitle:LOCSTR(@"个人信息")]; - - [self.tableView registerClass:[TLMineInfoAvatarCell class] forCellReuseIdentifier:@"TLMineInfoAvatarCell"]; - - [self p_initMineInfoData]; -} - -#pragma mark - # Delegate -//MARK: UITableViewDataSource -- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath -{ - TLSettingItem *item = [self.data[indexPath.section] objectAtIndex:indexPath.row]; - if ([item.title isEqualToString:@"头像"]) { - TLMineInfoAvatarCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TLMineInfoAvatarCell"]; - [cell setItem:item]; - return cell; - } - return [super tableView:tableView cellForRowAtIndexPath:indexPath]; -} - -//MARK: UITableViewDelegate -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - TLSettingItem *item = [self.data[indexPath.section] objectAtIndex:indexPath.row]; - if ([item.title isEqualToString:@"我的二维码"]) { - TLMyQRCodeViewController *myQRCodeVC = [[TLMyQRCodeViewController alloc] init]; - PushVC(myQRCodeVC); - } - [self.tableView deselectRowAtIndexPath:indexPath animated:NO]; -} - -- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath -{ - TLSettingItem *item = [self.data[indexPath.section] objectAtIndex:indexPath.row]; - if ([item.title isEqualToString:@"头像"]) { - return 85.0f; - } - return [super tableView:tableView heightForRowAtIndexPath:indexPath]; -} - -#pragma mark - # Private Methods -- (void)p_initMineInfoData -{ - TLUser *userInfo = [TLUserHelper sharedHelper].user; - - TLSettingItem *avatar = TLCreateSettingItem(@"头像"); - avatar.rightImageURL = userInfo.avatarURL; - TLSettingItem *nikename = TLCreateSettingItem(@"名字"); - nikename.subTitle = userInfo.nikeName.length > 0 ? userInfo.nikeName : @"未设置"; - TLSettingItem *username = TLCreateSettingItem(@"微信号"); - if (userInfo.username.length > 0) { - username.subTitle = userInfo.username; - username.showDisclosureIndicator = NO; - username.disableHighlight = YES; - } - else { - username.subTitle = @"未设置"; - } - - TLSettingItem *qrCode = TLCreateSettingItem(@"我的二维码"); - qrCode.rightImagePath = @"mine_cell_myQR"; - TLSettingItem *location = TLCreateSettingItem(@"我的地址"); - TLSettingGroup *group1 = TLCreateSettingGroup(nil, nil, (@[avatar, nikename, username, qrCode, location])); - - TLSettingItem *sex = TLCreateSettingItem(@"性别"); - sex.subTitle = userInfo.detailInfo.sex; - TLSettingItem *city = TLCreateSettingItem(@"地区"); - city.subTitle = userInfo.detailInfo.location; - TLSettingItem *motto = TLCreateSettingItem(@"个性签名"); - motto.subTitle = userInfo.detailInfo.motto.length > 0 ? userInfo.detailInfo.motto : @"未填写"; - TLSettingGroup *group2 = TLCreateSettingGroup(nil, nil, (@[sex, city, motto])); - - self.data = @[group1, group2].mutableCopy; -} - -@end diff --git a/TLChat/Modules/Mine/MineInfoViewController/TLMineInfoViewController.h b/TLChat/Modules/Mine/TLMineInfoViewController/TLMineInfoViewController.h similarity index 60% rename from TLChat/Modules/Mine/MineInfoViewController/TLMineInfoViewController.h rename to TLChat/Modules/Mine/TLMineInfoViewController/TLMineInfoViewController.h index 577867fa..e5de1979 100644 --- a/TLChat/Modules/Mine/MineInfoViewController/TLMineInfoViewController.h +++ b/TLChat/Modules/Mine/TLMineInfoViewController/TLMineInfoViewController.h @@ -6,8 +6,8 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import -@interface TLMineInfoViewController : TLSettingViewController +@interface TLMineInfoViewController : ZZFlexibleLayoutViewController @end diff --git a/TLChat/Modules/Mine/TLMineInfoViewController/TLMineInfoViewController.m b/TLChat/Modules/Mine/TLMineInfoViewController/TLMineInfoViewController.m new file mode 100644 index 00000000..e6138c70 --- /dev/null +++ b/TLChat/Modules/Mine/TLMineInfoViewController/TLMineInfoViewController.m @@ -0,0 +1,97 @@ +// +// TLMineInfoViewController.m +// TLChat +// +// Created by 李伯坤 on 16/2/10. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import "TLMineInfoViewController.h" +#import "TLMyQRCodeViewController.h" +#import "TLUserHelper.h" +#import "TLSettingItem.h" + +typedef NS_ENUM(NSInteger, TLMineInfoVCSectionType) { + TLMineInfoVCSectionTypeBase, + TLMineInfoVCSectionTypeMore, +}; + +@implementation TLMineInfoViewController + +- (void)loadView +{ + [super loadView]; + [self setTitle:LOCSTR(@"个人信息")]; + [self.view setBackgroundColor:[UIColor colorGrayBG]]; + + [self loadMineInfoUI]; +} + +#pragma mark - # UI +- (void)loadMineInfoUI +{ + @weakify(self); + self.clear(); + + TLUser *userInfo = [TLUserHelper sharedHelper].user; + + { + NSInteger sectionTag = TLMineInfoVCSectionTypeBase; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0)); + + // 头像 + TLSettingItem *avatar = TLCreateSettingItem(@"头像"); + avatar.rightImageURL = userInfo.avatarURL; + self.addCell(@"TLMineInfoAvatarCell").toSection(sectionTag).withDataModel(avatar).selectedAction(^ (id data) { + + }); + + // 名字 + TLSettingItem *nikename = TLCreateSettingItem(@"名字"); + nikename.subTitle = userInfo.nikeName.length > 0 ? userInfo.nikeName : @"未设置"; + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(nikename).selectedAction(^ (id data) { + + }); + + // 微信号 + TLSettingItem *wechatId = TLCreateSettingItem(@"微信号"); + wechatId.showDisclosureIndicator = userInfo.username.length == 0; + wechatId.subTitle = userInfo.username.length > 0 ? userInfo.username : @"未设置"; + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(wechatId).selectedAction(^ (id data) { + + }); + + // 二维码 + TLSettingItem *qrCode = TLCreateSettingItem(@"我的二维码"); + qrCode.rightImagePath = @"mine_cell_myQR"; + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(qrCode).selectedAction(^ (id data) { + @strongify(self); + TLMyQRCodeViewController *myQRCodeVC = [[TLMyQRCodeViewController alloc] init]; + PushVC(myQRCodeVC); + }); + + // 更多 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"更多")).selectedAction(^ (id data) { + + }); + } + + { + NSInteger sectionTag = TLMineInfoVCSectionTypeMore; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + + // 我的地址 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"我的地址")).selectedAction(^ (id data) { + + }); + + // 我的发票抬头 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"我的发票抬头")).selectedAction(^ (id data) { + + }); + } + + [self reloadView]; +} + +@end diff --git a/TLChat/Modules/Mine/TLMineInfoViewController/Views/TLMineInfoAvatarCell.h b/TLChat/Modules/Mine/TLMineInfoViewController/Views/TLMineInfoAvatarCell.h new file mode 100644 index 00000000..116cdc4d --- /dev/null +++ b/TLChat/Modules/Mine/TLMineInfoViewController/Views/TLMineInfoAvatarCell.h @@ -0,0 +1,13 @@ +// +// TLMineInfoAvatarCell.h +// TLChat +// +// Created by 李伯坤 on 16/2/10. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import "TLSettingItemBaseCell.h" + +@interface TLMineInfoAvatarCell : TLSettingItemBaseCell + +@end diff --git a/TLChat/Modules/Mine/MineInfoViewController/MineInfoViews/TLMineInfoAvatarCell.m b/TLChat/Modules/Mine/TLMineInfoViewController/Views/TLMineInfoAvatarCell.m similarity index 84% rename from TLChat/Modules/Mine/MineInfoViewController/MineInfoViews/TLMineInfoAvatarCell.m rename to TLChat/Modules/Mine/TLMineInfoViewController/Views/TLMineInfoAvatarCell.m index f7361edf..a865b3d8 100644 --- a/TLChat/Modules/Mine/MineInfoViewController/MineInfoViews/TLMineInfoAvatarCell.m +++ b/TLChat/Modules/Mine/TLMineInfoViewController/Views/TLMineInfoAvatarCell.m @@ -19,10 +19,16 @@ @interface TLMineInfoAvatarCell () @implementation TLMineInfoAvatarCell -- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier +#pragma mark - # Protocol ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { - [self setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; + return 85.0f; +} + +#pragma mark - # Cell +- (id)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { [self.contentView addSubview:self.titleLabel]; [self.contentView addSubview:self.avatarImageView]; [self p_addMasonry]; @@ -32,7 +38,7 @@ - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reus - (void)setItem:(TLSettingItem *)item { - _item = item; + [super setItem:item]; [self.titleLabel setText:item.title]; if (item.rightImagePath) { [self.avatarImageView setImage: [UIImage imageNamed:item.rightImagePath]]; @@ -45,7 +51,7 @@ - (void)setItem:(TLSettingItem *)item } } -#pragma mark - Private Methods - +#pragma mark - # Private Methods - (void)p_addMasonry { [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { @@ -55,14 +61,14 @@ - (void)p_addMasonry }]; [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.mas_equalTo(self.contentView); + make.right.mas_equalTo(-30); make.top.mas_equalTo(self.contentView).mas_offset(9); make.bottom.mas_equalTo(self.contentView).mas_offset(-9); make.width.mas_equalTo(self.avatarImageView.mas_height); }]; } -#pragma mark - Getter - +#pragma mark - # Getter - (UILabel *)titleLabel { if (_titleLabel == nil) { diff --git a/TLChat/Modules/Mine/TLMineViewController/TLMineViewController+Delegate.h b/TLChat/Modules/Mine/TLMineViewController/TLMineViewController+Delegate.h deleted file mode 100644 index 235502df..00000000 --- a/TLChat/Modules/Mine/TLMineViewController/TLMineViewController+Delegate.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// TLMineViewController+Delegate.h -// TLChat -// -// Created by 李伯坤 on 2017/7/18. -// Copyright © 2017年 李伯坤. All rights reserved. -// - -#import "TLMineViewController.h" - -typedef NS_ENUM(NSInteger, TLMineSectionTag) { - TLMineSectionTagUserInfo, - TLMineSectionTagWallet, - TLMineSectionTagFounction, - TLMineSectionTagExpression, - TLMineSectionTagSetting, -}; - -typedef NS_ENUM(NSInteger, TLMineCellTag) { - TLMineCellTagUserInfo, - TLMineCellTagWallet, - TLMineCellTagCollect, - TLMineCellTagAlbum, - TLMineCellTagCard, - TLMineCellTagExpression, - TLMineCellTagSetting, -}; - -@interface TLMineViewController (Delegate) - -/// 重置tabBar红点 -- (void)resetTabBarBadge; - -@end diff --git a/TLChat/Modules/Mine/TLMineViewController/TLMineViewController+Delegate.m b/TLChat/Modules/Mine/TLMineViewController/TLMineViewController+Delegate.m deleted file mode 100644 index dc98886a..00000000 --- a/TLChat/Modules/Mine/TLMineViewController/TLMineViewController+Delegate.m +++ /dev/null @@ -1,79 +0,0 @@ -// -// TLMineViewController+Delegate.m -// TLChat -// -// Created by 李伯坤 on 2017/7/18. -// Copyright © 2017年 李伯坤. All rights reserved. -// - -#import "TLMineViewController+Delegate.h" -#import "TLMineInfoViewController.h" -#import "TLWalletViewController.h" -#import "TLExpressionViewController.h" -#import "TLMineSettingViewController.h" -#import "TLMenuItem.h" - -@implementation TLMineViewController (Delegate) - -- (void)collectionViewDidSelectItem:(TLMenuItem *)dataModel sectionTag:(NSInteger)sectionTag cellTag:(NSInteger)cellTag className:(NSString *)className indexPath:(NSIndexPath *)indexPath -{ - if (cellTag == TLMineCellTagUserInfo) { - TLMineInfoViewController *mineInfoVC = [[TLMineInfoViewController alloc] init]; - PushVC(mineInfoVC); - } - else if (cellTag == TLMineCellTagWallet) { - TLWalletViewController *walletVC = [[TLWalletViewController alloc] init]; - PushVC(walletVC); - } - else if (cellTag == TLMineCellTagExpression) { - TLExpressionViewController *expressionVC = [[TLExpressionViewController alloc] init]; - PushVC(expressionVC); - } - else if (cellTag == TLMineCellTagSetting) { - TLMineSettingViewController *settingVC = [[TLMineSettingViewController alloc] init]; - PushVC(settingVC); - } - - if ([dataModel isKindOfClass:[TLMenuItem class]]) { - BOOL needResetTabBarBadge = (dataModel.badge || (dataModel.rightIconURL && dataModel.showRightIconBadge)); - BOOL hasDesc = dataModel.subTitle.length > 0 || dataModel.rightIconURL.length > 0; - - if (needResetTabBarBadge) { - [dataModel setBadge:nil]; - [self resetTabBarBadge]; - } - if (hasDesc) { - [dataModel setSubTitle:nil]; - [dataModel setRightIconURL:nil]; - } - - if (needResetTabBarBadge || hasDesc) { - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [self reloadView]; - }); - } - } -} - -- (void)resetTabBarBadge -{ - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - NSString *badgeValue; - NSArray *data = [self allDataModelArray]; - for (NSArray *section in data) { - for (id item in section) { - if ([item isKindOfClass:[TLMenuItem class]]) { - if ([(TLMenuItem *)item badge] || [(TLMenuItem *)item showRightIconBadge]) { - badgeValue = @""; - break; - } - } - } - } - dispatch_async(dispatch_get_main_queue(), ^{ - [self.tabBarItem setBadgeValue:badgeValue]; - }); - }); -} - -@end diff --git a/TLChat/Modules/Mine/TLMineViewController/TLMineViewController.m b/TLChat/Modules/Mine/TLMineViewController/TLMineViewController.m index 483cf3a7..fa611229 100644 --- a/TLChat/Modules/Mine/TLMineViewController/TLMineViewController.m +++ b/TLChat/Modules/Mine/TLMineViewController/TLMineViewController.m @@ -7,16 +7,20 @@ // #import "TLMineViewController.h" -#import "TLMineViewController+Delegate.h" #import "TLMenuItem.h" -#import "TLUser.h" #import "TLUserHelper.h" -#define NAME_MINE_MENU_CELL @"TLMenuItemCell" +#import "TLMineInfoViewController.h" +#import "TLWalletViewController.h" +#import "TLExpressionViewController.h" +#import "TLSettingViewController.h" -@interface TLMineViewController () - -@end +typedef NS_ENUM(NSInteger, TLMineSectionTag) { + TLMineSectionTagUserInfo, + TLMineSectionTagWallet, + TLMineSectionTagFounction, + TLMineSectionTagSetting, +}; @implementation TLMineViewController @@ -46,46 +50,124 @@ - (void)viewWillLayoutSubviews } } -#pragma mark - # Private Methods +#pragma mark - # UI - (void)loadMenus { - [self deleteAllItems]; - + @weakify(self); + self.clear(); TLUser *user = [TLUserHelper sharedHelper].user; // 用户信息 - self.addSection(TLMineSectionTagUserInfo).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0)); - self.addCell(@"TLMineHeaderCell").toSection(TLMineCellTagUserInfo).withDataModel(user).viewTag(TLMineCellTagUserInfo); + { + NSInteger sectionTag = TLMineSectionTagUserInfo; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0)); + self.addCell(@"TLMineHeaderCell").toSection(sectionTag).withDataModel(user).selectedAction(^ (id data) { + @strongify(self); + TLMineInfoViewController *mineInfoVC = [[TLMineInfoViewController alloc] init]; + PushVC(mineInfoVC); + }); + } // 钱包 - self.addSection(TLMineSectionTagWallet).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); - TLMenuItem *wallet = createMenuItem(@"mine_wallet", LOCSTR(@"钱包")); - [wallet setBadge:@""]; - self.addCell(NAME_MINE_MENU_CELL).toSection(TLMineSectionTagWallet).withDataModel(wallet).viewTag(TLMineCellTagWallet); + { + NSInteger sectionTag = TLMineSectionTagWallet; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + TLMenuItem *wallet = createMenuItem(@"mine_wallet", LOCSTR(@"钱包")); + [wallet setSubTitle:@"新入账1024元"]; + [wallet setBadge:@""]; + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(wallet).selectedAction(^ (id data) { + @strongify(self); + TLWalletViewController *walletVC = [[TLWalletViewController alloc] init]; + PushVC(walletVC); + }); + } // 功能 -// self.addSection(TLMineSectionTagFounction).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); -// TLMenuItem *collect = createMenuItem(@"mine_favorites", LOCSTR(@"收藏")); -// self.addCell(NAME_MINE_MENU_CELL).toSection(TLMineSectionTagFounction).withDataModel(collect).viewTag(TLMineCellTagCollect); -// TLMenuItem *album = createMenuItem(@"mine_album", LOCSTR(@"相册")); -// self.addCell(NAME_MINE_MENU_CELL).toSection(TLMineSectionTagFounction).withDataModel(album).viewTag(TLMineCellTagAlbum); -// TLMenuItem *card = createMenuItem(@"mine_card", LOCSTR(@"卡包")); -// self.addCell(NAME_MINE_MENU_CELL).toSection(TLMineSectionTagFounction).withDataModel(card).viewTag(TLMineCellTagCard); - - // 表情 - self.addSection(TLMineSectionTagExpression).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); - TLMenuItem *expression = createMenuItem(@"mine_expression", LOCSTR(@"表情")); - [expression setBadge:@"NEW"]; - self.addCell(NAME_MINE_MENU_CELL).toSection(TLMineSectionTagExpression).withDataModel(expression).viewTag(TLMineCellTagExpression); + { + NSInteger sectionTag = TLMineSectionTagFounction; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + + // 收藏 +// TLMenuItem *collect = createMenuItem(@"mine_favorites", LOCSTR(@"收藏")); +// self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(collect); + + // 相册 + TLMenuItem *album = createMenuItem(@"mine_album", LOCSTR(@"相册")); + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(album); + + // 卡包 +// TLMenuItem *card = createMenuItem(@"mine_card", LOCSTR(@"卡包")); +// self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(card); + + // 表情 + TLMenuItem *expression = createMenuItem(@"mine_expression", LOCSTR(@"表情")); + [expression setBadge:@"NEW"]; + self.addCell(CELL_MENU_ITEM).toSection(sectionTag).withDataModel(expression).selectedAction(^ (id data) { + @strongify(self); + TLExpressionViewController *expressionVC = [[TLExpressionViewController alloc] init]; + PushVC(expressionVC); + }); + } // 设置 - self.addSection(TLMineSectionTagSetting).sectionInsets(UIEdgeInsetsMake(20, 0, 30, 0)); - TLMenuItem *setting = createMenuItem(@"mine_setting", LOCSTR(@"设置")); - self.addCell(NAME_MINE_MENU_CELL).toSection(TLMineSectionTagSetting).withDataModel(setting).viewTag(TLMineCellTagSetting); + { + NSInteger sectionTag = TLMineSectionTagSetting; + self.addSection(TLMineSectionTagSetting).sectionInsets(UIEdgeInsetsMake(20, 0, 30, 0)); + TLMenuItem *setting = createMenuItem(@"mine_setting", LOCSTR(@"设置")); + self.addCell(CELL_MENU_ITEM).toSection(TLMineSectionTagSetting).withDataModel(setting).selectedAction(^ (id data) { + @strongify(self); + TLSettingViewController *settingVC = [[TLSettingViewController alloc] init]; + PushVC(settingVC); + }); + } [self reloadView]; - [self resetTabBarBadge]; } +- (void)resetTabBarBadge +{ + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + NSString *badgeValue; + NSArray *data = [self allDataModelArray]; + for (NSArray *section in data) { + for (id item in section) { + if ([item isKindOfClass:[TLMenuItem class]]) { + if ([(TLMenuItem *)item badge] || [(TLMenuItem *)item showRightIconBadge]) { + badgeValue = @""; + break; + } + } + } + } + dispatch_async(dispatch_get_main_queue(), ^{ + [self.tabBarItem setBadgeValue:badgeValue]; + }); + }); +} + +#pragma mark - # Delegate +- (void)collectionViewDidSelectItem:(TLMenuItem *)dataModel sectionTag:(NSInteger)sectionTag cellTag:(NSInteger)cellTag className:(NSString *)className indexPath:(NSIndexPath *)indexPath +{ + if ([dataModel isKindOfClass:[TLMenuItem class]]) { + BOOL needResetTabBarBadge = (dataModel.badge || (dataModel.rightIconURL && dataModel.showRightIconBadge)); + BOOL hasDesc = dataModel.subTitle.length > 0 || dataModel.rightIconURL.length > 0; + + if (needResetTabBarBadge) { + [dataModel setBadge:nil]; + [self resetTabBarBadge]; + } + if (hasDesc) { + [dataModel setSubTitle:nil]; + [dataModel setRightIconURL:nil]; + } + + if (needResetTabBarBadge || hasDesc) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self reloadView]; + }); + } + } +} + @end diff --git a/TLChat/Modules/Mine/TLMineViewController/Views/TLMineHeaderCell.m b/TLChat/Modules/Mine/TLMineViewController/Views/TLMineHeaderCell.m index ecd604a8..b89bcfff 100644 --- a/TLChat/Modules/Mine/TLMineViewController/Views/TLMineHeaderCell.m +++ b/TLChat/Modules/Mine/TLMineViewController/Views/TLMineHeaderCell.m @@ -29,9 +29,9 @@ @interface TLMineHeaderCell () @implementation TLMineHeaderCell #pragma mark - # Protocol -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 90); + return 90; } - (void)setViewDataModel:(id)dataModel diff --git a/TLChat/Modules/Mine/MineInfoViewController/MyQRCodeViewController/TLMyQRCodeViewController.h b/TLChat/Modules/Mine/TLMyQRCodeViewController/TLMyQRCodeViewController.h similarity index 100% rename from TLChat/Modules/Mine/MineInfoViewController/MyQRCodeViewController/TLMyQRCodeViewController.h rename to TLChat/Modules/Mine/TLMyQRCodeViewController/TLMyQRCodeViewController.h diff --git a/TLChat/Modules/Mine/MineInfoViewController/MyQRCodeViewController/TLMyQRCodeViewController.m b/TLChat/Modules/Mine/TLMyQRCodeViewController/TLMyQRCodeViewController.m similarity index 100% rename from TLChat/Modules/Mine/MineInfoViewController/MyQRCodeViewController/TLMyQRCodeViewController.m rename to TLChat/Modules/Mine/TLMyQRCodeViewController/TLMyQRCodeViewController.m diff --git a/TLChat/Modules/Mine/WalletViewController/TLWalletViewController.h b/TLChat/Modules/Mine/TLWalletViewController/TLWalletViewController.h similarity index 100% rename from TLChat/Modules/Mine/WalletViewController/TLWalletViewController.h rename to TLChat/Modules/Mine/TLWalletViewController/TLWalletViewController.h diff --git a/TLChat/Modules/Mine/WalletViewController/TLWalletViewController.m b/TLChat/Modules/Mine/TLWalletViewController/TLWalletViewController.m similarity index 100% rename from TLChat/Modules/Mine/WalletViewController/TLWalletViewController.m rename to TLChat/Modules/Mine/TLWalletViewController/TLWalletViewController.m diff --git a/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentBaseCell.m b/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentBaseCell.m index 0ee38e33..d1c45c46 100644 --- a/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentBaseCell.m +++ b/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentBaseCell.m @@ -35,10 +35,10 @@ @interface TLMomentBaseCell () @implementation TLMomentBaseCell #pragma mark - # Protocol -+ (CGSize)viewSizeByDataModel:(TLMoment *)dataModel ++ (CGFloat)viewHeightByDataModel:(TLMoment *)dataModel { CGFloat height = dataModel.momentFrame.height; - return CGSizeMake(SCREEN_WIDTH, height); + return height; } - (void)setViewDataModel:(id)dataModel diff --git a/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentHeaderCell.m b/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentHeaderCell.m index a434385e..6195a69d 100644 --- a/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentHeaderCell.m +++ b/TLChat/Modules/Moments/TLMomentsViewController/MomentCells/TLMomentHeaderCell.m @@ -26,9 +26,9 @@ @interface TLMomentHeaderCell () @implementation TLMomentHeaderCell #pragma mark - # Protocol -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 260.0f); + return 260.0f; } - (void)setViewDataModel:(id)dataModel diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR.imageset/ScanQRCode@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR.imageset/ScanQRCode@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR.imageset/ScanQRCode@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR.imageset/ScanQRCode@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR.imageset/ScanQRCode@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR.imageset/ScanQRCode@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR.imageset/ScanQRCode@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR.imageset/ScanQRCode@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR_HL.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR_HL.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR_HL.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR_HL.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR_HL.imageset/ScanQRCode_HL@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR_HL.imageset/ScanQRCode_HL@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR_HL.imageset/ScanQRCode_HL@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR_HL.imageset/ScanQRCode_HL@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR_HL.imageset/ScanQRCode_HL@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR_HL.imageset/ScanQRCode_HL@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_QR_HL.imageset/ScanQRCode_HL@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_QR_HL.imageset/ScanQRCode_HL@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book.imageset/ScanBook@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book.imageset/ScanBook@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book.imageset/ScanBook@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book.imageset/ScanBook@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book.imageset/ScanBook@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book.imageset/ScanBook@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book.imageset/ScanBook@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book.imageset/ScanBook@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book_HL.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book_HL.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book_HL.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book_HL.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book_HL.imageset/ScanBook_HL@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book_HL.imageset/ScanBook_HL@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book_HL.imageset/ScanBook_HL@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book_HL.imageset/ScanBook_HL@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book_HL.imageset/ScanBook_HL@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book_HL.imageset/ScanBook_HL@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_book_HL.imageset/ScanBook_HL@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_book_HL.imageset/ScanBook_HL@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street.imageset/ScanStreet@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street.imageset/ScanStreet@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street.imageset/ScanStreet@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street.imageset/ScanStreet@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street.imageset/ScanStreet@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street.imageset/ScanStreet@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street.imageset/ScanStreet@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street.imageset/ScanStreet@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street_HL.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street_HL.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street_HL.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street_HL.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street_HL.imageset/ScanStreet_HL@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street_HL.imageset/ScanStreet_HL@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street_HL.imageset/ScanStreet_HL@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street_HL.imageset/ScanStreet_HL@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street_HL.imageset/ScanStreet_HL@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street_HL.imageset/ScanStreet_HL@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_street_HL.imageset/ScanStreet_HL@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_street_HL.imageset/ScanStreet_HL@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word.imageset/ScanWord@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word.imageset/ScanWord@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word.imageset/ScanWord@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word.imageset/ScanWord@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word.imageset/ScanWord@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word.imageset/ScanWord@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word.imageset/ScanWord@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word.imageset/ScanWord@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word_HL.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word_HL.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word_HL.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word_HL.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word_HL.imageset/ScanWord_HL@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word_HL.imageset/ScanWord_HL@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word_HL.imageset/ScanWord_HL@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word_HL.imageset/ScanWord_HL@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word_HL.imageset/ScanWord_HL@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word_HL.imageset/ScanWord_HL@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scan_word_HL.imageset/ScanWord_HL@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scan_word_HL.imageset/ScanWord_HL@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_left.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_left.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_left.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_left.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_left.imageset/ScanQR3@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_left.imageset/ScanQR3@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_left.imageset/ScanQR3@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_left.imageset/ScanQR3@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_left.imageset/ScanQR3@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_left.imageset/ScanQR3@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_left.imageset/ScanQR3@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_left.imageset/ScanQR3@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_right.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_right.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_right.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_right.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_right.imageset/ScanQR4@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_right.imageset/ScanQR4@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_right.imageset/ScanQR4@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_right.imageset/ScanQR4@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_right.imageset/ScanQR4@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_right.imageset/ScanQR4@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_bottom_right.imageset/ScanQR4@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_bottom_right.imageset/ScanQR4@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_line.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_line.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_line.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_line.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_line.imageset/ff_QRCodeScanLine@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_line.imageset/ff_QRCodeScanLine@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_line.imageset/ff_QRCodeScanLine@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_line.imageset/ff_QRCodeScanLine@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_left.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_left.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_left.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_left.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_left.imageset/ScanQR1@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_left.imageset/ScanQR1@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_left.imageset/ScanQR1@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_left.imageset/ScanQR1@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_left.imageset/ScanQR1@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_left.imageset/ScanQR1@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_left.imageset/ScanQR1@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_left.imageset/ScanQR1@3x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_right.imageset/Contents.json b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_right.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_right.imageset/Contents.json rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_right.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_right.imageset/ScanQR2@2x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_right.imageset/ScanQR2@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_right.imageset/ScanQR2@2x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_right.imageset/ScanQR2@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_right.imageset/ScanQR2@3x.png b/TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_right.imageset/ScanQR2@3x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Scanner/scanner_top_right.imageset/ScanQR2@3x.png rename to TLChat/Modules/Scanner/Resources/Scanner.xcassets/scanner_top_right.imageset/ScanQR2@3x.png diff --git a/TLChat/Modules/Discover/ScannerViewController/TLScannerViewController.h b/TLChat/Modules/Scanner/TLScannerViewController/TLScannerViewController.h similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/TLScannerViewController.h rename to TLChat/Modules/Scanner/TLScannerViewController/TLScannerViewController.h diff --git a/TLChat/Modules/Discover/ScannerViewController/TLScannerViewController.m b/TLChat/Modules/Scanner/TLScannerViewController/TLScannerViewController.m similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/TLScannerViewController.m rename to TLChat/Modules/Scanner/TLScannerViewController/TLScannerViewController.m diff --git a/TLChat/Modules/Discover/ScannerViewController/TLScanningViewController.h b/TLChat/Modules/Scanner/TLScannerViewController/TLScanningViewController.h similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/TLScanningViewController.h rename to TLChat/Modules/Scanner/TLScannerViewController/TLScanningViewController.h diff --git a/TLChat/Modules/Discover/ScannerViewController/TLScanningViewController.m b/TLChat/Modules/Scanner/TLScannerViewController/TLScanningViewController.m similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/TLScanningViewController.m rename to TLChat/Modules/Scanner/TLScannerViewController/TLScanningViewController.m diff --git a/TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerBackgroundView.h b/TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerBackgroundView.h similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerBackgroundView.h rename to TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerBackgroundView.h diff --git a/TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerBackgroundView.m b/TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerBackgroundView.m similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerBackgroundView.m rename to TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerBackgroundView.m diff --git a/TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerButton.h b/TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerButton.h similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerButton.h rename to TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerButton.h diff --git a/TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerButton.m b/TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerButton.m similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerButton.m rename to TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerButton.m diff --git a/TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerView.h b/TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerView.h similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerView.h rename to TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerView.h diff --git a/TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerView.m b/TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerView.m similarity index 100% rename from TLChat/Modules/Discover/ScannerViewController/ScannerView/TLScannerView.m rename to TLChat/Modules/Scanner/TLScannerViewController/Views/TLScannerView.m diff --git a/TLChat/Modules/Setting/AboutViewController/TLAboutHeaderView.m b/TLChat/Modules/Setting/AboutViewController/TLAboutHeaderView.m deleted file mode 100644 index 7fec4218..00000000 --- a/TLChat/Modules/Setting/AboutViewController/TLAboutHeaderView.m +++ /dev/null @@ -1,78 +0,0 @@ -// -// TLAboutHeaderView.m -// TLChat -// -// Created by 李伯坤 on 16/2/22. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLAboutHeaderView.h" - -@interface TLAboutHeaderView () - -@property (nonatomic, strong) UIImageView *imageView; - -@property (nonatomic, strong) UILabel *titleLabel; - -@end - -@implementation TLAboutHeaderView - -- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier -{ - if (self = [super initWithReuseIdentifier:reuseIdentifier]) { - [self.contentView addSubview:self.imageView]; - [self.contentView addSubview:self.titleLabel]; - [self p_addMasonry]; - } - return self; -} - -- (void)setTitle:(NSString *)title -{ - _title = title; - [self.titleLabel setText:title]; -} - -- (void)setImagePath:(NSString *)imagePath -{ - _imagePath = imagePath; - [self.imageView setImage:[UIImage imageNamed:imagePath]]; -} - -- (void)p_addMasonry -{ - [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { - make.top.mas_equalTo(self.contentView).mas_offset(4); - make.centerX.mas_equalTo(self.contentView); - make.bottom.mas_equalTo(self.titleLabel.mas_top).mas_equalTo(1); - make.width.mas_equalTo(self.imageView.mas_height).multipliedBy(1.13); - }]; - [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { - make.bottom.mas_equalTo(self.contentView).mas_offset(-10); - make.left.and.right.mas_equalTo(self.contentView); - make.height.mas_equalTo(25); - }]; -} - -#pragma mark - Getter - -- (UIImageView *)imageView -{ - if (_imageView == nil) { - _imageView = [[UIImageView alloc] init]; - } - return _imageView; -} - -- (UILabel *)titleLabel -{ - if (_titleLabel == nil) { - _titleLabel = [[UILabel alloc] init]; - [_titleLabel setFont:[UIFont systemFontOfSize:17.0f]]; - [_titleLabel setTextColor:[UIColor grayColor]]; - [_titleLabel setTextAlignment:NSTextAlignmentCenter]; - } - return _titleLabel; -} - -@end diff --git a/TLChat/Modules/Setting/AboutViewController/TLAboutViewController.m b/TLChat/Modules/Setting/AboutViewController/TLAboutViewController.m deleted file mode 100644 index 28320812..00000000 --- a/TLChat/Modules/Setting/AboutViewController/TLAboutViewController.m +++ /dev/null @@ -1,98 +0,0 @@ -// -// TLAboutViewController.m -// TLChat -// -// Created by 李伯坤 on 16/2/22. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLAboutViewController.h" -#import "TLAppConfig.h" -#import "TLAboutHeaderView.h" - -#define HEIGHT_TOPVIEW 100.0f - -@interface TLAboutViewController () - -@property (nonatomic, strong) UILabel *cmpLabel; - -@end - -@implementation TLAboutViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - [self.navigationItem setTitle:LOCSTR(@"关于微信")]; - - [self p_initAboutData]; - - [self.tableView registerClass:[TLAboutHeaderView class] forHeaderFooterViewReuseIdentifier:@"TLAboutHeaderView"]; - - [self.tableView.tableFooterView addSubview:self.cmpLabel]; - [self p_addMasonry]; -} - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - float footerHeight = SCREEN_HEIGHT - self.tableView.contentSize.height - NAVBAR_HEIGHT - HEIGHT_SETTING_TOP_SPACE; - [self.tableView.tableFooterView setHeight:footerHeight]; -} - -#pragma mark - # Delegate -//MARK: UITableViewDataSource -- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section -{ - if (section == 0) { - TLAboutHeaderView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"TLAboutHeaderView"]; - [headerView setImagePath:@"AppLogo"]; - [headerView setTitle:[NSString stringWithFormat:@"微信 TLChat %@", [TLAppConfig sharedConfig].version]]; - return headerView; - } - return nil; -} - -//MARK: UITableViewDelegate -- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section -{ - if (section == 0) { - return HEIGHT_TOPVIEW; - } - return 0; -} - -#pragma mark - # Private Methods -- (void)p_addMasonry -{ - [self.cmpLabel mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.and.right.mas_equalTo(self.tableView.tableFooterView); - make.bottom.mas_equalTo(self.tableView.tableFooterView).mas_offset(-1); - }]; -} - -- (void)p_initAboutData -{ - TLSettingItem *item1 = TLCreateSettingItem(@"去评分"); - TLSettingItem *item2 = TLCreateSettingItem(@"欢迎页"); - TLSettingItem *item3 = TLCreateSettingItem(@"功能介绍"); - TLSettingItem *item4 = TLCreateSettingItem(@"系统通知"); - TLSettingItem *item5 = TLCreateSettingItem(@"举报与投诉"); - TLSettingGroup *group1 = TLCreateSettingGroup(nil, nil, (@[item1, item2, item3, item4, item5])); - self.data = @[group1].mutableCopy; -} - -#pragma mark - # Getters -- (UILabel *)cmpLabel -{ - if (_cmpLabel == nil) { - _cmpLabel = [[UILabel alloc] init]; - [_cmpLabel setText:@"高仿微信 仅供学习\nhttps://github.com/tbl00c/TLChat"]; - [_cmpLabel setTextAlignment:NSTextAlignmentCenter]; - [_cmpLabel setTextColor:[UIColor grayColor]]; - [_cmpLabel setFont:[UIFont systemFontOfSize:12.0f]]; - [_cmpLabel setNumberOfLines:2]; - } - return _cmpLabel; -} - -@end diff --git a/TLChat/Modules/Setting/AccountAndSafetyViewController/TLAccountAndSafetyViewController.h b/TLChat/Modules/Setting/AccountAndSafetyViewController/TLAccountAndSafetyViewController.h deleted file mode 100644 index 7b2dbda6..00000000 --- a/TLChat/Modules/Setting/AccountAndSafetyViewController/TLAccountAndSafetyViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// TLAccountAndSafetyViewController.h -// TLChat -// -// Created by 李伯坤 on 16/2/10. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLSettingViewController.h" - -@interface TLAccountAndSafetyViewController : TLSettingViewController - -@end diff --git a/TLChat/Modules/Setting/AccountAndSafetyViewController/TLAccountAndSafetyViewController.m b/TLChat/Modules/Setting/AccountAndSafetyViewController/TLAccountAndSafetyViewController.m deleted file mode 100644 index 5a846732..00000000 --- a/TLChat/Modules/Setting/AccountAndSafetyViewController/TLAccountAndSafetyViewController.m +++ /dev/null @@ -1,76 +0,0 @@ -// -// TLAccountAndSafetyViewController.m -// TLChat -// -// Created by 李伯坤 on 16/2/10. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLAccountAndSafetyViewController.h" -#import "TLWebViewController.h" -#import "TLUserHelper.h" - -@implementation TLAccountAndSafetyViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - [self.navigationItem setTitle:LOCSTR(@"账号与安全")]; - - [self p_initAccountAndSafetyData]; -} - -#pragma mark - # Delegate -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - TLSettingItem *item = [self.data[indexPath.section] objectAtIndex:indexPath.row]; - if ([item.title isEqualToString:@"微信安全中心"]) { - TLWebViewController *webVC = [[TLWebViewController alloc] init]; - [webVC setUrl:@"http://weixin110.qq.com/"]; - PushVC(webVC) - } - [self.tableView deselectRowAtIndexPath:indexPath animated:NO]; -} - -#pragma mark - # Private Methods -- (void)p_initAccountAndSafetyData -{ - TLUser *userInfo = [TLUserHelper sharedHelper].user; - - TLSettingItem *username = TLCreateSettingItem(@"微信号"); - if (userInfo.username.length > 0) { - username.subTitle = userInfo.username; - username.showDisclosureIndicator = NO; - username.disableHighlight = YES; - } - else { - username.subTitle = @"未设置"; - } - TLSettingGroup *group1 = TLCreateSettingGroup(nil, nil, @[username]); - - TLSettingItem *qqNumber = TLCreateSettingItem(@"QQ号"); - qqNumber.subTitle = (userInfo.detailInfo.qqNumber.length > 0 ? userInfo.detailInfo.qqNumber : @"未绑定"); - TLSettingItem *phoneNumber = TLCreateSettingItem(@"手机号"); - phoneNumber.subTitle = (phoneNumber.subTitle.length > 0 ?userInfo.detailInfo.phoneNumber : @"未绑定"); - TLSettingItem *email = TLCreateSettingItem(@"邮箱地址"); - email.subTitle = userInfo.detailInfo.email.length > 0 ? userInfo.detailInfo.email : @"未绑定"; - TLSettingGroup *group2 = TLCreateSettingGroup(nil, nil, (@[qqNumber, phoneNumber, email])); - - TLSettingItem *voiceLock = TLCreateSettingItem(@"声音锁"); - TLSettingItem *password = TLCreateSettingItem(@"微信密码"); - TLSettingItem *idProtect = TLCreateSettingItem(@"账号保护"); - // if () { - idProtect.subTitle = @"已保护"; - idProtect.rightImagePath = @"setting_lockon"; - // } - // else { - // idProtect.subTitle = @"未保护"; - // idProtect.rightImagePath = @"setting_lockoff"; - // } - TLSettingItem *safetyCenter = TLCreateSettingItem(@"微信安全中心"); - TLSettingGroup *group3 = TLCreateSettingGroup(nil, @"如果遇到账号信息泄露、忘记密码、诈骗等账号问题,可前往微信安全中心。", (@[voiceLock, password, idProtect, safetyCenter])); - - self.data = @[group1, group2, group3].mutableCopy; - -} - -@end diff --git a/TLChat/Modules/Setting/CommonSettingViewController/ChatBackgroundViewController/TLChatBackgroundSettingViewController.h b/TLChat/Modules/Setting/CommonSettingViewController/ChatBackgroundViewController/TLChatBackgroundSettingViewController.h index b38c6848..fe81f998 100644 --- a/TLChat/Modules/Setting/CommonSettingViewController/ChatBackgroundViewController/TLChatBackgroundSettingViewController.h +++ b/TLChat/Modules/Setting/CommonSettingViewController/ChatBackgroundViewController/TLChatBackgroundSettingViewController.h @@ -6,9 +6,9 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" -@interface TLChatBackgroundSettingViewController : TLSettingViewController +@interface TLChatBackgroundSettingViewController : TLBaseSettingViewController /** * 若为nil则全局设置,否则只给对应好友设置 diff --git a/TLChat/Modules/Setting/CommonSettingViewController/TLCommonSettingViewController.h b/TLChat/Modules/Setting/CommonSettingViewController/TLCommonSettingViewController.h index f0cfa934..e2d12f7d 100644 --- a/TLChat/Modules/Setting/CommonSettingViewController/TLCommonSettingViewController.h +++ b/TLChat/Modules/Setting/CommonSettingViewController/TLCommonSettingViewController.h @@ -6,8 +6,8 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" -@interface TLCommonSettingViewController : TLSettingViewController +@interface TLCommonSettingViewController : TLBaseSettingViewController @end diff --git a/TLChat/Modules/Setting/HelpAndFeedbackViewController/TLHelpAndFeedbackViewController.h b/TLChat/Modules/Setting/HelpAndFeedbackViewController/TLHelpAndFeedbackViewController.h deleted file mode 100644 index 95fd40b7..00000000 --- a/TLChat/Modules/Setting/HelpAndFeedbackViewController/TLHelpAndFeedbackViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// TLHelpAndFeedbackViewController.h -// TLChat -// -// Created by 李伯坤 on 16/2/10. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLWebViewController.h" - -@interface TLHelpAndFeedbackViewController : TLWebViewController - -@end diff --git a/TLChat/Modules/Setting/HelpAndFeedbackViewController/TLHelpAndFeedbackViewController.m b/TLChat/Modules/Setting/HelpAndFeedbackViewController/TLHelpAndFeedbackViewController.m deleted file mode 100644 index 1b0c22ed..00000000 --- a/TLChat/Modules/Setting/HelpAndFeedbackViewController/TLHelpAndFeedbackViewController.m +++ /dev/null @@ -1,30 +0,0 @@ -// -// TLHelpAndFeedbackViewController.m -// TLChat -// -// Created by 李伯坤 on 16/2/10. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLHelpAndFeedbackViewController.h" - -@implementation TLHelpAndFeedbackViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"nav_more"] style:UIBarButtonItemStylePlain target:self action:@selector(rightBarButtonDown:)]; - [self.navigationItem setRightBarButtonItem:rightBarButton]; - - [self setUrl:@"https://github.com/tbl00c/TLChat/issues"]; -} - - -#pragma mark - Event Response - -- (void)rightBarButtonDown:(UIBarButtonItem *)sender -{ - -} - -@end diff --git a/TLChat/Modules/Setting/NewMessageSettingViewController/TLNewMessageSettingViewController.h b/TLChat/Modules/Setting/NewMessageSettingViewController/TLNewMessageSettingViewController.h index e25dcd27..7ed0cacc 100644 --- a/TLChat/Modules/Setting/NewMessageSettingViewController/TLNewMessageSettingViewController.h +++ b/TLChat/Modules/Setting/NewMessageSettingViewController/TLNewMessageSettingViewController.h @@ -6,8 +6,8 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" -@interface TLNewMessageSettingViewController : TLSettingViewController +@interface TLNewMessageSettingViewController : TLBaseSettingViewController @end diff --git a/TLChat/Modules/Setting/SettingViewController/TLMineSettingViewController.h b/TLChat/Modules/Setting/SettingViewController/TLMineSettingViewController.h deleted file mode 100644 index 743bb2bc..00000000 --- a/TLChat/Modules/Setting/SettingViewController/TLMineSettingViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// TLMineSettingViewController.h -// TLChat -// -// Created by 李伯坤 on 16/2/8. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLSettingViewController.h" - -@interface TLMineSettingViewController : TLSettingViewController - -@end diff --git a/TLChat/Modules/Setting/SettingViewController/TLMineSettingViewController.m b/TLChat/Modules/Setting/SettingViewController/TLMineSettingViewController.m deleted file mode 100644 index d54d7ab3..00000000 --- a/TLChat/Modules/Setting/SettingViewController/TLMineSettingViewController.m +++ /dev/null @@ -1,104 +0,0 @@ -// -// TLMineSettingViewController.m -// TLChat -// -// Created by 李伯坤 on 16/2/8. -// Copyright © 2016年 李伯坤. All rights reserved. -// - -#import "TLMineSettingViewController.h" -#import "TLAccountAndSafetyViewController.h" -#import "TLNewMessageSettingViewController.h" -#import "TLPrivacySettingViewController.h" -#import "TLCommonSettingViewController.h" -#import "TLHelpAndFeedbackViewController.h" -#import "TLAboutViewController.h" - -@interface TLMineSettingViewController () - - -@end - -@implementation TLMineSettingViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - [self.navigationItem setTitle:LOCSTR(@"设置")]; - - [self p_initMineSettingData]; -} - -#pragma mark - # delegate -//MARK: UITableViewDelegate -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - TLSettingItem *item = [self.data[indexPath.section] objectAtIndex:indexPath.row]; - if ([item.title isEqualToString:@"账号与安全"]) { - TLAccountAndSafetyViewController *accountAndSafetyVC = [[TLAccountAndSafetyViewController alloc] init]; - PushVC(accountAndSafetyVC); - } - else if ([item.title isEqualToString:@"新消息通知"]) { - TLNewMessageSettingViewController *newMessageSettingVC = [[TLNewMessageSettingViewController alloc] init]; - PushVC(newMessageSettingVC); - } - else if ([item.title isEqualToString:@"隐私"]) { - TLPrivacySettingViewController *privacySettingVC = [[TLPrivacySettingViewController alloc] init]; - PushVC(privacySettingVC); - } - else if ([item.title isEqualToString:@"通用"]) { - TLCommonSettingViewController *commonSettingVC = [[TLCommonSettingViewController alloc] init]; - PushVC(commonSettingVC); - } - else if ([item.title isEqualToString:@"帮助与反馈"]) { - TLHelpAndFeedbackViewController *helpAndFeedbackVC = [[TLHelpAndFeedbackViewController alloc] init]; - PushVC(helpAndFeedbackVC); - } - else if ([item.title isEqualToString:@"关于微信"]) { - TLAboutViewController *aboutVC = [[TLAboutViewController alloc] init]; - PushVC(aboutVC); - } - else if ([item.title isEqualToString:@"退出登录"]) { - TLActionSheet *actionSheet = [[TLActionSheet alloc] initWithTitle:@"退出后不会删除任何历史数据,下次登录依然可以使用本账号。" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"退出登录" otherButtonTitles:nil]; - [actionSheet show]; - } - [super tableView:tableView didSelectRowAtIndexPath:indexPath]; -} - -//MARK: TLActionSheetDelegate -- (void)actionSheet:(TLActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex -{ - -} - -#pragma mark - # Private Methods -- (void)p_initMineSettingData -{ - TLSettingItem *item1 = TLCreateSettingItem(@"账号与安全"); - // if () { - item1.subTitle = @"已保护"; - item1.rightImagePath = @"setting_lockon"; - // } - // else { - // item1.subTitle = @"为保护"; - // item1.rightImagePath = @"setting_lockoff"; - // } - TLSettingGroup *group1 = TLCreateSettingGroup(nil, nil, @[item1]); - - TLSettingItem *item2 = TLCreateSettingItem(@"新消息通知"); - TLSettingItem *item3 = TLCreateSettingItem(@"隐私"); - TLSettingItem *item4 = TLCreateSettingItem(@"通用"); - TLSettingGroup *group2 = TLCreateSettingGroup(nil, nil, (@[item2, item3, item4])); - - TLSettingItem *item5 = TLCreateSettingItem(@"帮助与反馈"); - TLSettingItem *item6 = TLCreateSettingItem(@"关于微信"); - TLSettingGroup *group3 = TLCreateSettingGroup(nil, nil, (@[item5, item6])); - - TLSettingItem *item7 = TLCreateSettingItem(@"退出登录"); - item7.type = TLSettingItemTypeTitleButton; - TLSettingGroup *group4 = TLCreateSettingGroup(nil, nil, @[item7]); - - self.data = @[group1, group2, group3, group4].mutableCopy; -} - -@end diff --git a/TLChat/Modules/Setting/AboutViewController/TLAboutViewController.h b/TLChat/Modules/Setting/TLAboutViewController/TLAboutViewController.h similarity index 61% rename from TLChat/Modules/Setting/AboutViewController/TLAboutViewController.h rename to TLChat/Modules/Setting/TLAboutViewController/TLAboutViewController.h index 824734e2..8a54211d 100644 --- a/TLChat/Modules/Setting/AboutViewController/TLAboutViewController.h +++ b/TLChat/Modules/Setting/TLAboutViewController/TLAboutViewController.h @@ -6,8 +6,8 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import -@interface TLAboutViewController : TLSettingViewController +@interface TLAboutViewController : ZZFlexibleLayoutViewController @end diff --git a/TLChat/Modules/Setting/TLAboutViewController/TLAboutViewController.m b/TLChat/Modules/Setting/TLAboutViewController/TLAboutViewController.m new file mode 100644 index 00000000..293785ce --- /dev/null +++ b/TLChat/Modules/Setting/TLAboutViewController/TLAboutViewController.m @@ -0,0 +1,90 @@ +// +// TLAboutViewController.m +// TLChat +// +// Created by 李伯坤 on 16/2/22. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import "TLAboutViewController.h" +#import "TLWebViewController.h" +#import "TLAppConfig.h" +#import "TLSettingItem.h" + +typedef NS_ENUM(NSInteger, TLAboutVCSectionType) { + TLAboutVCSectionTypeItems, +}; + +@interface TLAboutViewController () + +@property (nonatomic, strong) UILabel *cmpLabel; + +@end + +@implementation TLAboutViewController + +- (void)loadView +{ + [super loadView]; + [self.navigationItem setTitle:LOCSTR(@"关于微信")]; + [self.collectionView setBackgroundColor:[UIColor colorGrayBG]]; + + self.addSection(TLAboutVCSectionTypeItems); + + [self loadAboutUI]; +} + +- (void)viewWillLayoutSubviews +{ + [super viewWillLayoutSubviews]; + + self.setFooter(@"TLAboutFooterView").toSection(TLAboutVCSectionTypeItems).withDataModel(@([self p_footerHeight])); +} + +#pragma mark - # UI +- (void)loadAboutUI +{ + @weakify(self); + { + NSInteger sectionTag = TLAboutVCSectionTypeItems; + + // header + NSString *versionInfo = [NSString stringWithFormat:@"TLChat %@", [TLAppConfig sharedConfig].version]; + self.setHeader(@"TLAboutHeaderView").toSection(sectionTag).withDataModel(versionInfo); + + // 评分 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"去评分")).selectedAction(^ (id data) { + @strongify(self); + TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://github.com/tbl00c/TLChat"]; + PushVC(webVC); + }); + + // 欢迎页 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"欢迎页")); + + // 功能介绍 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"功能介绍")).selectedAction(^ (id data) { + @strongify(self); + TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://github.com/tbl00c/TLChat/blob/master/README.md"]; + PushVC(webVC); + }); + + // footer + self.setFooter(@"TLAboutFooterView").toSection(sectionTag).withDataModel(@([self p_footerHeight])); + } + + [self reloadView]; +} + +#pragma mark - # Private +- (CGFloat)p_footerHeight +{ + CGFloat statusHeight = [UIApplication sharedApplication].statusBarFrame.size.height; + CGFloat navHeight = self.navigationController.navigationBar.height; + CGFloat headerHeight = 120.0f; + CGFloat cellsHeight = self.sectionForTag(TLAboutVCSectionTypeItems).dataModelArray.count * 44.0f; + CGFloat footerHeight = SCREEN_HEIGHT - statusHeight - navHeight - headerHeight - cellsHeight; + return footerHeight; +} + +@end diff --git a/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutFooterView.h b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutFooterView.h new file mode 100644 index 00000000..c7a64e07 --- /dev/null +++ b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutFooterView.h @@ -0,0 +1,13 @@ +// +// TLAboutFooterView.h +// TLChat +// +// Created by 李伯坤 on 2018/3/5. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import + +@interface TLAboutFooterView : UICollectionReusableView + +@end diff --git a/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutFooterView.m b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutFooterView.m new file mode 100644 index 00000000..a496a668 --- /dev/null +++ b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutFooterView.m @@ -0,0 +1,33 @@ +// +// TLAboutFooterView.m +// TLChat +// +// Created by 李伯坤 on 2018/3/5. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLAboutFooterView.h" + +@implementation TLAboutFooterView + ++ (CGFloat)viewHeightByDataModel:(NSNumber *)dataModel +{ + return dataModel.doubleValue; +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + self.addLabel(1).numberOfLines(0).textAlignment(NSTextAlignmentCenter) + .text(@"高仿微信 仅供学习\nhttps://github.com/tbl00c/TLChat") + .font([UIFont systemFontOfSize:12.0f]).textColor([UIColor grayColor]) + .masonry(^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(0); + make.bottom.mas_equalTo(-10); + make.width.mas_lessThanOrEqualTo(self).mas_offset(-30); + }); + } + return self; +} + +@end diff --git a/TLChat/Modules/Setting/AboutViewController/TLAboutHeaderView.h b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutHeaderView.h similarity index 51% rename from TLChat/Modules/Setting/AboutViewController/TLAboutHeaderView.h rename to TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutHeaderView.h index 083d7faa..ba17119f 100644 --- a/TLChat/Modules/Setting/AboutViewController/TLAboutHeaderView.h +++ b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutHeaderView.h @@ -8,10 +8,6 @@ #import -@interface TLAboutHeaderView : UITableViewHeaderFooterView - -@property (nonatomic, strong) NSString *title; - -@property (nonatomic, strong) NSString *imagePath; +@interface TLAboutHeaderView : UICollectionReusableView @end diff --git a/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutHeaderView.m b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutHeaderView.m new file mode 100644 index 00000000..4c0feee1 --- /dev/null +++ b/TLChat/Modules/Setting/TLAboutViewController/Views/TLAboutHeaderView.m @@ -0,0 +1,53 @@ +// +// TLAboutHeaderView.m +// TLChat +// +// Created by 李伯坤 on 16/2/22. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import "TLAboutHeaderView.h" + +@interface TLAboutHeaderView () + +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation TLAboutHeaderView + +#pragma mark - # Protocol ++ (CGFloat)viewHeightByDataModel:(id)dataModel +{ + return 120.0f; +} + +- (void)setViewDataModel:(id)dataModel +{ + [self.titleLabel setText:dataModel]; +} + +#pragma mark - # View +- (id)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + self.titleLabel = self.addLabel(1000) + .font([UIFont systemFontOfSize:17.0f]).textColor([UIColor grayColor]) + .masonry(^ (MASConstraintMaker *make) { + make.centerX.mas_equalTo(0); + make.width.mas_lessThanOrEqualTo(self).mas_offset(-30); + make.bottom.mas_equalTo(-13); + }) + .view; + + self.addImageView(1001).image(TLImage(@"AppLogo")) + .masonry(^(MASConstraintMaker *make) { + make.top.mas_equalTo(20); + make.centerX.mas_equalTo(0); + make.size.mas_equalTo(CGSizeMake(73, 64)); + }); + } + return self; +} + +@end diff --git a/TLChat/Modules/Setting/TLAccountSettingViewController/TLAccountSettingViewController.h b/TLChat/Modules/Setting/TLAccountSettingViewController/TLAccountSettingViewController.h new file mode 100644 index 00000000..b87c6a6c --- /dev/null +++ b/TLChat/Modules/Setting/TLAccountSettingViewController/TLAccountSettingViewController.h @@ -0,0 +1,13 @@ +// +// TLAccountSettingViewController.h +// TLChat +// +// Created by 李伯坤 on 16/2/10. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import + +@interface TLAccountSettingViewController : ZZFlexibleLayoutViewController + +@end diff --git a/TLChat/Modules/Setting/TLAccountSettingViewController/TLAccountSettingViewController.m b/TLChat/Modules/Setting/TLAccountSettingViewController/TLAccountSettingViewController.m new file mode 100644 index 00000000..3255230b --- /dev/null +++ b/TLChat/Modules/Setting/TLAccountSettingViewController/TLAccountSettingViewController.m @@ -0,0 +1,124 @@ +// +// TLAccountSettingViewController.m +// TLChat +// +// Created by 李伯坤 on 16/2/10. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import "TLAccountSettingViewController.h" +#import "TLWebViewController.h" +#import "TLUserHelper.h" +#import "TLSettingItem.h" + +typedef NS_ENUM(NSInteger, TLAccountSettingVCSectionType) { + TLAccountSettingVCSectionTypeAccount, + TLAccountSettingVCSectionTypeLock, + TLAccountSettingVCSectionTypeSafe, + TLAccountSettingVCSectionTypeHelp, +}; + +@implementation TLAccountSettingViewController + +- (void)loadView +{ + [super loadView]; + [self setTitle:LOCSTR(@"账号与安全")]; + [self.view setBackgroundColor:[UIColor colorGrayBG]]; + + [self loadAccountSettingUI]; +} + +- (void)loadAccountSettingUI +{ + @weakify(self); + self.clear(); + TLUser *userInfo = [TLUserHelper sharedHelper].user; + + { + NSInteger sectionTag = TLAccountSettingVCSectionTypeAccount; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0)); + + // 微信号 + TLSettingItem *nameItem = TLCreateSettingItem(@"微信号"); + if (userInfo.username.length > 0) { + nameItem.subTitle = userInfo.username; + nameItem.showDisclosureIndicator = NO; + nameItem.disableHighlight = YES; + } + else { + nameItem.subTitle = LOCSTR(@"未设置"); + } + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(nameItem).selectedAction(^ (TLSettingItem *data) { + + }); + + // 手机号 + TLSettingItem *phoneItem = TLCreateSettingItem(@"手机号"); + if (userInfo.detailInfo.phoneNumber.length > 0) { + phoneItem.subTitle = userInfo.detailInfo.phoneNumber; + phoneItem.rightImagePath = @"setting_lockon"; + } + else { + phoneItem.subTitle = LOCSTR(@"未设置"); + phoneItem.rightImagePath = @"setting_lockoff"; + + } + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(phoneItem).selectedAction(^ (TLSettingItem *data) { + + }); + } + + { + NSInteger sectionTag = TLAccountSettingVCSectionTypeLock; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + + // 微信密码 + TLSettingItem *passItem = TLCreateSettingItem(@"微信密码"); + passItem.subTitle = @"已设置"; + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(passItem).selectedAction(^ (TLSettingItem *data) { + + }); + + // 声音锁 + TLSettingItem *voiceItem = TLCreateSettingItem(@"声音锁"); + voiceItem.subTitle = @"未设置"; + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(voiceItem).selectedAction(^ (TLSettingItem *data) { + + }); + } + + { + NSInteger sectionTag = TLAccountSettingVCSectionTypeSafe; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + + // 应急联系人 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"应急联系人")).selectedAction(^ (TLSettingItem *data) { + + }); + + // 登录设备管理 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"登录设备管理")).selectedAction(^ (TLSettingItem *data) { + + }); + + // 更多安全设置 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"更多安全设置")).selectedAction(^ (TLSettingItem *data) { + + }); + } + + { + NSInteger sectionTag = TLAccountSettingVCSectionTypeHelp; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + + // 微信安全中心 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"微信安全中心")).selectedAction(^ (TLSettingItem *data) { + + }); + + self.setFooter(VIEW_ST_FOOTER).toSection(sectionTag).withDataModel(LOCSTR(@"如果遇到账号信息泄露、忘记密码、诈骗等账号问题,可前往微信安全中心。")); + } +} + +@end diff --git a/TLChat/Modules/Setting/PrivacySettingViewController/TLPrivacySettingViewController.h b/TLChat/Modules/Setting/TLPrivacySettingViewController/TLPrivacySettingViewController.h similarity index 58% rename from TLChat/Modules/Setting/PrivacySettingViewController/TLPrivacySettingViewController.h rename to TLChat/Modules/Setting/TLPrivacySettingViewController/TLPrivacySettingViewController.h index a0fa0462..8ef7ac44 100644 --- a/TLChat/Modules/Setting/PrivacySettingViewController/TLPrivacySettingViewController.h +++ b/TLChat/Modules/Setting/TLPrivacySettingViewController/TLPrivacySettingViewController.h @@ -6,8 +6,8 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" -@interface TLPrivacySettingViewController : TLSettingViewController +@interface TLPrivacySettingViewController : TLBaseSettingViewController @end diff --git a/TLChat/Modules/Setting/PrivacySettingViewController/TLPrivacySettingViewController.m b/TLChat/Modules/Setting/TLPrivacySettingViewController/TLPrivacySettingViewController.m similarity index 100% rename from TLChat/Modules/Setting/PrivacySettingViewController/TLPrivacySettingViewController.m rename to TLChat/Modules/Setting/TLPrivacySettingViewController/TLPrivacySettingViewController.m diff --git a/TLChat/Modules/Setting/TLSettingViewController/TLSettingViewController.h b/TLChat/Modules/Setting/TLSettingViewController/TLSettingViewController.h new file mode 100644 index 00000000..0aa3e3fd --- /dev/null +++ b/TLChat/Modules/Setting/TLSettingViewController/TLSettingViewController.h @@ -0,0 +1,13 @@ +// +// TLSettingViewController.h +// TLChat +// +// Created by 李伯坤 on 16/2/8. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import + +@interface TLSettingViewController : ZZFlexibleLayoutViewController + +@end diff --git a/TLChat/Modules/Setting/TLSettingViewController/TLSettingViewController.m b/TLChat/Modules/Setting/TLSettingViewController/TLSettingViewController.m new file mode 100644 index 00000000..c145e66a --- /dev/null +++ b/TLChat/Modules/Setting/TLSettingViewController/TLSettingViewController.m @@ -0,0 +1,109 @@ +// +// TLSettingViewController.m +// TLChat +// +// Created by 李伯坤 on 16/2/8. +// Copyright © 2016年 李伯坤. All rights reserved. +// + +#import "TLSettingViewController.h" +#import "TLAccountSettingViewController.h" +#import "TLNewMessageSettingViewController.h" +#import "TLPrivacySettingViewController.h" +#import "TLCommonSettingViewController.h" +#import "TLAboutViewController.h" +#import "TLWebViewController.h" + +typedef NS_ENUM(NSInteger, TLSettingVCSectionType) { + TLSettingVCSectionTypeAccount, + TLSettingVCSectionTypeNomal, + TLSettingVCSectionTypeAbout, + TLSettingVCSectionTypeExit, +}; + +@implementation TLSettingViewController + +- (void)loadView +{ + [super loadView]; + [self setTitle:LOCSTR(@"设置")]; + [self.collectionView setBackgroundColor:[UIColor colorGrayBG]]; + + [self loadSettingUI]; +} + +#pragma mark - # UI +- (void)loadSettingUI +{ + @weakify(self); + self.clear(); + + { + NSInteger sectionTag = TLSettingVCSectionTypeAccount; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(15, 0, 0, 0)); + // 账号与安全 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"账号与安全")).selectedAction(^ (id data) { + @strongify(self); + TLAccountSettingViewController *accountAndSafetyVC = [[TLAccountSettingViewController alloc] init]; + PushVC(accountAndSafetyVC); + }); + } + + { + NSInteger sectionTag = TLSettingVCSectionTypeNomal; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + // 新消息通知 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"新消息通知")).selectedAction(^ (id data) { + @strongify(self); + TLNewMessageSettingViewController *newMessageSettingVC = [[TLNewMessageSettingViewController alloc] init]; + PushVC(newMessageSettingVC); + }); + // 隐私 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"隐私")).selectedAction(^ (id data) { + @strongify(self); + TLPrivacySettingViewController *privacySettingVC = [[TLPrivacySettingViewController alloc] init]; + PushVC(privacySettingVC); + }); + // 通用 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"通用")).selectedAction(^ (id data) { + @strongify(self); + TLCommonSettingViewController *commonSettingVC = [[TLCommonSettingViewController alloc] init]; + PushVC(commonSettingVC); + }); + } + + { + NSInteger sectionTag = TLSettingVCSectionTypeAbout; + self.addSection(TLSettingVCSectionTypeAbout).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + // 帮助与反馈 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"帮助与反馈")).selectedAction(^ (id data) { + @strongify(self); + TLWebViewController *webVC = [[TLWebViewController alloc] initWithUrl:@"https://github.com/tbl00c/TLChat/issues"]; + PushVC(webVC); + }); + // 关于微信 + self.addCell(CELL_ST_ITEM_NORMAL).toSection(sectionTag).withDataModel(TLCreateSettingItem(@"关于微信")).selectedAction(^ (id data) { + @strongify(self); + TLAboutViewController *aboutVC = [[TLAboutViewController alloc] init]; + PushVC(aboutVC); + }); + } + + { + NSInteger sectionTag = TLSettingVCSectionTypeExit; + self.addSection(sectionTag).sectionInsets(UIEdgeInsetsMake(20, 0, 0, 0)); + self.addCell(@"TLSettingItemButtonCell").toSection(sectionTag).withDataModel(TLCreateSettingItem(@"退出登录")).selectedAction(^ (id data) { + TLActionSheet *actionSheet = [[TLActionSheet alloc] initWithTitle:@"退出后不会删除任何历史数据,下次登录依然可以使用本账号。" clickAction:^(NSInteger buttonIndex) { + + } cancelButtonTitle:LOCSTR(@"取消") destructiveButtonTitle:LOCSTR(@"退出登录") otherButtonTitles:nil]; + [actionSheet show]; + }); + } + + [self reloadView]; +} + + + + +@end diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_music.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_music.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_music.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_music.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_music.imageset/Shake_icon_music@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_music.imageset/Shake_icon_music@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_music.imageset/Shake_icon_music@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_music.imageset/Shake_icon_music@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_musicHL.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_musicHL.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_musicHL.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_musicHL.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_musicHL.imageset/Shake_icon_musicHL@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_musicHL.imageset/Shake_icon_musicHL@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_musicHL.imageset/Shake_icon_musicHL@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_musicHL.imageset/Shake_icon_musicHL@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_people.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_people.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_people.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_people.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_people.imageset/Shake_icon_people@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_people.imageset/Shake_icon_people@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_people.imageset/Shake_icon_people@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_people.imageset/Shake_icon_people@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_peopleHL.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_peopleHL.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_peopleHL.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_peopleHL.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_peopleHL.imageset/Shake_icon_peopleHL@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_peopleHL.imageset/Shake_icon_peopleHL@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_peopleHL.imageset/Shake_icon_peopleHL@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_peopleHL.imageset/Shake_icon_peopleHL@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tv.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tv.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tv.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tv.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tv.imageset/Shake_icon_tv@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tv.imageset/Shake_icon_tv@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tv.imageset/Shake_icon_tv@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tv.imageset/Shake_icon_tv@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tvHL.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tvHL.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tvHL.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tvHL.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tvHL.imageset/Shake_icon_tvHL@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tvHL.imageset/Shake_icon_tvHL@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_button_tvHL.imageset/Shake_icon_tvHL@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_button_tvHL.imageset/Shake_icon_tvHL@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card.imageset/ShakeCard@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card.imageset/ShakeCard@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card.imageset/ShakeCard@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card.imageset/ShakeCard@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card_indicator.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card_indicator.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card_indicator.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card_indicator.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card_indicator.imageset/ShakeCardIndicator@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card_indicator.imageset/ShakeCardIndicator@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_card_indicator.imageset/ShakeCardIndicator@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_card_indicator.imageset/ShakeCardIndicator@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_bottom.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_bottom.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_bottom.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_bottom.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_bottom.imageset/Shake_Line_Down@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_bottom.imageset/Shake_Line_Down@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_bottom.imageset/Shake_Line_Down@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_bottom.imageset/Shake_Line_Down@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_top.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_top.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_top.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_top.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_top.imageset/Shake_Line_Up@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_top.imageset/Shake_Line_Up@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_line_top.imageset/Shake_Line_Up@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_line_top.imageset/Shake_Line_Up@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_bottom.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_bottom.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_bottom.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_bottom.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_bottom.imageset/Shake_Logo_Down@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_bottom.imageset/Shake_Logo_Down@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_bottom.imageset/Shake_Logo_Down@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_bottom.imageset/Shake_Logo_Down@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_center.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_center.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_center.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_center.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_center.imageset/ShakeHideImg_women@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_center.imageset/ShakeHideImg_women@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_center.imageset/ShakeHideImg_women@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_center.imageset/ShakeHideImg_women@2x.png diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_top.imageset/Contents.json b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_top.imageset/Contents.json similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_top.imageset/Contents.json rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_top.imageset/Contents.json diff --git a/TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_top.imageset/Shake_Logo_Up@2x.png b/TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_top.imageset/Shake_Logo_Up@2x.png similarity index 100% rename from TLChat/Modules/Discover/Resources/Discover.xcassets/Shake/shake_logo_top.imageset/Shake_Logo_Up@2x.png rename to TLChat/Modules/Shake/Resources/Shake.xcassets/shake_logo_top.imageset/Shake_Logo_Up@2x.png diff --git a/TLChat/Modules/Discover/ShakeViewController/ShakeSettingViewController/TLShakeSettingViewController.h b/TLChat/Modules/Shake/TLShakeSettingViewController/TLShakeSettingViewController.h similarity index 58% rename from TLChat/Modules/Discover/ShakeViewController/ShakeSettingViewController/TLShakeSettingViewController.h rename to TLChat/Modules/Shake/TLShakeSettingViewController/TLShakeSettingViewController.h index d97688e7..89624a49 100644 --- a/TLChat/Modules/Discover/ShakeViewController/ShakeSettingViewController/TLShakeSettingViewController.h +++ b/TLChat/Modules/Shake/TLShakeSettingViewController/TLShakeSettingViewController.h @@ -6,8 +6,8 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" -@interface TLShakeSettingViewController : TLSettingViewController +@interface TLShakeSettingViewController : TLBaseSettingViewController @end diff --git a/TLChat/Modules/Discover/ShakeViewController/ShakeSettingViewController/TLShakeSettingViewController.m b/TLChat/Modules/Shake/TLShakeSettingViewController/TLShakeSettingViewController.m similarity index 100% rename from TLChat/Modules/Discover/ShakeViewController/ShakeSettingViewController/TLShakeSettingViewController.m rename to TLChat/Modules/Shake/TLShakeSettingViewController/TLShakeSettingViewController.m diff --git a/TLChat/Modules/Discover/ShakeViewController/TLShakeViewController.h b/TLChat/Modules/Shake/TLShakeViewController/TLShakeViewController.h similarity index 100% rename from TLChat/Modules/Discover/ShakeViewController/TLShakeViewController.h rename to TLChat/Modules/Shake/TLShakeViewController/TLShakeViewController.h diff --git a/TLChat/Modules/Discover/ShakeViewController/TLShakeViewController.m b/TLChat/Modules/Shake/TLShakeViewController/TLShakeViewController.m similarity index 100% rename from TLChat/Modules/Discover/ShakeViewController/TLShakeViewController.m rename to TLChat/Modules/Shake/TLShakeViewController/TLShakeViewController.m diff --git a/TLChat/Modules/Discover/ShakeViewController/ShakeViews/TLShakeButton.h b/TLChat/Modules/Shake/TLShakeViewController/Views/TLShakeButton.h similarity index 100% rename from TLChat/Modules/Discover/ShakeViewController/ShakeViews/TLShakeButton.h rename to TLChat/Modules/Shake/TLShakeViewController/Views/TLShakeButton.h diff --git a/TLChat/Modules/Discover/ShakeViewController/ShakeViews/TLShakeButton.m b/TLChat/Modules/Shake/TLShakeViewController/Views/TLShakeButton.m similarity index 100% rename from TLChat/Modules/Discover/ShakeViewController/ShakeViews/TLShakeButton.m rename to TLChat/Modules/Shake/TLShakeViewController/Views/TLShakeButton.m diff --git a/TLChat/Modules/UserDetail/TLUserDetailViewController/TLUserDetailViewController.m b/TLChat/Modules/UserDetail/TLUserDetailViewController/TLUserDetailViewController.m index d28a927b..11c185a6 100644 --- a/TLChat/Modules/UserDetail/TLUserDetailViewController/TLUserDetailViewController.m +++ b/TLChat/Modules/UserDetail/TLUserDetailViewController/TLUserDetailViewController.m @@ -162,7 +162,6 @@ - (void)loadUIWithUserModel:(TLUser *)userModel // 语音聊天 if (![userModel.userID isEqualToString:[TLUserHelper sharedHelper].userID]) { self.addCell(@"TLUserDetailViewChatButtonCell").toSection(TLUserDetailVCSectionTypeFunction).withDataModel(LOCSTR(@"视频聊天")).eventAction(^ id(NSInteger eventType, id data) { - @strongify(self); [TLUIUtility showInfoHint:@"暂未实现"]; return nil; }); diff --git a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailAlbumCell.m b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailAlbumCell.m index ae64860a..a1f7be66 100644 --- a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailAlbumCell.m +++ b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailAlbumCell.m @@ -20,9 +20,9 @@ @interface TLUserDetailAlbumCell () @implementation TLUserDetailAlbumCell -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 90); + return 90.0f; } - (void)setViewDataModel:(TLUserDetailKVModel *)dataModel diff --git a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseInfoCell.m b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseInfoCell.m index 44534b8b..d75634b2 100644 --- a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseInfoCell.m +++ b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseInfoCell.m @@ -26,9 +26,9 @@ @interface TLUserDetailBaseInfoCell () @implementation TLUserDetailBaseInfoCell -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 90); + return 90.0f; } - (void)setViewDataModel:(id)dataModel diff --git a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseKVCell.m b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseKVCell.m index e0e634f6..d458f4e7 100644 --- a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseKVCell.m +++ b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailBaseKVCell.m @@ -24,9 +24,9 @@ @interface TLUserDetailBaseKVCell () @implementation TLUserDetailBaseKVCell -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 44); + return 44.0f; } - (void)setViewDataModel:(TLUserDetailKVModel *)dataModel diff --git a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailChatButtonCell.m b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailChatButtonCell.m index 8d84303b..77116828 100644 --- a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailChatButtonCell.m +++ b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailChatButtonCell.m @@ -16,9 +16,9 @@ @interface TLUserDetailChatButtonCell () @implementation TLUserDetailChatButtonCell -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 62); + return 62.0f; } - (void)setViewDataModel:(id)dataModel diff --git a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailTitleCell.m b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailTitleCell.m index e981476a..74ada301 100644 --- a/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailTitleCell.m +++ b/TLChat/Modules/UserDetail/TLUserDetailViewController/Views/TLUserDetailTitleCell.m @@ -16,9 +16,9 @@ @interface TLUserDetailTitleCell () @implementation TLUserDetailTitleCell -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 44); + return 44.0f; } - (void)setViewDataModel:(id)dataModel diff --git a/TLChat/Modules/UserDetail/TLUserSettingViewController/TLFriendDetailSettingViewController.h b/TLChat/Modules/UserDetail/TLUserSettingViewController/TLFriendDetailSettingViewController.h index 327e817e..89aab443 100644 --- a/TLChat/Modules/UserDetail/TLUserSettingViewController/TLFriendDetailSettingViewController.h +++ b/TLChat/Modules/UserDetail/TLUserSettingViewController/TLFriendDetailSettingViewController.h @@ -6,10 +6,10 @@ // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" @class TLUser; -@interface TLFriendDetailSettingViewController : TLSettingViewController +@interface TLFriendDetailSettingViewController : TLBaseSettingViewController @property (nonatomic, strong, readonly) TLUser *userModel; diff --git a/TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingViewController.h b/TLChat/TLKitExtensions/Base/TLSettingViewController/TLBaseSettingViewController.h similarity index 79% rename from TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingViewController.h rename to TLChat/TLKitExtensions/Base/TLSettingViewController/TLBaseSettingViewController.h index c6d9edb9..ba3662b4 100644 --- a/TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingViewController.h +++ b/TLChat/TLKitExtensions/Base/TLSettingViewController/TLBaseSettingViewController.h @@ -1,5 +1,5 @@ // -// TLSettingViewController.h +// TLBaseSettingViewController.h // TLChat // // Created by 李伯坤 on 16/2/7. @@ -15,7 +15,7 @@ #define HEIGHT_SETTING_TOP_SPACE 15.0f #define HEIGHT_SETTING_BOTTOM_SPACE 12.0f -@interface TLSettingViewController : UITableViewController +@interface TLBaseSettingViewController : UITableViewController @property (nonatomic, strong) NSMutableArray *data; diff --git a/TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingViewController.m b/TLChat/TLKitExtensions/Base/TLSettingViewController/TLBaseSettingViewController.m similarity index 96% rename from TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingViewController.m rename to TLChat/TLKitExtensions/Base/TLSettingViewController/TLBaseSettingViewController.m index 52b82074..957af2d3 100644 --- a/TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingViewController.m +++ b/TLChat/TLKitExtensions/Base/TLSettingViewController/TLBaseSettingViewController.m @@ -1,21 +1,21 @@ // -// TLSettingViewController.m +// TLBaseSettingViewController.m // TLChat // // Created by 李伯坤 on 16/2/7. // Copyright © 2016年 李伯坤. All rights reserved. // -#import "TLSettingViewController.h" +#import "TLBaseSettingViewController.h" #import "TLSettingHeaderTitleView.h" #import "TLSettingFooterTitleView.h" #import "TLSettingButtonCell.h" -@interface TLSettingViewController () +@interface TLBaseSettingViewController () @end -@implementation TLSettingViewController +@implementation TLBaseSettingViewController - (void)loadView { diff --git a/TLChat/Modules/Discover/TLMenuItem/TLMenuItem.h b/TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItem.h similarity index 95% rename from TLChat/Modules/Discover/TLMenuItem/TLMenuItem.h rename to TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItem.h index 026165e4..89c20394 100644 --- a/TLChat/Modules/Discover/TLMenuItem/TLMenuItem.h +++ b/TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItem.h @@ -8,6 +8,8 @@ #import +#define CELL_MENU_ITEM @"TLMenuItemCell" + @interface TLMenuItem : NSObject /** diff --git a/TLChat/Modules/Discover/TLMenuItem/TLMenuItem.m b/TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItem.m similarity index 100% rename from TLChat/Modules/Discover/TLMenuItem/TLMenuItem.m rename to TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItem.m diff --git a/TLChat/Modules/Discover/TLMenuItem/TLMenuItemCell.h b/TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItemCell.h similarity index 99% rename from TLChat/Modules/Discover/TLMenuItem/TLMenuItemCell.h rename to TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItemCell.h index 3f1694ad..be2dc636 100644 --- a/TLChat/Modules/Discover/TLMenuItem/TLMenuItemCell.h +++ b/TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItemCell.h @@ -29,7 +29,6 @@ @property (nonatomic, strong) UIImageView *arrowView; - @property (nonatomic, strong) TLMenuItem *menuItem; @end diff --git a/TLChat/Modules/Discover/TLMenuItem/TLMenuItemCell.m b/TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItemCell.m similarity index 72% rename from TLChat/Modules/Discover/TLMenuItem/TLMenuItemCell.m rename to TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItemCell.m index 15eb96c2..3295ae6c 100644 --- a/TLChat/Modules/Discover/TLMenuItem/TLMenuItemCell.m +++ b/TLChat/TLKitExtensions/Components/TLMenuItem/TLMenuItemCell.m @@ -15,9 +15,9 @@ @implementation TLMenuItemCell #pragma mark - # Protocol -+ (CGSize)viewSizeByDataModel:(id)dataModel ++ (CGFloat)viewHeightByDataModel:(id)dataModel { - return CGSizeMake(SCREEN_WIDTH, 44.0f); + return 44.0f; } - (void)setViewDataModel:(id)dataModel @@ -47,14 +47,8 @@ - (id)initWithFrame:(CGRect)frame if (self = [super initWithFrame:frame]) { [self setBackgroundColor:[UIColor whiteColor]]; [self setSelectedBackgrounColor:[UIColor colorGrayLine]]; - [self.contentView addSubview:self.iconView]; - [self.contentView addSubview:self.titleLabel]; - [self.contentView addSubview:self.badgeView]; - [self.contentView addSubview:self.detailLabel]; - [self.contentView addSubview:self.rightImageView]; - [self.contentView addSubview:self.arrowView]; - [self p_addMasonry]; + [self p_initSubviews]; } return self; } @@ -119,60 +113,67 @@ - (void)setMenuItem:(TLMenuItem *)menuItem } #pragma mark - # Private Methods -- (void)p_addMasonry +- (void)p_initSubviews { - [self.iconView mas_makeConstraints:^(MASConstraintMaker *make) { + // icon + self.iconView = self.addImageView(1) + .masonry(^(MASConstraintMaker *make) { make.left.mas_equalTo(15.0f); make.centerY.mas_equalTo(0); make.size.mas_equalTo(25.0f); - }]; - [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + }) + .view; + + // 标题 + self.titleLabel = self.addLabel(2) + .masonry(^(MASConstraintMaker *make) { make.centerY.mas_equalTo(0); make.left.mas_equalTo(self.iconView.mas_right).mas_offset(15.0f); - make.right.mas_lessThanOrEqualTo(self.contentView).mas_offset(15.0f); - }]; + make.right.mas_lessThanOrEqualTo(-15.0f); + }) + .view; + + // 气泡 + [self.contentView addSubview:self.badgeView]; [self.badgeView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.titleLabel.mas_right).mas_offset(15); make.centerY.mas_equalTo(0); make.height.mas_equalTo(18); }]; + + // 箭头 + self.arrowView = self.addImageView(10) + .image(TLImage(@"right_arrow")) + .masonry(^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(0); + make.size.mas_equalTo(CGSizeMake(8, 13)); + make.right.mas_equalTo(-15); + }) + .view; + + // 右图 + [self.contentView addSubview:self.rightImageView]; [self.rightImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(self.arrowView.mas_left).mas_offset(-EGDE_RIGHT_IMAGE); make.centerY.mas_equalTo(0); make.size.mas_equalTo(WIDTH_ICON_RIGHT); }]; - [self.detailLabel mas_makeConstraints:^(MASConstraintMaker *make) { + + // 描述 + self.detailLabel = self.addLabel(4) + .font([UIFont systemFontOfSize:14.0f]).textColor([UIColor grayColor]) + .masonry(^(MASConstraintMaker *make) { make.left.mas_greaterThanOrEqualTo(self.badgeView.mas_right).mas_offset(15); make.right.mas_equalTo(self.arrowView.mas_left).mas_offset(-WIDTH_ICON_RIGHT - EGDE_RIGHT_IMAGE - EGDE_SUB_TITLE); make.centerY.mas_equalTo(self.iconView); - }]; - [self.arrowView mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerY.mas_equalTo(0); - make.size.mas_equalTo(CGSizeMake(8, 13)); - make.right.mas_equalTo(-15); - }]; + }) + .view; [self.detailLabel setContentCompressionResistancePriority:500 forAxis:UILayoutConstraintAxisHorizontal]; [self.titleLabel setContentCompressionResistancePriority:600 forAxis:UILayoutConstraintAxisHorizontal]; } #pragma mark - # Getters -- (UIImageView *)iconView -{ - if (_iconView == nil) { - _iconView = [[UIImageView alloc] init]; - } - return _iconView; -} - -- (UILabel *)titleLabel -{ - if (_titleLabel == nil) { - _titleLabel = [[UILabel alloc] init]; - } - return _titleLabel; -} - - (TLBadge *)badgeView { if (!_badgeView) { @@ -181,26 +182,19 @@ - (TLBadge *)badgeView return _badgeView; } -- (UILabel *)detailLabel -{ - if (_detailLabel == nil) { - _detailLabel = [[UILabel alloc] init]; - [_detailLabel setTextColor:[UIColor grayColor]]; - [_detailLabel setFont:[UIFont systemFontOfSize:14.0f]]; - } - return _detailLabel; -} - - (UIImageView *)rightImageView { if (_rightImageView == nil) { _rightImageView = [[UIImageView alloc] init]; - [_rightImageView addSubview:self.rightBadgeView]; - [self.rightBadgeView mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerX.mas_equalTo(_rightImageView.mas_right); - make.centerY.mas_equalTo(_rightImageView.mas_top).mas_offset(1); - make.size.mas_equalTo(8); - }]; + + { + [_rightImageView addSubview:self.rightBadgeView]; + [self.rightBadgeView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(_rightImageView.mas_right); + make.centerY.mas_equalTo(_rightImageView.mas_top).mas_offset(1); + make.size.mas_equalTo(8); + }]; + } } return _rightImageView; } @@ -214,12 +208,4 @@ - (TLBadge *)rightBadgeView return _rightBadgeView; } -- (UIImageView *)arrowView -{ - if (!_arrowView) { - _arrowView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right_arrow"]]; - } - return _arrowView; -} - @end diff --git a/TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingModels/TLSettingItem.h b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItem.h similarity index 77% rename from TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingModels/TLSettingItem.h rename to TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItem.h index eb758776..96104f39 100644 --- a/TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingModels/TLSettingItem.h +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItem.h @@ -8,9 +8,12 @@ #import -@interface TLSettingItem : NSObject +#define CELL_ST_ITEM_NORMAL @"TLSettingItemNormalCell" +#define VIEW_ST_HEADER @"TLSettingSectionHeaderView" +#define VIEW_ST_FOOTER @"TLSettingSectionFooterView" + -#define TLCreateSettingItem(title) [TLSettingItem createItemWithTitle:title] +#define TLCreateSettingItem(title) [TLSettingItem createItemWithTitle:title] typedef NS_ENUM(NSInteger, TLSettingItemType) { TLSettingItemTypeDefalut = 0, @@ -19,6 +22,9 @@ typedef NS_ENUM(NSInteger, TLSettingItemType) { TLSettingItemTypeOther, }; +@interface TLSettingItem : NSObject + + /** * 主标题 */ diff --git a/TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingModels/TLSettingItem.m b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItem.m similarity index 100% rename from TLChat/TLKitExtensions/Base/TLSettingViewController/TLSettingModels/TLSettingItem.m rename to TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItem.m diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemBaseCell.h b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemBaseCell.h new file mode 100644 index 00000000..7b402ca5 --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemBaseCell.h @@ -0,0 +1,19 @@ +// +// TLSettingItemBaseCell.h +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import +#import "TLSettingItem.h" + +@interface TLSettingItemBaseCell : UICollectionViewCell + +/// 右箭头 +@property (nonatomic, strong) UIImageView *arrowView; + +@property (nonatomic, strong) TLSettingItem *item; + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemBaseCell.m b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemBaseCell.m new file mode 100644 index 00000000..f0ab1369 --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemBaseCell.m @@ -0,0 +1,67 @@ +// +// TLSettingItemBaseCell.m +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLSettingItemBaseCell.h" + +@implementation TLSettingItemBaseCell + +#pragma mark - # Protocol ++ (CGFloat)viewHeightByDataModel:(id)dataModel +{ + return 44.0f; +} + +- (void)setViewDataModel:(id)dataModel +{ + [self setItem:dataModel]; +} + +- (void)viewIndexPath:(NSIndexPath *)indexPath sectionItemCount:(NSInteger)count +{ + if (indexPath.row == 0) { + self.addSeparator(ZZSeparatorPositionTop); + } + else { + self.removeSeparator(ZZSeparatorPositionTop); + } + if (indexPath.row == count - 1) { + self.addSeparator(ZZSeparatorPositionBottom); + } + else { + self.addSeparator(ZZSeparatorPositionBottom).beginAt(15); + } +} + +#pragma mark - # Cell +- (id)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + [self setBackgroundColor:[UIColor whiteColor]]; + [self setSelectedBackgrounColor:[UIColor colorGrayLine]]; + + // 箭头 + self.arrowView = self.addImageView(10) + .image(TLImage(@"right_arrow")) + .masonry(^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(0); + make.size.mas_equalTo(CGSizeMake(8, 13)); + make.right.mas_equalTo(-15); + }) + .view; + } + return self; +} + +- (void)setItem:(TLSettingItem *)item +{ + _item = item; + + [self.arrowView setHidden:!item.showDisclosureIndicator]; +} + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemButtonCell.h b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemButtonCell.h new file mode 100644 index 00000000..69ad7efb --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemButtonCell.h @@ -0,0 +1,13 @@ +// +// TLSettingItemButtonCell.h +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLSettingItemBaseCell.h" + +@interface TLSettingItemButtonCell : TLSettingItemBaseCell + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemButtonCell.m b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemButtonCell.m new file mode 100644 index 00000000..fba99ccc --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemButtonCell.m @@ -0,0 +1,42 @@ +// +// TLSettingItemButtonCell.m +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLSettingItemButtonCell.h" + +@interface TLSettingItemButtonCell () + +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation TLSettingItemButtonCell + +- (instancetype)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + [self.arrowView setHidden:YES]; + + self.titleLabel = self.contentView.addLabel(1) + .masonry(^ (MASConstraintMaker *make) { + make.center.mas_equalTo(0); + make.width.mas_lessThanOrEqualTo(self.contentView); + }) + .view; + } + return self; +} + +- (void)setItem:(TLSettingItem *)item +{ + item.showDisclosureIndicator = NO; + [super setItem:item]; + + [self.titleLabel setText:item.title]; +} + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemNormalCell.h b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemNormalCell.h new file mode 100644 index 00000000..e15da3aa --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemNormalCell.h @@ -0,0 +1,13 @@ +// +// TLSettingItemNormalCell.h +// TLChat +// +// Created by 李伯坤 on 2018/3/5. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLSettingItemBaseCell.h" + +@interface TLSettingItemNormalCell : TLSettingItemBaseCell + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemNormalCell.m b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemNormalCell.m new file mode 100644 index 00000000..1b57bb74 --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingItemNormalCell.m @@ -0,0 +1,83 @@ +// +// TLSettingItemNormalCell.m +// TLChat +// +// Created by 李伯坤 on 2018/3/5. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLSettingItemNormalCell.h" + +@interface TLSettingItemNormalCell () + +@property (nonatomic, strong) UILabel *titleLabel; + +@property (nonatomic, strong) UILabel *rightLabel; + +@property (nonatomic, strong) UIImageView *rightImageView; + +@end + +@implementation TLSettingItemNormalCell + +- (id)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + [self p_initSettingItemSubviews]; + } + return self; +} + +- (void)setItem:(TLSettingItem *)item +{ + [super setItem:item]; + + [self.titleLabel setText:item.title]; + [self.rightLabel setText:item.subTitle]; + if (item.rightImagePath) { + [self.rightImageView setImage: [UIImage imageNamed:item.rightImagePath]]; + } + else if (item.rightImageURL){ + [self.rightImageView tt_setImageWithURL:TLURL(item.rightImageURL) placeholderImage:[UIImage imageNamed:DEFAULT_AVATAR_PATH]]; + } + else { + [self.rightImageView setImage:nil]; + } + + [self.rightLabel mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(item.showDisclosureIndicator ? -30.0f : -15.0f); + }]; +} + +#pragma mark - # UI +- (void)p_initSettingItemSubviews +{ + self.titleLabel = self.contentView.addLabel(1) + .masonry(^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).mas_offset(15); + }) + .view; + + self.rightLabel = self.contentView.addLabel(2) + .textColor([UIColor grayColor]).font([UIFont systemFontOfSize:15.0f]) + .masonry(^(MASConstraintMaker *make) { + make.right.mas_equalTo(-30); + make.centerY.mas_equalTo(self.titleLabel); + make.left.mas_greaterThanOrEqualTo(self.titleLabel.mas_right).mas_offset(20); + }) + .view; + + self.rightImageView = self.addImageView(3) + .masonry(^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.rightLabel.mas_left).mas_offset(-2); + make.centerY.mas_equalTo(self.contentView); + }) + .view; + + [self.titleLabel setContentCompressionResistancePriority:500 forAxis:UILayoutConstraintAxisHorizontal]; + [self.rightLabel setContentCompressionResistancePriority:200 forAxis:UILayoutConstraintAxisHorizontal]; +} + + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionFooterView.h b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionFooterView.h new file mode 100644 index 00000000..a5238121 --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionFooterView.h @@ -0,0 +1,13 @@ +// +// TLSettingSectionFooterView.h +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import + +@interface TLSettingSectionFooterView : UICollectionReusableView + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionFooterView.m b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionFooterView.m new file mode 100644 index 00000000..733d8e2e --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionFooterView.m @@ -0,0 +1,51 @@ +// +// TLSettingSectionFooterView.m +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLSettingSectionFooterView.h" + +#define FONT_SETTING_SECTION [UIFont systemFontOfSize:14.0f] + +@interface TLSettingSectionFooterView () + +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation TLSettingSectionFooterView + +#pragma mark - # Protocol ++ (CGFloat)viewHeightByDataModel:(NSString *)dataModel +{ + CGFloat textHeight = [dataModel tt_sizeWithFont:FONT_SETTING_SECTION constrainedToWidth:SCREEN_WIDTH - 30].height; + return textHeight + 15; +} + +- (void)setViewDataModel:(id)dataModel +{ + [self.titleLabel setText:dataModel]; +} + +#pragma mark - # View +- (instancetype)initWithFrame:(CGRect)frame +{ + if (self = [super initWithFrame:frame]) { + self.titleLabel = self.addLabel(1) + .font([UIFont systemFontOfSize:14]).textColor([UIColor grayColor]) + .numberOfLines(0) + .masonry(^ (MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.top.mas_equalTo(8); + }) + .view; + } + return self; +} + + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionHeaderView.h b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionHeaderView.h new file mode 100644 index 00000000..34e30dd5 --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionHeaderView.h @@ -0,0 +1,13 @@ +// +// TLSettingSectionHeaderView.h +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import + +@interface TLSettingSectionHeaderView : UICollectionReusableView + +@end diff --git a/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionHeaderView.m b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionHeaderView.m new file mode 100644 index 00000000..4f7aba2e --- /dev/null +++ b/TLChat/TLKitExtensions/Components/TLSettingItem/TLSettingSectionHeaderView.m @@ -0,0 +1,14 @@ +// +// TLSettingSectionHeaderView.m +// TLChat +// +// Created by 李伯坤 on 2018/3/6. +// Copyright © 2018年 李伯坤. All rights reserved. +// + +#import "TLSettingSectionHeaderView.h" + +@implementation TLSettingSectionHeaderView + + +@end