diff --git a/.gitignore b/.gitignore index 2df519258..1ef09afad 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ DerivedData *.xcuserstate Coding_iOS/Coding_iOS-Prefix.pch +Coding_iOS/Coding_Enterprise_iOS-Prefix.pch .DS_Store # CocoaPods # @@ -25,6 +26,7 @@ Coding_iOS/Coding_iOS-Prefix.pch # you should judge for yourself, the pros and cons are mentioned at: # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control # +Carthage/ Pods/ .idea/ *.xcbkptlist diff --git a/Cartfile.resolved b/Cartfile.resolved index 335529071..efc011b20 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1 @@ -github "libgit2/objective-git" "0.13.0" +github "libgit2/objective-git" "0.14.1" diff --git a/Coding_iOS.xcodeproj/project.pbxproj b/Coding_iOS.xcodeproj/project.pbxproj index a0d20a948..2670133d7 100644 --- a/Coding_iOS.xcodeproj/project.pbxproj +++ b/Coding_iOS.xcodeproj/project.pbxproj @@ -106,27 +106,18 @@ 4E00229C1B735075005308DE /* EAIntroPage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0022991B735075005308DE /* EAIntroPage.m */; }; 4E00229D1B735075005308DE /* EAIntroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E00229B1B735075005308DE /* EAIntroView.m */; }; 4E0022A01B7360B1005308DE /* FunctionIntroManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E00229F1B7360B1005308DE /* FunctionIntroManager.m */; }; - 4E0022A61B7362EF005308DE /* intro_page0_ip4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E0022A21B7362EF005308DE /* intro_page0_ip4@2x.png */; }; - 4E0022A71B7362EF005308DE /* intro_page0_ip5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E0022A31B7362EF005308DE /* intro_page0_ip5@2x.png */; }; - 4E0022A81B7362EF005308DE /* intro_page0_ip6+@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E0022A41B7362EF005308DE /* intro_page0_ip6+@3x.png */; }; - 4E0022A91B7362EF005308DE /* intro_page0_ip6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E0022A51B7362EF005308DE /* intro_page0_ip6@2x.png */; }; 4E03AC9A1A5BDDF9002B000B /* STARTIMAGE.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 4E03AC991A5BDDF9002B000B /* STARTIMAGE.jpg */; }; 4E03ACA61A5D2060002B000B /* UIVerticalAlignmentLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E03ACA51A5D2060002B000B /* UIVerticalAlignmentLabel.m */; }; 4E07D3081A4A96EA009EDDF2 /* FileListUploadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E07D3071A4A96EA009EDDF2 /* FileListUploadCell.m */; }; 4E07D30D1A4A9F45009EDDF2 /* btn_file_cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D30B1A4A9F45009EDDF2 /* btn_file_cancel@2x.png */; }; 4E07D30E1A4A9F45009EDDF2 /* btn_file_reDo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D30C1A4A9F45009EDDF2 /* btn_file_reDo@2x.png */; }; 4E07D3111A4D1484009EDDF2 /* EaseStartView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E07D3101A4D1484009EDDF2 /* EaseStartView.m */; }; - 4E07D3151A4D3CA6009EDDF2 /* icon_user_monkey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D3121A4D3CA6009EDDF2 /* icon_user_monkey@2x.png */; }; 4E0849801A918A7F00BD27F6 /* coding_emoji_38@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497A1A918A7F00BD27F6 /* coding_emoji_38@2x.png */; }; 4E0849811A918A7F00BD27F6 /* coding_emoji_39@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497B1A918A7F00BD27F6 /* coding_emoji_39@2x.png */; }; 4E0849821A918A7F00BD27F6 /* coding_emoji_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497C1A918A7F00BD27F6 /* coding_emoji_40@2x.png */; }; 4E0849831A918A7F00BD27F6 /* coding_emoji_41@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497D1A918A7F00BD27F6 /* coding_emoji_41@2x.png */; }; 4E0849841A918A7F00BD27F6 /* coding_emoji_42@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497E1A918A7F00BD27F6 /* coding_emoji_42@2x.png */; }; 4E0849851A918A7F00BD27F6 /* coding_emoji_43@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497F1A918A7F00BD27F6 /* coding_emoji_43@2x.png */; }; - 4E095A151D9534CB00E63D9E /* intro_page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A111D9534CB00E63D9E /* intro_page_selected@2x.png */; }; - 4E095A161D9534CB00E63D9E /* intro_page_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A121D9534CB00E63D9E /* intro_page_selected@3x.png */; }; - 4E095A171D9534CB00E63D9E /* intro_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A131D9534CB00E63D9E /* intro_page_unselected@2x.png */; }; - 4E095A181D9534CB00E63D9E /* intro_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A141D9534CB00E63D9E /* intro_page_unselected@3x.png */; }; 4E095A591B690494008DC439 /* CodingBanner.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E095A581B690494008DC439 /* CodingBanner.m */; }; 4E095A5C1B6907AA008DC439 /* CodingBannersView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E095A5B1B6907AA008DC439 /* CodingBannersView.m */; }; 4E095A661B6909F9008DC439 /* AutoSlideScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E095A5F1B6909F9008DC439 /* AutoSlideScrollView.m */; }; @@ -163,7 +154,6 @@ 4E0EF6EC1BF42E4B00F2FCC8 /* task_activity_icon_update_label@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E0EF6EB1BF42E4B00F2FCC8 /* task_activity_icon_update_label@2x.png */; }; 4E15C7D01A26D2F000FB8DAD /* FolderToMoveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E15C7CF1A26D2F000FB8DAD /* FolderToMoveViewController.m */; }; 4E15C7D61A271A6300FB8DAD /* EaseToolBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E15C7D51A271A6300FB8DAD /* EaseToolBar.m */; }; - 4E19E7071BCE03CD00C66DC6 /* UIActionSheet+Front.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E19E7061BCE03CD00C66DC6 /* UIActionSheet+Front.m */; }; 4E1A22821AB1729700CFC14F /* ProjectInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E1A22811AB1729700CFC14F /* ProjectInfoCell.m */; }; 4E1A22851AB172C400CFC14F /* ProjectItemsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E1A22841AB172C400CFC14F /* ProjectItemsCell.m */; }; 4E1A22881AB1731600CFC14F /* ProjectDescriptionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E1A22871AB1731600CFC14F /* ProjectDescriptionCell.m */; }; @@ -450,8 +440,6 @@ 4E8D5D6E1B45400100B70936 /* ZXScanCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D6D1B45400100B70936 /* ZXScanCodeViewController.m */; }; 4E8D5D731B454D5000B70936 /* OTPAuthClock.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D721B454D5000B70936 /* OTPAuthClock.m */; }; 4E8D5D7D1B462ADB00B70936 /* OTPTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D7C1B462ADB00B70936 /* OTPTableViewCell.m */; }; - 4E8F92DE1B67BE3C00033D8F /* icon_user_monkey_i6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E8F92DB1B67BE3C00033D8F /* icon_user_monkey_i6@2x.png */; }; - 4E8F92DF1B67BE3C00033D8F /* icon_user_monkey_i6p@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E8F92DC1B67BE3C00033D8F /* icon_user_monkey_i6p@3x.png */; }; 4E9113A21A1C426000AC9431 /* ASPopUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E91139F1A1C426000AC9431 /* ASPopUpView.m */; }; 4E9113A31A1C426000AC9431 /* ASProgressPopUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E9113A11A1C426000AC9431 /* ASProgressPopUpView.m */; }; 4E93F2331B84243D00017916 /* KxMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E93F2321B84243D00017916 /* KxMenu.m */; }; @@ -546,7 +534,6 @@ 4EA679191A14BFA0001A0324 /* icon_file_folder_default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EA679171A14BFA0001A0324 /* icon_file_folder_default@2x.png */; }; 4EA6791A1A14BFA0001A0324 /* icon_file_folder_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EA679181A14BFA0001A0324 /* icon_file_folder_normal@2x.png */; }; 4EA6791D1A15A943001A0324 /* FileListFolderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA6791C1A15A943001A0324 /* FileListFolderCell.m */; }; - 4EA679201A15AB9F001A0324 /* FileListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA6791F1A15AB9F001A0324 /* FileListViewController.m */; }; 4EA7F1591A6D192B00A046BD /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F13A1A6D192B00A046BD /* NSData+ImageContentType.m */; }; 4EA7F15A1A6D192B00A046BD /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F13C1A6D192B00A046BD /* SDImageCache.m */; }; 4EA7F15B1A6D192B00A046BD /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F13E1A6D192B00A046BD /* SDWebImageCompat.m */; }; @@ -658,7 +645,6 @@ 4EBD7FAF1CE4827A00B3AF49 /* CountryCodeListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBD7FAE1CE4827A00B3AF49 /* CountryCodeListViewController.m */; }; 4EBD7FB11CE482A400B3AF49 /* country_code.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4EBD7FB01CE482A400B3AF49 /* country_code.plist */; }; 4EBD7FB41CE4833D00B3AF49 /* CountryCodeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBD7FB31CE4833D00B3AF49 /* CountryCodeCell.m */; }; - 4EBDA87C1A6640340035ED96 /* UIActionSheet+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBDA87B1A6640340035ED96 /* UIActionSheet+Common.m */; }; 4EBDC27B1BC501C00037EB66 /* tipIcon_ProjectPayment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EBDC27A1BC501C00037EB66 /* tipIcon_ProjectPayment@2x.png */; }; 4EBFBD181AA85B8500E4B10E /* add_user_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EBFBD171AA85B8500E4B10E /* add_user_icon@2x.png */; }; 4EC461AD1B39084100D08970 /* FunctionTipsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EC461AC1B39084100D08970 /* FunctionTipsManager.m */; }; @@ -766,7 +752,6 @@ 4EE1A22B1B5D02CA004284F1 /* ProjectActivitiesView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A21A1B5D02CA004284F1 /* ProjectActivitiesView.m */; }; 4EE1A22C1B5D02CA004284F1 /* ProjectActivityListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A21C1B5D02CA004284F1 /* ProjectActivityListView.m */; }; 4EE1A22D1B5D02CA004284F1 /* ProjectCodeListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A21E1B5D02CA004284F1 /* ProjectCodeListView.m */; }; - 4EE1A22E1B5D02CA004284F1 /* ProjectFolderListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2201B5D02CA004284F1 /* ProjectFolderListView.m */; }; 4EE1A22F1B5D02CA004284F1 /* ProjectListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2221B5D02CA004284F1 /* ProjectListView.m */; }; 4EE1A2301B5D02CA004284F1 /* ProjectTaskListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2241B5D02CA004284F1 /* ProjectTaskListView.m */; }; 4EE1A2311B5D02CA004284F1 /* ProjectTasksView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2261B5D02CA004284F1 /* ProjectTasksView.m */; }; @@ -783,36 +768,6 @@ 4EED9DCD1B539366000E5827 /* taskProject@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EED9DCB1B539366000E5827 /* taskProject@2x.png */; }; 4EED9DD11B53BBCF000E5827 /* twoFABtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EED9DD01B53BBCF000E5827 /* twoFABtn_Nav@2x.png */; }; 4EF17E5F1B3AB10F003CDD2D /* IntroductionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF17E5E1B3AB10F003CDD2D /* IntroductionViewController.m */; }; - 4EF17ECB1B3C3112003CDD2D /* intro_dot_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EAD1B3C3112003CDD2D /* intro_dot_selected@2x.png */; }; - 4EF17ECC1B3C3112003CDD2D /* intro_dot_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EAE1B3C3112003CDD2D /* intro_dot_selected@3x.png */; }; - 4EF17ECD1B3C3112003CDD2D /* intro_dot_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EAF1B3C3112003CDD2D /* intro_dot_unselected@2x.png */; }; - 4EF17ECE1B3C3112003CDD2D /* intro_dot_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB01B3C3112003CDD2D /* intro_dot_unselected@3x.png */; }; - 4EF17ECF1B3C3112003CDD2D /* intro_icon_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB11B3C3112003CDD2D /* intro_icon_0@2x.png */; }; - 4EF17ED01B3C3112003CDD2D /* intro_icon_0@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB21B3C3112003CDD2D /* intro_icon_0@3x.png */; }; - 4EF17ED11B3C3112003CDD2D /* intro_icon_1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB31B3C3112003CDD2D /* intro_icon_1@2x.png */; }; - 4EF17ED21B3C3112003CDD2D /* intro_icon_1@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB41B3C3112003CDD2D /* intro_icon_1@3x.png */; }; - 4EF17ED31B3C3112003CDD2D /* intro_icon_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB51B3C3112003CDD2D /* intro_icon_2@2x.png */; }; - 4EF17ED41B3C3112003CDD2D /* intro_icon_2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB61B3C3112003CDD2D /* intro_icon_2@3x.png */; }; - 4EF17ED51B3C3112003CDD2D /* intro_icon_3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB71B3C3112003CDD2D /* intro_icon_3@2x.png */; }; - 4EF17ED61B3C3112003CDD2D /* intro_icon_3@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB81B3C3112003CDD2D /* intro_icon_3@3x.png */; }; - 4EF17ED71B3C3112003CDD2D /* intro_icon_4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EB91B3C3112003CDD2D /* intro_icon_4@2x.png */; }; - 4EF17ED81B3C3112003CDD2D /* intro_icon_4@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EBA1B3C3112003CDD2D /* intro_icon_4@3x.png */; }; - 4EF17ED91B3C3112003CDD2D /* intro_icon_5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EBB1B3C3112003CDD2D /* intro_icon_5@2x.png */; }; - 4EF17EDA1B3C3112003CDD2D /* intro_icon_5@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EBC1B3C3112003CDD2D /* intro_icon_5@3x.png */; }; - 4EF17EDB1B3C3112003CDD2D /* intro_icon_6@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EBD1B3C3112003CDD2D /* intro_icon_6@3x.png */; }; - 4EF17EDC1B3C3112003CDD2D /* intro_tip_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EBE1B3C3112003CDD2D /* intro_tip_0@2x.png */; }; - 4EF17EDD1B3C3112003CDD2D /* intro_tip_0@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EBF1B3C3112003CDD2D /* intro_tip_0@3x.png */; }; - 4EF17EDE1B3C3112003CDD2D /* intro_tip_1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC01B3C3112003CDD2D /* intro_tip_1@2x.png */; }; - 4EF17EDF1B3C3112003CDD2D /* intro_tip_1@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC11B3C3112003CDD2D /* intro_tip_1@3x.png */; }; - 4EF17EE01B3C3112003CDD2D /* intro_tip_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC21B3C3112003CDD2D /* intro_tip_2@2x.png */; }; - 4EF17EE11B3C3112003CDD2D /* intro_tip_2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC31B3C3112003CDD2D /* intro_tip_2@3x.png */; }; - 4EF17EE21B3C3112003CDD2D /* intro_tip_3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC41B3C3112003CDD2D /* intro_tip_3@2x.png */; }; - 4EF17EE31B3C3112003CDD2D /* intro_tip_3@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC51B3C3112003CDD2D /* intro_tip_3@3x.png */; }; - 4EF17EE41B3C3112003CDD2D /* intro_tip_4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC61B3C3112003CDD2D /* intro_tip_4@2x.png */; }; - 4EF17EE51B3C3112003CDD2D /* intro_tip_4@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC71B3C3112003CDD2D /* intro_tip_4@3x.png */; }; - 4EF17EE61B3C3112003CDD2D /* intro_tip_5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC81B3C3112003CDD2D /* intro_tip_5@2x.png */; }; - 4EF17EE71B3C3112003CDD2D /* intro_tip_5@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17EC91B3C3112003CDD2D /* intro_tip_5@3x.png */; }; - 4EF17EE81B3C3112003CDD2D /* intro_icon_6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF17ECA1B3C3112003CDD2D /* intro_icon_6@2x.png */; }; 4EF374161BB1254700DDA662 /* LocalFoldersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF374151BB1254700DDA662 /* LocalFoldersViewController.m */; }; 4EF374191BB1255E00DDA662 /* LocalFilesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF374181BB1255E00DDA662 /* LocalFilesViewController.m */; }; 4EF3741C1BB1258600DDA662 /* LocalFileViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF3741B1BB1258600DDA662 /* LocalFileViewController.m */; }; @@ -828,6 +783,7 @@ 4EFE8DAF1B3960E6004B7559 /* logo_coding_top@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EFE8DAE1B3960E6004B7559 /* logo_coding_top@2x.png */; }; 4EFE8DB91B3A5727004B7559 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4EFE8DB81B3A5727004B7559 /* Launch Screen.xib */; }; 4EFF5A771E0AE54800683D03 /* libresolv.9.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EFF5A761E0AE54800683D03 /* libresolv.9.tbd */; }; + 74BCC5B7B071C6418DBC18C7 /* libPods-Coding_iOS-Coding_Enterprise_iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 627CA7E44F0D5A025A49E2F0 /* libPods-Coding_iOS-Coding_Enterprise_iOS.a */; }; 7E335D9D1B6F5E94003D0F3D /* keyboard_arrow_down@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E335D9A1B6F5E94003D0F3D /* keyboard_arrow_down@2x.png */; }; 7E335D9E1B6F5E94003D0F3D /* keyboard_voice_record@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E335D9B1B6F5E94003D0F3D /* keyboard_voice_record@2x.png */; }; 7E335D9F1B6F5E94003D0F3D /* keyboard_voice@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E335D9C1B6F5E94003D0F3D /* keyboard_voice@2x.png */; }; @@ -896,10 +852,8 @@ 8E8F7B2C19EF6306006BA8BD /* btn_followed_both@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2219EF6306006BA8BD /* btn_followed_both@2x.png */; }; 8E8F7B2D19EF6306006BA8BD /* btn_followed_not@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2319EF6306006BA8BD /* btn_followed_not@2x.png */; }; 8E8F7B2E19EF6306006BA8BD /* btn_followed_yes@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2419EF6306006BA8BD /* btn_followed_yes@2x.png */; }; - 8E8F7B2F19EF6306006BA8BD /* btn_privateMsg_black@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2519EF6306006BA8BD /* btn_privateMsg_black@2x.png */; }; 8E8F7B3019EF6306006BA8BD /* btn_privateMsg_friend@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2619EF6306006BA8BD /* btn_privateMsg_friend@2x.png */; }; 8E8F7B3119EF6306006BA8BD /* btn_privateMsg_stranger@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2719EF6306006BA8BD /* btn_privateMsg_stranger@2x.png */; }; - 8E8F7B3219EF6306006BA8BD /* btn_privateMsg_white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2819EF6306006BA8BD /* btn_privateMsg_white@2x.png */; }; 8E8F7B3319EF6306006BA8BD /* btn_project_add@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2919EF6306006BA8BD /* btn_project_add@2x.png */; }; 8E8F7B3419EF6306006BA8BD /* btn_project_added@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2A19EF6306006BA8BD /* btn_project_added@2x.png */; }; 8E8F7B3519EF6306006BA8BD /* btn_project_quit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2B19EF6306006BA8BD /* btn_project_quit@2x.png */; }; @@ -1028,7 +982,6 @@ 8EA6D1A119E240C40076D59C /* tipIcon_UserFollow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFBC19E240C40076D59C /* tipIcon_UserFollow@2x.png */; }; 8EA6D1A319E240C40076D59C /* tweet_comment_btn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFBE19E240C40076D59C /* tweet_comment_btn@2x.png */; }; 8EA6D1A819E240C40076D59C /* xtsegment_bordor_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFC319E240C40076D59C /* xtsegment_bordor_left@2x.png */; }; - 8EA6D1AA19E240C40076D59C /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFC519E240C40076D59C /* Images.xcassets */; }; 8EA6D1AB19E240C40076D59C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFC619E240C40076D59C /* main.m */; }; 8EA6D1AE19E240C40076D59C /* CodingTip.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFCD19E240C40076D59C /* CodingTip.m */; }; 8EA6D1AF19E240C40076D59C /* CodingTips.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFCF19E240C40076D59C /* CodingTips.m */; }; @@ -1222,6 +1175,8 @@ B14689C11EE100B200B01371 /* vip_4_45@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689B11EE100B200B01371 /* vip_4_45@3x.png */; }; B14689C21EE100B200B01371 /* vip_4_75@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689B21EE100B200B01371 /* vip_4_75@2x.png */; }; B14689C31EE100B200B01371 /* vip_4_75@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689B31EE100B200B01371 /* vip_4_75@3x.png */; }; + B14DE6DE20C914E70072ECEA /* AnimatedGIFImageSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = B14DE6DD20C914E60072ECEA /* AnimatedGIFImageSerialization.m */; }; + B14DE6DF20C914E70072ECEA /* AnimatedGIFImageSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = B14DE6DD20C914E60072ECEA /* AnimatedGIFImageSerialization.m */; }; B152ED4E2090B223004A6E8A /* ProjectSettingEntranceController.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED4D2090B223004A6E8A /* ProjectSettingEntranceController.m */; }; B152ED542091B7CB004A6E8A /* ProjectArchiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED532091B7CB004A6E8A /* ProjectArchiveViewController.m */; }; B152ED5A2092BF46004A6E8A /* EABoardTaskList.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED592092BF46004A6E8A /* EABoardTaskList.m */; }; @@ -1244,6 +1199,166 @@ B152ED94209453F3004A6E8A /* taskboard_add_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8C209453F2004A6E8A /* taskboard_add_page_unselected@3x.png */; }; B152ED95209453F3004A6E8A /* taskboard_normal_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8D209453F2004A6E8A /* taskboard_normal_page_unselected@3x.png */; }; B152ED96209453F3004A6E8A /* taskboard_normal_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8E209453F2004A6E8A /* taskboard_normal_page_unselected@2x.png */; }; + B15C98AD20D39C4B00DDA425 /* NewProject.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B94C1B6A1AC945FB0000C271 /* NewProject.storyboard */; }; + B15C98B020D39CA200DDA425 /* project_icon_edit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B15C98AE20D39CA100DDA425 /* project_icon_edit@2x.png */; }; + B15C98B120D39CA200DDA425 /* project_icon_edit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B15C98AE20D39CA100DDA425 /* project_icon_edit@2x.png */; }; + B15C98B220D39CA200DDA425 /* project_icon_edit@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B15C98AF20D39CA200DDA425 /* project_icon_edit@3x.png */; }; + B15C98B320D39CA200DDA425 /* project_icon_edit@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B15C98AF20D39CA200DDA425 /* project_icon_edit@3x.png */; }; + B16E6CA020C0FDB50076026D /* logo_coding_top@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6C9F20C0FDB50076026D /* logo_coding_top@3x.png */; }; + B16E6CA120C0FDB50076026D /* logo_coding_top@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6C9F20C0FDB50076026D /* logo_coding_top@3x.png */; }; + B16E6CA320C102B60076026D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFC519E240C40076D59C /* Images.xcassets */; }; + B16E6CA620C13BA20076026D /* btn_dismiss@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CA420C13BA10076026D /* btn_dismiss@3x.png */; }; + B16E6CA720C13BA20076026D /* btn_dismiss@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CA420C13BA10076026D /* btn_dismiss@3x.png */; }; + B16E6CA820C13BA20076026D /* btn_dismiss@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CA520C13BA10076026D /* btn_dismiss@2x.png */; }; + B16E6CA920C13BA20076026D /* btn_dismiss@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CA520C13BA10076026D /* btn_dismiss@2x.png */; }; + B16E6CAF20C13BF50076026D /* btn_next_unable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAB20C13BF40076026D /* btn_next_unable@2x.png */; }; + B16E6CB020C13BF50076026D /* btn_next_unable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAB20C13BF40076026D /* btn_next_unable@2x.png */; }; + B16E6CB120C13BF50076026D /* btn_next_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAC20C13BF40076026D /* btn_next_unable@3x.png */; }; + B16E6CB220C13BF50076026D /* btn_next_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAC20C13BF40076026D /* btn_next_unable@3x.png */; }; + B16E6CB320C13BF50076026D /* btn_next_enable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAD20C13BF40076026D /* btn_next_enable@2x.png */; }; + B16E6CB420C13BF50076026D /* btn_next_enable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAD20C13BF40076026D /* btn_next_enable@2x.png */; }; + B16E6CB520C13BF50076026D /* btn_next_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAE20C13BF40076026D /* btn_next_enable@3x.png */; }; + B16E6CB620C13BF50076026D /* btn_next_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CAE20C13BF40076026D /* btn_next_enable@3x.png */; }; + B16E6CBE20C13F5F0076026D /* btn_project_add@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CB820C13F5E0076026D /* btn_project_add@3x.png */; }; + B16E6CBF20C13F5F0076026D /* btn_project_add@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CB820C13F5E0076026D /* btn_project_add@3x.png */; }; + B16E6CC020C13F5F0076026D /* btn_project_added@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CB920C13F5E0076026D /* btn_project_added@3x.png */; }; + B16E6CC120C13F5F0076026D /* btn_project_added@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CB920C13F5E0076026D /* btn_project_added@3x.png */; }; + B16E6CC220C13F5F0076026D /* btn_project_quit@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CBA20C13F5E0076026D /* btn_project_quit@3x.png */; }; + B16E6CC320C13F5F0076026D /* btn_project_quit@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CBA20C13F5E0076026D /* btn_project_quit@3x.png */; }; + B16E6CC420C13F5F0076026D /* btn_privateMsg_stranger@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CBB20C13F5E0076026D /* btn_privateMsg_stranger@3x.png */; }; + B16E6CC520C13F5F0076026D /* btn_privateMsg_stranger@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CBB20C13F5E0076026D /* btn_privateMsg_stranger@3x.png */; }; + B16E6CCA20C144930076026D /* done_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC620C144910076026D /* done_Nav@2x.png */; }; + B16E6CCB20C144930076026D /* done_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC620C144910076026D /* done_Nav@2x.png */; }; + B16E6CCC20C144930076026D /* done_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC720C144920076026D /* done_Nav@3x.png */; }; + B16E6CCD20C144930076026D /* done_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC720C144920076026D /* done_Nav@3x.png */; }; + B16E6CCE20C144930076026D /* done_un_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC820C144920076026D /* done_un_Nav@2x.png */; }; + B16E6CCF20C144930076026D /* done_un_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC820C144920076026D /* done_un_Nav@2x.png */; }; + B16E6CD020C144930076026D /* done_un_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC920C144920076026D /* done_un_Nav@3x.png */; }; + B16E6CD120C144930076026D /* done_un_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CC920C144920076026D /* done_un_Nav@3x.png */; }; + B16E6CDB20C145BF0076026D /* quick_menu_icon_message@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD320C145BE0076026D /* quick_menu_icon_message@2x.png */; }; + B16E6CDC20C145BF0076026D /* quick_menu_icon_message@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD320C145BE0076026D /* quick_menu_icon_message@2x.png */; }; + B16E6CDD20C145BF0076026D /* quick_menu_icon_message@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD420C145BE0076026D /* quick_menu_icon_message@3x.png */; }; + B16E6CDE20C145BF0076026D /* quick_menu_icon_message@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD420C145BE0076026D /* quick_menu_icon_message@3x.png */; }; + B16E6CDF20C145BF0076026D /* quick_menu_icon_task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD520C145BE0076026D /* quick_menu_icon_task@3x.png */; }; + B16E6CE020C145BF0076026D /* quick_menu_icon_task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD520C145BE0076026D /* quick_menu_icon_task@3x.png */; }; + B16E6CE120C145BF0076026D /* quick_menu_icon_task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD620C145BE0076026D /* quick_menu_icon_task@2x.png */; }; + B16E6CE220C145BF0076026D /* quick_menu_icon_task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD620C145BE0076026D /* quick_menu_icon_task@2x.png */; }; + B16E6CE320C145BF0076026D /* quick_menu_icon_project@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD720C145BE0076026D /* quick_menu_icon_project@3x.png */; }; + B16E6CE420C145BF0076026D /* quick_menu_icon_project@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD720C145BE0076026D /* quick_menu_icon_project@3x.png */; }; + B16E6CE520C145BF0076026D /* quick_menu_icon_2fa@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD820C145BE0076026D /* quick_menu_icon_2fa@3x.png */; }; + B16E6CE620C145BF0076026D /* quick_menu_icon_2fa@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD820C145BE0076026D /* quick_menu_icon_2fa@3x.png */; }; + B16E6CE720C145BF0076026D /* quick_menu_icon_2fa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD920C145BE0076026D /* quick_menu_icon_2fa@2x.png */; }; + B16E6CE820C145BF0076026D /* quick_menu_icon_2fa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CD920C145BE0076026D /* quick_menu_icon_2fa@2x.png */; }; + B16E6CE920C145BF0076026D /* quick_menu_icon_project@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CDA20C145BE0076026D /* quick_menu_icon_project@2x.png */; }; + B16E6CEA20C145BF0076026D /* quick_menu_icon_project@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CDA20C145BE0076026D /* quick_menu_icon_project@2x.png */; }; + B16E6CED20C147490076026D /* team_bg@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CEB20C147480076026D /* team_bg@3x.png */; }; + B16E6CEE20C147490076026D /* team_bg@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CEB20C147480076026D /* team_bg@3x.png */; }; + B16E6CEF20C147490076026D /* team_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CEC20C147490076026D /* team_bg@2x.png */; }; + B16E6CF020C147490076026D /* team_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CEC20C147490076026D /* team_bg@2x.png */; }; + B16E6D0120C147770076026D /* team_info_pro@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF220C147760076026D /* team_info_pro@3x.png */; }; + B16E6D0220C147770076026D /* team_info_pro@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF220C147760076026D /* team_info_pro@3x.png */; }; + B16E6D0320C147770076026D /* team_info_pro@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF320C147760076026D /* team_info_pro@2x.png */; }; + B16E6D0420C147770076026D /* team_info_pro@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF320C147760076026D /* team_info_pro@2x.png */; }; + B16E6D0520C147770076026D /* team_info_order@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF420C147760076026D /* team_info_order@2x.png */; }; + B16E6D0620C147770076026D /* team_info_order@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF420C147760076026D /* team_info_order@2x.png */; }; + B16E6D0720C147770076026D /* team_info_order@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF520C147760076026D /* team_info_order@3x.png */; }; + B16E6D0820C147770076026D /* team_info_order@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF520C147760076026D /* team_info_order@3x.png */; }; + B16E6D0920C147770076026D /* team_info_sup@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF620C147760076026D /* team_info_sup@2x.png */; }; + B16E6D0A20C147770076026D /* team_info_sup@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF620C147760076026D /* team_info_sup@2x.png */; }; + B16E6D0B20C147770076026D /* team_info_mem@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF720C147760076026D /* team_info_mem@3x.png */; }; + B16E6D0C20C147770076026D /* team_info_mem@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF720C147760076026D /* team_info_mem@3x.png */; }; + B16E6D0D20C147770076026D /* team_info_mem@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF820C147760076026D /* team_info_mem@2x.png */; }; + B16E6D0E20C147770076026D /* team_info_mem@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF820C147760076026D /* team_info_mem@2x.png */; }; + B16E6D0F20C147770076026D /* team_info_sup@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF920C147760076026D /* team_info_sup@3x.png */; }; + B16E6D1020C147770076026D /* team_info_sup@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CF920C147760076026D /* team_info_sup@3x.png */; }; + B16E6D1120C147770076026D /* team_cell_edit_team@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFB20C147760076026D /* team_cell_edit_team@3x.png */; }; + B16E6D1220C147770076026D /* team_cell_edit_team@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFB20C147760076026D /* team_cell_edit_team@3x.png */; }; + B16E6D1320C147770076026D /* team_cell_edit_team@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFC20C147760076026D /* team_cell_edit_team@2x.png */; }; + B16E6D1420C147770076026D /* team_cell_edit_team@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFC20C147760076026D /* team_cell_edit_team@2x.png */; }; + B16E6D1520C147770076026D /* team_cell_edit_delete@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFD20C147760076026D /* team_cell_edit_delete@3x.png */; }; + B16E6D1620C147770076026D /* team_cell_edit_delete@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFD20C147760076026D /* team_cell_edit_delete@3x.png */; }; + B16E6D1720C147770076026D /* team_cell_edit_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFE20C147760076026D /* team_cell_edit_delete@2x.png */; }; + B16E6D1820C147770076026D /* team_cell_edit_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFE20C147760076026D /* team_cell_edit_delete@2x.png */; }; + B16E6D1920C147770076026D /* team_cell_edit_pro@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFF20C147760076026D /* team_cell_edit_pro@3x.png */; }; + B16E6D1A20C147770076026D /* team_cell_edit_pro@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6CFF20C147760076026D /* team_cell_edit_pro@3x.png */; }; + B16E6D1B20C147770076026D /* team_cell_edit_pro@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D0020C147760076026D /* team_cell_edit_pro@2x.png */; }; + B16E6D1C20C147770076026D /* team_cell_edit_pro@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D0020C147760076026D /* team_cell_edit_pro@2x.png */; }; + B16E6D7420C148E50076026D /* intro_icon_4@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2020C148E50076026D /* intro_icon_4@3x.png */; }; + B16E6D7520C148E50076026D /* intro_tip_2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2120C148E50076026D /* intro_tip_2@3x.png */; }; + B16E6D7620C148E50076026D /* intro_icon_6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2220C148E50076026D /* intro_icon_6@2x.png */; }; + B16E6D7720C148E50076026D /* intro_tip_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2320C148E50076026D /* intro_tip_0@2x.png */; }; + B16E6D7820C148E50076026D /* intro_tip_0@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2420C148E50076026D /* intro_tip_0@3x.png */; }; + B16E6D7920C148E50076026D /* intro_icon_6@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2520C148E50076026D /* intro_icon_6@3x.png */; }; + B16E6D7A20C148E50076026D /* intro_tip_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2620C148E50076026D /* intro_tip_2@2x.png */; }; + B16E6D7B20C148E50076026D /* intro_icon_4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2720C148E50076026D /* intro_icon_4@2x.png */; }; + B16E6D7C20C148E50076026D /* intro_icon_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2820C148E50076026D /* intro_icon_0@2x.png */; }; + B16E6D7D20C148E50076026D /* intro_icon_2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2920C148E50076026D /* intro_icon_2@3x.png */; }; + B16E6D7E20C148E50076026D /* intro_tip_4@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2A20C148E50076026D /* intro_tip_4@3x.png */; }; + B16E6D7F20C148E50076026D /* intro_tip_4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2B20C148E50076026D /* intro_tip_4@2x.png */; }; + B16E6D8020C148E50076026D /* intro_icon_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2C20C148E50076026D /* intro_icon_2@2x.png */; }; + B16E6D8120C148E50076026D /* intro_icon_0@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2D20C148E50076026D /* intro_icon_0@3x.png */; }; + B16E6D8220C148E50076026D /* intro_tip_1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2E20C148E50076026D /* intro_tip_1@2x.png */; }; + B16E6D8320C148E50076026D /* intro_icon_5@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D2F20C148E50076026D /* intro_icon_5@3x.png */; }; + B16E6D8420C148E50076026D /* intro_dot_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3020C148E50076026D /* intro_dot_unselected@2x.png */; }; + B16E6D8520C148E50076026D /* intro_tip_3@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3120C148E50076026D /* intro_tip_3@3x.png */; }; + B16E6D8620C148E50076026D /* intro_tip_3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3220C148E50076026D /* intro_tip_3@2x.png */; }; + B16E6D8720C148E50076026D /* intro_icon_5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3320C148E50076026D /* intro_icon_5@2x.png */; }; + B16E6D8820C148E50076026D /* intro_dot_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3420C148E50076026D /* intro_dot_unselected@3x.png */; }; + B16E6D8920C148E50076026D /* intro_tip_1@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3520C148E50076026D /* intro_tip_1@3x.png */; }; + B16E6D8A20C148E50076026D /* intro_icon_3@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3620C148E50076026D /* intro_icon_3@3x.png */; }; + B16E6D8B20C148E50076026D /* intro_tip_5@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3720C148E50076026D /* intro_tip_5@3x.png */; }; + B16E6D8C20C148E50076026D /* intro_icon_1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3820C148E50076026D /* intro_icon_1@2x.png */; }; + B16E6D8D20C148E50076026D /* intro_dot_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3920C148E50076026D /* intro_dot_selected@2x.png */; }; + B16E6D8E20C148E50076026D /* intro_dot_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3A20C148E50076026D /* intro_dot_selected@3x.png */; }; + B16E6D8F20C148E50076026D /* intro_icon_1@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3B20C148E50076026D /* intro_icon_1@3x.png */; }; + B16E6D9020C148E50076026D /* intro_tip_5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3C20C148E50076026D /* intro_tip_5@2x.png */; }; + B16E6D9120C148E50076026D /* intro_icon_3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3D20C148E50076026D /* intro_icon_3@2x.png */; }; + B16E6D9220C148E50076026D /* intro_page0_ip5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D3F20C148E50076026D /* intro_page0_ip5@2x.png */; }; + B16E6D9320C148E50076026D /* intro_page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4020C148E50076026D /* intro_page_selected@2x.png */; }; + B16E6D9420C148E50076026D /* intro_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4120C148E50076026D /* intro_page_unselected@2x.png */; }; + B16E6D9520C148E50076026D /* intro_page0_ip4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4220C148E50076026D /* intro_page0_ip4@2x.png */; }; + B16E6D9620C148E50076026D /* intro_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4320C148E50076026D /* intro_page_unselected@3x.png */; }; + B16E6D9720C148E50076026D /* intro_page_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4420C148E50076026D /* intro_page_selected@3x.png */; }; + B16E6D9820C148E50076026D /* intro_page0_ip6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4520C148E50076026D /* intro_page0_ip6@2x.png */; }; + B16E6D9920C148E50076026D /* intro_page0_ip6+@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4620C148E50076026D /* intro_page0_ip6+@3x.png */; }; + B16E6D9A20C148E50076026D /* intro_page0_ipX@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4720C148E50076026D /* intro_page0_ipX@3x.png */; }; + B16E6D9B20C148E50076026D /* icon_user_monkey_i6p@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4920C148E50076026D /* icon_user_monkey_i6p@3x.png */; }; + B16E6D9C20C148E50076026D /* icon_user_monkey_i6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4A20C148E50076026D /* icon_user_monkey_i6@2x.png */; }; + B16E6D9D20C148E50076026D /* icon_user_monkey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4B20C148E50076026D /* icon_user_monkey@2x.png */; }; + B16E6DC020C1492F0076026D /* intro_dot_dark_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5520C148E50076026D /* intro_dot_dark_unselected@3x.png */; }; + B16E6DC120C1492F0076026D /* intro_dot_dark_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5620C148E50076026D /* intro_dot_dark_selected@3x.png */; }; + B16E6DC220C1492F0076026D /* intro_dot_dark_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5720C148E50076026D /* intro_dot_dark_selected@2x.png */; }; + B16E6DC320C1492F0076026D /* intro_dot_dark_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5820C148E50076026D /* intro_dot_dark_unselected@2x.png */; }; + B16E6DC420C149350076026D /* intro_dot_light_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D4F20C148E50076026D /* intro_dot_light_unselected@2x.png */; }; + B16E6DC520C149350076026D /* intro_dot_light_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5020C148E50076026D /* intro_dot_light_unselected@3x.png */; }; + B16E6DC620C149350076026D /* intro_dot_light_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5120C148E50076026D /* intro_dot_light_selected@3x.png */; }; + B16E6DC720C149350076026D /* intro_dot_light_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5220C148E50076026D /* intro_dot_light_selected@2x.png */; }; + B16E6DC820C1493A0076026D /* intro_icon_wiki_down.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5320C148E50076026D /* intro_icon_wiki_down.gif */; }; + B16E6DC920C1493A0076026D /* intro_icon_wiki_up.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5920C148E50076026D /* intro_icon_wiki_up.gif */; }; + B16E6DCA20C1493A0076026D /* intro_icon_file_up.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5A20C148E50076026D /* intro_icon_file_up.gif */; }; + B16E6DCB20C1493A0076026D /* intro_icon_code_up.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5B20C148E50076026D /* intro_icon_code_up.gif */; }; + B16E6DCC20C1493A0076026D /* intro_icon_task_up.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5C20C148E50076026D /* intro_icon_task_up.gif */; }; + B16E6DCD20C1493A0076026D /* intro_icon_file_down.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5D20C148E50076026D /* intro_icon_file_down.gif */; }; + B16E6DCE20C1493A0076026D /* intro_icon_task_down.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5E20C148E50076026D /* intro_icon_task_down.gif */; }; + B16E6DCF20C1493A0076026D /* intro_icon_code_down.gif in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D5F20C148E50076026D /* intro_icon_code_down.gif */; }; + B16E6DD020C149440076026D /* intro_page0_ip5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6120C148E50076026D /* intro_page0_ip5@2x.png */; }; + B16E6DD120C149440076026D /* intro_page2_ip6+@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6220C148E50076026D /* intro_page2_ip6+@3x.png */; }; + B16E6DD220C149440076026D /* intro_page1_ip6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6320C148E50076026D /* intro_page1_ip6@2x.png */; }; + B16E6DD320C149440076026D /* intro_page1_ip4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6420C148E50076026D /* intro_page1_ip4@2x.png */; }; + B16E6DD420C149440076026D /* intro_page2_ip5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6520C148E50076026D /* intro_page2_ip5@2x.png */; }; + B16E6DD520C149440076026D /* intro_page1_ip6+@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6620C148E50076026D /* intro_page1_ip6+@3x.png */; }; + B16E6DD620C149440076026D /* intro_page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6720C148E50076026D /* intro_page_selected@2x.png */; }; + B16E6DD720C149440076026D /* intro_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6820C148E50076026D /* intro_page_unselected@2x.png */; }; + B16E6DD820C149440076026D /* intro_page0_ip4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6920C148E50076026D /* intro_page0_ip4@2x.png */; }; + B16E6DD920C149440076026D /* intro_page1_ip5@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6A20C148E50076026D /* intro_page1_ip5@2x.png */; }; + B16E6DDA20C149440076026D /* intro_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6B20C148E50076026D /* intro_page_unselected@3x.png */; }; + B16E6DDB20C149440076026D /* intro_page_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6C20C148E50076026D /* intro_page_selected@3x.png */; }; + B16E6DDC20C149440076026D /* intro_page0_ip6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6D20C148E50076026D /* intro_page0_ip6@2x.png */; }; + B16E6DDD20C149440076026D /* intro_page2_ip4@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6E20C148E50076026D /* intro_page2_ip4@2x.png */; }; + B16E6DDE20C149440076026D /* intro_page0_ip6+@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D6F20C148E50076026D /* intro_page0_ip6+@3x.png */; }; + B16E6DDF20C149440076026D /* intro_page2_ip6@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D7020C148E50076026D /* intro_page2_ip6@2x.png */; }; + B16E6DE020C1494B0076026D /* icon_user_monkey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D7220C148E50076026D /* icon_user_monkey@2x.png */; }; + B16E6DE120C1494B0076026D /* icon_user_monkey@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16E6D7320C148E50076026D /* icon_user_monkey@3x.png */; }; B16EEF08208DDBB6005ABFD5 /* timeline_icon_read@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16EEF06208DDBB5005ABFD5 /* timeline_icon_read@3x.png */; }; B16EEF09208DDBB6005ABFD5 /* timeline_icon_unread@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16EEF07208DDBB6005ABFD5 /* timeline_icon_unread@3x.png */; }; B16EEF13209080D7005ABFD5 /* TaskBoardsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B16EEF12209080D7005ABFD5 /* TaskBoardsViewController.m */; }; @@ -1293,6 +1408,8 @@ B1817F062069F67700E9BAD1 /* EAEditCodeReleaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817F052069F67700E9BAD1 /* EAEditCodeReleaseViewController.m */; }; B184166920513CA100207666 /* topic_add_watcher_btn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B184166720513CA000207666 /* topic_add_watcher_btn@3x.png */; }; B184166A20513CA100207666 /* tweet_comment_btn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B184166820513CA000207666 /* tweet_comment_btn@3x.png */; }; + B186AEB020F462F600A6AF35 /* UIAlertController+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = B186AEAF20F462F600A6AF35 /* UIAlertController+Common.m */; }; + B186AEB120F462F600A6AF35 /* UIAlertController+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = B186AEAF20F462F600A6AF35 /* UIAlertController+Common.m */; }; B1890C292015D82600F52ABA /* wiki_menu_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C1E2015D82600F52ABA /* wiki_menu_0@2x.png */; }; B1890C2A2015D82600F52ABA /* wiki_menu_2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C1F2015D82600F52ABA /* wiki_menu_2@3x.png */; }; B1890C2B2015D82600F52ABA /* wiki_menu_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C202015D82600F52ABA /* wiki_menu_2@2x.png */; }; @@ -1338,7 +1455,6 @@ B1AB5CA1202953E50075A669 /* terminal_box_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C97202953E40075A669 /* terminal_box_selected@3x.png */; }; B1AB5CA2202953E50075A669 /* terminal_triangle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C98202953E40075A669 /* terminal_triangle@2x.png */; }; B1AB5CA3202953E50075A669 /* terminal_box_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C99202953E40075A669 /* terminal_box_selected@2x.png */; }; - B1AB5CA52029849B0075A669 /* intro_page0_ipX@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA42029849A0075A669 /* intro_page0_ipX@3x.png */; }; B1AB5CB1202D7D500075A669 /* button_file_createFolder_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA6202D7D4D0075A669 /* button_file_createFolder_enable@3x.png */; }; B1AB5CB2202D7D500075A669 /* button_file_denete_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA7202D7D4E0075A669 /* button_file_denete_enable@3x.png */; }; B1AB5CB3202D7D500075A669 /* button_file_download_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA8202D7D4E0075A669 /* button_file_download_enable@3x.png */; }; @@ -1350,6 +1466,7 @@ B1AB5CB9202D7D500075A669 /* button_file_move_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAE202D7D4F0075A669 /* button_file_move_enable@3x.png */; }; B1AB5CBA202D7D500075A669 /* button_file_move_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAF202D7D4F0075A669 /* button_file_move_unable@3x.png */; }; B1AB5CBB202D7D500075A669 /* button_file_createFolder_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CB0202D7D500075A669 /* button_file_createFolder_unable@3x.png */; }; + B1ACFE0D20A975E2000BC41E /* EAMilestone.m in Sources */ = {isa = PBXBuildFile; fileRef = B1ACFE0C20A975E2000BC41E /* EAMilestone.m */; }; B1BCB87D1FCD006C0098B87B /* icon_file_doc_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8701FCD006A0098B87B /* icon_file_doc_big@2x.png */; }; B1BCB87E1FCD006C0098B87B /* icon_file_zip_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8711FCD006B0098B87B /* icon_file_zip_big@2x.png */; }; B1BCB87F1FCD006C0098B87B /* icon_file_pdf_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8721FCD006B0098B87B /* icon_file_pdf_big@2x.png */; }; @@ -1371,6 +1488,37 @@ B1BCB89A1FCE93830098B87B /* alipay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8961FCE93830098B87B /* alipay@3x.png */; }; B1BCB89B1FCE93830098B87B /* wechat@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8971FCE93830098B87B /* wechat@2x.png */; }; B1BCB89C1FCE93830098B87B /* wechat@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8981FCE93830098B87B /* wechat@3x.png */; }; + B1BFC4B620B2ACEE009427FC /* editBoardList@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4B420B2ACED009427FC /* editBoardList@3x.png */; }; + B1BFC4B720B2ACEE009427FC /* editBoardList@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4B520B2ACEE009427FC /* editBoardList@2x.png */; }; + B1BFC4C420B2B250009427FC /* task_activity_icon_add_milestone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C020B2B24E009427FC /* task_activity_icon_add_milestone@2x.png */; }; + B1BFC4C520B2B250009427FC /* task_activity_icon_add_milestone@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C120B2B24E009427FC /* task_activity_icon_add_milestone@3x.png */; }; + B1BFC4C620B2B250009427FC /* task_activity_icon_remove_milestone@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C220B2B24F009427FC /* task_activity_icon_remove_milestone@3x.png */; }; + B1BFC4C720B2B250009427FC /* task_activity_icon_remove_milestone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C320B2B250009427FC /* task_activity_icon_remove_milestone@2x.png */; }; + B1C60C7A20BFA2150073D3CA /* NProjectFileListView.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C7920BFA2150073D3CA /* NProjectFileListView.m */; }; + B1C60C7B20BFA2150073D3CA /* NProjectFileListView.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C7920BFA2150073D3CA /* NProjectFileListView.m */; }; + B1C60C7E20BFCDBE0073D3CA /* EditMemberTypeProjectListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C7D20BFCDBD0073D3CA /* EditMemberTypeProjectListViewController.m */; }; + B1C60C7F20BFCDBE0073D3CA /* EditMemberTypeProjectListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C7D20BFCDBD0073D3CA /* EditMemberTypeProjectListViewController.m */; }; + B1C60C8220BFCEFD0073D3CA /* NFileListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C8020BFCEFD0073D3CA /* NFileListViewController.m */; }; + B1C60C8320BFCEFD0073D3CA /* NFileListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C8020BFCEFD0073D3CA /* NFileListViewController.m */; }; + B1C60C8620BFE8220073D3CA /* NewProject.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B94C1B6A1AC945FB0000C271 /* NewProject.storyboard */; }; + B1C60C8E20BFF7950073D3CA /* ProjectTypeExplanationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1C60C8B20BFF7940073D3CA /* ProjectTypeExplanationViewController.xib */; }; + B1C60C8F20BFF7950073D3CA /* ProjectTypeExplanationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1C60C8B20BFF7940073D3CA /* ProjectTypeExplanationViewController.xib */; }; + B1C60C9020BFF7950073D3CA /* ProjectTypeExplanationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C8D20BFF7950073D3CA /* ProjectTypeExplanationViewController.m */; }; + B1C60C9120BFF7950073D3CA /* ProjectTypeExplanationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C8D20BFF7950073D3CA /* ProjectTypeExplanationViewController.m */; }; + B1C60C9820C004C80073D3CA /* TeamPurchaseTopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C9320C004C70073D3CA /* TeamPurchaseTopCell.m */; }; + B1C60C9920C004C80073D3CA /* TeamPurchaseTopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C9320C004C70073D3CA /* TeamPurchaseTopCell.m */; }; + B1C60C9A20C004C80073D3CA /* TeamPurchaseBillingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C9420C004C70073D3CA /* TeamPurchaseBillingCell.m */; }; + B1C60C9B20C004C80073D3CA /* TeamPurchaseBillingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C9420C004C70073D3CA /* TeamPurchaseBillingCell.m */; }; + B1C60C9C20C004C80073D3CA /* TeamPurchaseOrderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C9620C004C80073D3CA /* TeamPurchaseOrderCell.m */; }; + B1C60C9D20C004C80073D3CA /* TeamPurchaseOrderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60C9620C004C80073D3CA /* TeamPurchaseOrderCell.m */; }; + B1C60CA420C0DDF60073D3CA /* TeamSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60CA020C0DDF40073D3CA /* TeamSettingViewController.m */; }; + B1C60CA520C0DDF60073D3CA /* TeamSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60CA020C0DDF40073D3CA /* TeamSettingViewController.m */; }; + B1C60CA620C0DDF60073D3CA /* TeamPurchaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60CA120C0DDF40073D3CA /* TeamPurchaseViewController.m */; }; + B1C60CA720C0DDF60073D3CA /* TeamPurchaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60CA120C0DDF40073D3CA /* TeamPurchaseViewController.m */; }; + B1C60CA820C0DDF60073D3CA /* TeamSupportViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60CA320C0DDF50073D3CA /* TeamSupportViewController.m */; }; + B1C60CA920C0DDF60073D3CA /* TeamSupportViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C60CA320C0DDF50073D3CA /* TeamSupportViewController.m */; }; + B1C60CAB20C0FC750073D3CA /* Launch Screen_E.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1C60CAA20C0FC750073D3CA /* Launch Screen_E.xib */; }; + B1C60CAC20C0FC750073D3CA /* Launch Screen_E.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1C60CAA20C0FC750073D3CA /* Launch Screen_E.xib */; }; B1C871131EADAEE1003DACF0 /* loading_monkey@2x.gif in Resources */ = {isa = PBXBuildFile; fileRef = B1C871121EADAEE1003DACF0 /* loading_monkey@2x.gif */; }; B1C871181EADF0B1003DACF0 /* messageAT@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871141EADF0B1003DACF0 /* messageAT@3x.png */; }; B1C871191EADF0B1003DACF0 /* messageComment@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871151EADF0B1003DACF0 /* messageComment@3x.png */; }; @@ -1459,9 +1607,1523 @@ B1C871BE1EB33B37003DACF0 /* task_icon_arrow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871BD1EB33B37003DACF0 /* task_icon_arrow@3x.png */; }; B1CB8DD22047F1D200872197 /* button_tip_notice@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1CB8DD02047F1D000872197 /* button_tip_notice@2x.png */; }; B1CB8DD32047F1D200872197 /* button_tip_notice@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1CB8DD12047F1D100872197 /* button_tip_notice@3x.png */; }; + B1D5EBF420BC06CB00983FB6 /* RootTabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF3E19E240C40076D59C /* RootTabViewController.m */; }; + B1D5EBF520BC06CB00983FB6 /* WebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4ABBE91A653027004760D9 /* WebViewController.m */; }; + B1D5EBF620BC06CB00983FB6 /* ProjectTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6FB0541B5799B100B0A17B /* ProjectTag.m */; }; + B1D5EBF720BC06CB00983FB6 /* SendRewardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5D13141C0EDFE700985AEB /* SendRewardManager.m */; }; + B1D5EBF820BC06CB00983FB6 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2CE1A1EE6AF005FD721 /* UIImageView+AFNetworking.m */; }; + B1D5EBF920BC06CB00983FB6 /* ExchangeGoodsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 927AFF571BFF755200AAE593 /* ExchangeGoodsViewController.m */; }; + B1D5EBFA20BC06CB00983FB6 /* ProjectMember.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFE319E240C40076D59C /* ProjectMember.m */; }; + B1D5EBFB20BC06CB00983FB6 /* UserInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BCC1ABA773800C704F1 /* UserInfoViewController.m */; }; + B1D5EBFC20BC06CB00983FB6 /* Me_RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF3619E240C40076D59C /* Me_RootViewController.m */; }; + B1D5EBFD20BC06CB00983FB6 /* ProjectActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E787DE41B03342000F06E83 /* ProjectActivity.m */; }; + B1D5EBFE20BC06CB00983FB6 /* SWUtilityButtonTapGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8765621A22E5B40090CFB9 /* SWUtilityButtonTapGestureRecognizer.m */; }; + B1D5EBFF20BC06CB00983FB6 /* UnReadManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AFA1A3946C10021E29C /* UnReadManager.m */; }; + B1D5EC0020BC06CB00983FB6 /* ProjectFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA679121A1466A6001A0324 /* ProjectFiles.m */; }; + B1D5EC0220BC06CB00983FB6 /* MRPRCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A571B1C5DC000FD2E49 /* MRPRCommentCell.m */; }; + B1D5EC0320BC06CB00983FB6 /* AudioPlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FEC1B6D111300D2166C /* AudioPlayView.m */; }; + B1D5EC0420BC06CB00983FB6 /* NewProjectTypeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B94C1B6D1AC98CCE0000C271 /* NewProjectTypeViewController.m */; }; + B1D5EC0520BC06CB00983FB6 /* EAIntroPage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0022991B735075005308DE /* EAIntroPage.m */; }; + B1D5EC0620BC06CB00983FB6 /* PopFliterMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = D0A32BF21BF19EF100336C52 /* PopFliterMenu.m */; }; + B1D5EC0720BC06CB00983FB6 /* ProjectPublicListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D09E6AC81BF9746F009D37F8 /* ProjectPublicListCell.m */; }; + B1D5EC0820BC06CB00983FB6 /* DirectoryWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E96E7BA1A1B25D40037C098 /* DirectoryWatcher.m */; }; + B1D5EC0920BC06CB00983FB6 /* SVWebViewControllerActivityReport.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED673211A8E0ECC00DF2D1A /* SVWebViewControllerActivityReport.m */; }; + B1D5EC0A20BC06CB00983FB6 /* TeamMember.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B4A81D829C9F00EED8C6 /* TeamMember.m */; }; + B1D5EC0B20BC06CB00983FB6 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2CC1A1EE6AF005FD721 /* UIButton+AFNetworking.m */; }; + B1D5EC0C20BC06CB00983FB6 /* TopicCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439419FF7E2900F7EEB0 /* TopicCommentCell.m */; }; + B1D5EC0D20BC06CB00983FB6 /* AudioVolumeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FF51B6DAF3800D2166C /* AudioVolumeView.m */; }; + B1D5EC0E20BC06CB00983FB6 /* ZXScanCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D6D1B45400100B70936 /* ZXScanCodeViewController.m */; }; + B1D5EC0F20BC06CB00983FB6 /* LDNetTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3068351E0B781A00AEE0CE /* LDNetTimer.m */; }; + B1D5EC1020BC06CB00983FB6 /* TaskBoardsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B16EEF12209080D7005ABFD5 /* TaskBoardsViewController.m */; }; + B1D5EC1120BC06CB00983FB6 /* Tweet.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECD72EE1AAD7EC300D69AE1 /* Tweet.m */; }; + B1D5EC1220BC06CB00983FB6 /* PRDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 13DA65E71CBE668E00810CB7 /* PRDetailViewController.m */; }; + B1D5EC1320BC06CB00983FB6 /* TweetCommentMoreCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439C19FF7E2900F7EEB0 /* TweetCommentMoreCell.m */; }; + B1D5EC1420BC06CB00983FB6 /* CodeTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F0FF1A01133C009A905F /* CodeTree.m */; }; + B1D5EC1520BC06CB00983FB6 /* WikiMenuListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C3A2015D8C800F52ABA /* WikiMenuListCell.m */; }; + B1D5EC1620BC06CB00983FB6 /* EALocalCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1944146206BB89100147158 /* EALocalCodeViewController.m */; }; + B1D5EC1720BC06CB00983FB6 /* KxMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E93F2321B84243D00017916 /* KxMenu.m */; }; + B1D5EC1820BC06CB00983FB6 /* UserSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C447B81C02C63000DC1C4B /* UserSearchCell.m */; }; + B1D5EC1920BC06CB00983FB6 /* SettingEmailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E83AE7A1CF30F1A006BA3BB /* SettingEmailViewController.m */; }; + B1D5EC1A20BC06CB00983FB6 /* MemberCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6437619FF7E2900F7EEB0 /* MemberCell.m */; }; + B1D5EC1B20BC06CB00983FB6 /* JobManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AF61A3946C10021E29C /* JobManager.m */; }; + B1D5EC1C20BC06CB00983FB6 /* UIView+Frame.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8551B6C7DFD0061CAA6 /* UIView+Frame.m */; }; + B1D5EC1D20BC06CB00983FB6 /* TagsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AF81A3946C10021E29C /* TagsManager.m */; }; + B1D5EC1E20BC06CB00983FB6 /* AddCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6AAB1B1EED6A00FD2E49 /* AddCommentCell.m */; }; + B1D5EC1F20BC06CB00983FB6 /* UITTTAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D00A19E240C40076D59C /* UITTTAttributedLabel.m */; }; + B1D5EC2020BC06CB00983FB6 /* TitleValueCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438E19FF7E2900F7EEB0 /* TitleValueCell.m */; }; + B1D5EC2120BC06CB00983FB6 /* ODRefreshControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1581A6D192B00A046BD /* ODRefreshControl.m */; }; + B1D5EC2220BC06CB00983FB6 /* FileSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C447971BFECDF200DC1C4B /* FileSearchCell.m */; }; + B1D5EC2320BC06CB00983FB6 /* RDVTabBarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D09819E240C40076D59C /* RDVTabBarItem.m */; }; + B1D5EC2420BC06CB00983FB6 /* PointShopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E00228E1B721964005308DE /* PointShopCell.m */; }; + B1D5EC2520BC06CB00983FB6 /* ProjectTopicActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF818181B05C984005F974B /* ProjectTopicActivity.m */; }; + B1D5EC2620BC06CB00983FB6 /* FileChangeListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A841B1C6D8200FD2E49 /* FileChangeListCell.m */; }; + B1D5EC2720BC06CB00983FB6 /* ProjectListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BE11ABA957B00C704F1 /* ProjectListViewController.m */; }; + B1D5EC2820BC06CB00983FB6 /* EaseMarkdownTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E743E6C1A88A3CC00DADDE5 /* EaseMarkdownTextView.m */; }; + B1D5EC2920BC06CB00983FB6 /* ActivityView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A058841E0AA9AE00C1CA3F /* ActivityView.m */; }; + B1D5EC2A20BC06CB00983FB6 /* ListGroupItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFDB19E240C40076D59C /* ListGroupItem.m */; }; + B1D5EC2B20BC06CB00983FB6 /* CodingSearchDisplayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E80E93B1E02353900DE1BC6 /* CodingSearchDisplayView.m */; }; + B1D5EC2C20BC06CB00983FB6 /* MyTask_RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF3A19E240C40076D59C /* MyTask_RootViewController.m */; }; + B1D5EC2D20BC06CB00983FB6 /* SettingAccountViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DFF19E8DFE300EF3032 /* SettingAccountViewController.m */; }; + B1D5EC2E20BC06CB00983FB6 /* SWTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8765601A22E5B40090CFB9 /* SWTableViewCell.m */; }; + B1D5EC2F20BC06CB00983FB6 /* ScanBGView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E94C4E61B4A6AC700EB668A /* ScanBGView.m */; }; + B1D5EC3020BC06CB00983FB6 /* CodingVipTipManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B641E1FF2835800ACFDCC /* CodingVipTipManager.m */; }; + B1D5EC3120BC06CB00983FB6 /* CSTopicHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8651B6C7E3D0061CAA6 /* CSTopicHeaderView.m */; }; + B1D5EC3220BC06CB00983FB6 /* NJKWebViewProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBB624B1A6F526C0045DAEF /* NJKWebViewProgressView.m */; }; + B1D5EC3320BC06CB00983FB6 /* TaskActivityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6383F11B32CC7600D98648 /* TaskActivityCell.m */; }; + B1D5EC3420BC06CB00983FB6 /* ActivenessModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A0587F1E0AA97000C1CA3F /* ActivenessModel.m */; }; + B1D5EC3520BC06CB00983FB6 /* Close2FAViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E554D6D1C9804F40008686A /* Close2FAViewController.m */; }; + B1D5EC3620BC06CB00983FB6 /* NSDate+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AB81A3943E80021E29C /* NSDate+Common.m */; }; + B1D5EC3720BC06CB00983FB6 /* RDVTabBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D09419E240C40076D59C /* RDVTabBar.m */; }; + B1D5EC3820BC06CB00983FB6 /* TMCacheExtend.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD87F1B6C7F0A0061CAA6 /* TMCacheExtend.m */; }; + B1D5EC3920BC06CB00983FB6 /* CodingShareView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2BF3D81B96D0FA00A5A0A8 /* CodingShareView.m */; }; + B1D5EC3A20BC06CB00983FB6 /* DistancePickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DE719E7D58A00EF3032 /* DistancePickerView.m */; }; + B1D5EC3B20BC06CB00983FB6 /* FileVersionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE06AD1B7B241A00179F4B /* FileVersionsViewController.m */; }; + B1D5EC3C20BC06CB00983FB6 /* FileVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE06B91B7B47A700179F4B /* FileVersion.m */; }; + B1D5EC3D20BC06CB00983FB6 /* Depot.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFD519E240C40076D59C /* Depot.m */; }; + B1D5EC3E20BC06CB00983FB6 /* ReportIllegalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED6731D1A8DD38C00DF2D1A /* ReportIllegalViewController.m */; }; + B1D5EC3F20BC06CB00983FB6 /* ShopBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 923399681C0044C900F29E04 /* ShopBannerView.m */; }; + B1D5EC4020BC06CB00983FB6 /* TweetDetailCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439E19FF7E2900F7EEB0 /* TweetDetailCell.m */; }; + B1D5EC4120BC06CB00983FB6 /* ProjectTransferSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2ECEAC1BD4D51000CB6EC9 /* ProjectTransferSettingViewController.m */; }; + B1D5EC4220BC06CB00983FB6 /* UIMessageInputView_Add.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EABD2561AD3CAAC005E515F /* UIMessageInputView_Add.m */; }; + B1D5EC4320BC06CB00983FB6 /* UIMessageInputView_Voice.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FCD1B6CF5D500D2166C /* UIMessageInputView_Voice.m */; }; + B1D5EC4420BC06CB00983FB6 /* UIScrollView+SVInfiniteScrolling.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F0DF1A0098BA009A905F /* UIScrollView+SVInfiniteScrolling.m */; }; + B1D5EC4520BC06CB00983FB6 /* PointRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0022821B72095E005308DE /* PointRecord.m */; }; + B1D5EC4620BC06CB00983FB6 /* ShopGoodsCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 927AFF3D1BFF608700AAE593 /* ShopGoodsCCell.m */; }; + B1D5EC4720BC06CB00983FB6 /* FolderToMoveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E15C7CF1A26D2F000FB8DAD /* FolderToMoveViewController.m */; }; + B1D5EC4820BC06CB00983FB6 /* Shop.m in Sources */ = {isa = PBXBuildFile; fileRef = 927AFF3A1BFF2EB300AAE593 /* Shop.m */; }; + B1D5EC4920BC06CB00983FB6 /* CategorySearchBar.m in Sources */ = {isa = PBXBuildFile; fileRef = D000E0491BFC45CF00A33C2B /* CategorySearchBar.m */; }; + B1D5EC4A20BC06CB00983FB6 /* UISearchBar+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE5481D1AE7B7CA00A92306 /* UISearchBar+Common.m */; }; + B1D5EC4B20BC06CB00983FB6 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F14D1A6D192B00A046BD /* UIImage+GIF.m */; }; + B1D5EC4C20BC06CB00983FB6 /* MessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6437819FF7E2900F7EEB0 /* MessageCell.m */; }; + B1D5EC4D20BC06CB00983FB6 /* SettingMineInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3E0119E8DFE300EF3032 /* SettingMineInfoViewController.m */; }; + B1D5EC4E20BC06CB00983FB6 /* TweetSendImageCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6436219FF7E2900F7EEB0 /* TweetSendImageCCell.m */; }; + B1D5EC4F20BC06CB00983FB6 /* OTPGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D521B45295D00B70936 /* OTPGenerator.m */; }; + B1D5EC5020BC06CB00983FB6 /* AddUserViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EABB20019EE7A85009EB53A /* AddUserViewController.m */; }; + B1D5EC5120BC06CB00983FB6 /* TaskResourceReferenceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB52F411C7C480200B5EBEA /* TaskResourceReferenceCell.m */; }; + B1D5EC5220BC06CB00983FB6 /* UIButton+Bootstrap.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AC41A3943E80021E29C /* UIButton+Bootstrap.m */; }; + B1D5EC5320BC06CB00983FB6 /* NSDate+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E64ED8819EE484A006E99DA /* NSDate+Helper.m */; }; + B1D5EC5420BC06CB00983FB6 /* MJPhotoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D07519E240C40076D59C /* MJPhotoView.m */; }; + B1D5EC5520BC06CB00983FB6 /* CodeListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F1091A021053009A905F /* CodeListViewController.m */; }; + B1D5EC5620BC06CB00983FB6 /* NProjectItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECF702B1B1704C5000280FF /* NProjectItemCell.m */; }; + B1D5EC5720BC06CB00983FB6 /* EACodeReleases.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EC6206397F500E9BAD1 /* EACodeReleases.m */; }; + B1D5EC5820BC06CB00983FB6 /* TeamMembersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B4AE1D82B28B00EED8C6 /* TeamMembersViewController.m */; }; + B1D5EC5920BC06CB00983FB6 /* ActionSheetDatePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DDF19E7D58A00EF3032 /* ActionSheetDatePicker.m */; }; + B1D5EC5A20BC06CB00983FB6 /* Input_OnlyText_Cell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6436F19FF7E2900F7EEB0 /* Input_OnlyText_Cell.m */; }; + B1D5EC5B20BC06CB00983FB6 /* FileListUploadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E07D3071A4A96EA009EDDF2 /* FileListUploadCell.m */; }; + B1D5EC5C20BC06CB00983FB6 /* ProjectServiceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6CBE5B1D8FC7A500644086 /* ProjectServiceInfo.m */; }; + B1D5EC5D20BC06CB00983FB6 /* ProjectListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2221B5D02CA004284F1 /* ProjectListView.m */; }; + B1D5EC5E20BC06CB00983FB6 /* EAIntroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E00229B1B735075005308DE /* EAIntroView.m */; }; + B1D5EC5F20BC06CB00983FB6 /* ProjectFolders.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA679151A1496A7001A0324 /* ProjectFolders.m */; }; + B1D5EC6020BC06CB00983FB6 /* ProjectTagLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2351B5DF568004284F1 /* ProjectTagLabel.m */; }; + B1D5EC6120BC06CB00983FB6 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F13A1A6D192B00A046BD /* NSData+ImageContentType.m */; }; + B1D5EC6220BC06CB00983FB6 /* UIColor+MobileColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D571B45295D00B70936 /* UIColor+MobileColors.m */; }; + B1D5EC6320BC06CB00983FB6 /* MJPhotoProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D07119E240C40076D59C /* MJPhotoProgressView.m */; }; + B1D5EC6420BC06CB00983FB6 /* EADeviceToServerLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3068281E0B781A00AEE0CE /* EADeviceToServerLog.m */; }; + B1D5EC6520BC06CB00983FB6 /* MRPRFilesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A631B1C65F700FD2E49 /* MRPRFilesViewController.m */; }; + B1D5EC6620BC06CB00983FB6 /* PHAsset+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64811FFC73A900ACFDCC /* PHAsset+Common.m */; }; + B1D5EC6720BC06CB00983FB6 /* FileListFolderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA6791C1A15A943001A0324 /* FileListFolderCell.m */; }; + B1D5EC6820BC06CB00983FB6 /* Users.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFF919E240C40076D59C /* Users.m */; }; + B1D5EC6920BC06CB00983FB6 /* UserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF643A619FF7E2900F7EEB0 /* UserCell.m */; }; + B1D5EC6A20BC06CB00983FB6 /* PointRecordsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0022881B721516005308DE /* PointRecordsViewController.m */; }; + B1D5EC6B20BC06CB00983FB6 /* OTPAuthClock.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D721B454D5000B70936 /* OTPAuthClock.m */; }; + B1D5EC6C20BC06CB00983FB6 /* TOTPGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D541B45295D00B70936 /* TOTPGenerator.m */; }; + B1D5EC6D20BC06CB00983FB6 /* CSHotTopicView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8591B6C7E3D0061CAA6 /* CSHotTopicView.m */; }; + B1D5EC6E20BC06CB00983FB6 /* CodingTip.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFCD19E240C40076D59C /* CodingTip.m */; }; + B1D5EC6F20BC06CB00983FB6 /* NProjectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2719B71AB02F31006AE214 /* NProjectViewController.m */; }; + B1D5EC7020BC06CB00983FB6 /* SettingPhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E74EC001C311B6300EC0E1B /* SettingPhoneViewController.m */; }; + B1D5EC7120BC06CB00983FB6 /* PrivateMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFDF19E240C40076D59C /* PrivateMessage.m */; }; + B1D5EC7220BC06CB00983FB6 /* ProjectTaskListViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6437E19FF7E2900F7EEB0 /* ProjectTaskListViewCell.m */; }; + B1D5EC7320BC06CB00983FB6 /* UIDevice+Info.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8ACA1A3943E80021E29C /* UIDevice+Info.m */; }; + B1D5EC7420BC06CB00983FB6 /* UIMessageInputView_Media.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EABD25C1AD3CBB9005E515F /* UIMessageInputView_Media.m */; }; + B1D5EC7520BC06CB00983FB6 /* QBAlbumCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64681FFB61AD00ACFDCC /* QBAlbumCell.m */; }; + B1D5EC7620BC06CB00983FB6 /* FileActivityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE06B61B7B330900179F4B /* FileActivityCell.m */; }; + B1D5EC7720BC06CB00983FB6 /* UIAlertView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2CA1A1EE6AF005FD721 /* UIAlertView+AFNetworking.m */; }; + B1D5EC7820BC06CB00983FB6 /* WikiHistoryListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C442015D92500F52ABA /* WikiHistoryListViewController.m */; }; + B1D5EC7920BC06CB00983FB6 /* CommitCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6AAE1B2047DE00FD2E49 /* CommitCommentCell.m */; }; + B1D5EC7A20BC06CB00983FB6 /* ProjectAboutOthersListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D066BB3F1BF623DD005AB5D6 /* ProjectAboutOthersListCell.m */; }; + B1D5EC7B20BC06CB00983FB6 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1461A6D192B00A046BD /* SDWebImageManager.m */; }; + B1D5EC7C20BC06CB00983FB6 /* amrFileCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FD21B6D0F3E00D2166C /* amrFileCodec.m */; }; + B1D5EC7D20BC06CB00983FB6 /* SettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3E0519E8DFE300EF3032 /* SettingViewController.m */; }; + B1D5EC7E20BC06CB00983FB6 /* ActivityMonScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A058821E0AA9AE00C1CA3F /* ActivityMonScrollView.m */; }; + B1D5EC7F20BC06CB00983FB6 /* ActionSheetStringPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DE519E7D58A00EF3032 /* ActionSheetStringPicker.m */; }; + B1D5EC8020BC06CB00983FB6 /* LeftImage_LRTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6437419FF7E2900F7EEB0 /* LeftImage_LRTextCell.m */; }; + B1D5EC8120BC06CB00983FB6 /* ProjectSettingEntranceController.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED4D2090B223004A6E8A /* ProjectSettingEntranceController.m */; }; + B1D5EC8220BC06CB00983FB6 /* UINavigationBar+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C4B2019B29800F52ABA /* UINavigationBar+Common.m */; }; + B1D5EC8320BC06CB00983FB6 /* ShopOrderListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 926C043D1C01A212004937D8 /* ShopOrderListView.m */; }; + B1D5EC8420BC06CB00983FB6 /* SWActionSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DE919E7D58A00EF3032 /* SWActionSheet.m */; }; + B1D5EC8520BC06CB00983FB6 /* ProjectInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E1A22811AB1729700CFC14F /* ProjectInfoCell.m */; }; + B1D5EC8620BC06CB00983FB6 /* Task.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFEF19E240C40076D59C /* Task.m */; }; + B1D5EC8720BC06CB00983FB6 /* TweetSendDetailLoctionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A0519E01ABA918100551B61 /* TweetSendDetailLoctionCell.m */; }; + B1D5EC8820BC06CB00983FB6 /* CannotLoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5C06EA1AC4009100F427C5 /* CannotLoginViewController.m */; }; + B1D5EC8920BC06CB00983FB6 /* ShopViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 927AFF371BFF1CC200AAE593 /* ShopViewController.m */; }; + B1D5EC8A20BC06CB00983FB6 /* Reviewer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1309BA011CA2EF370034C7A3 /* Reviewer.m */; }; + B1D5EC8B20BC06CB00983FB6 /* EALocalCodeListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1944143206BB87F00147158 /* EALocalCodeListViewController.m */; }; + B1D5EC8C20BC06CB00983FB6 /* AMPopTip+Exit.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64051FE900D400ACFDCC /* AMPopTip+Exit.m */; }; + B1D5EC8D20BC06CB00983FB6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF1619E240C40076D59C /* AppDelegate.m */; }; + B1D5EC8E20BC06CB00983FB6 /* AudioAmrUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FD41B6D0F3E00D2166C /* AudioAmrUtil.m */; }; + B1D5EC8F20BC06CB00983FB6 /* Coding_NetAPIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AF01A3946C10021E29C /* Coding_NetAPIManager.m */; }; + B1D5EC9020BC06CB00983FB6 /* FileListFileCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F0F91A00F3F3009A905F /* FileListFileCell.m */; }; + B1D5EC9120BC06CB00983FB6 /* TipsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF4C19E240C40076D59C /* TipsViewController.m */; }; + B1D5EC9220BC06CB00983FB6 /* ReviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 134E1B981CA41217002A3E0D /* ReviewCell.m */; }; + B1D5EC9320BC06CB00983FB6 /* TopicHotkeyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8891B6C7F5B0061CAA6 /* TopicHotkeyView.m */; }; + B1D5EC9420BC06CB00983FB6 /* UIPlaceHolderTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D00619E240C40076D59C /* UIPlaceHolderTextView.m */; }; + B1D5EC9520BC06CB00983FB6 /* TopicSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C4481A1C034C3F00DC1C4B /* TopicSearchCell.m */; }; + B1D5EC9620BC06CB00983FB6 /* ProjectCommitsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A6C1B1C68D700FD2E49 /* ProjectCommitsViewController.m */; }; + B1D5EC9720BC06CB00983FB6 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2D11A1EE6AF005FD721 /* UIProgressView+AFNetworking.m */; }; + B1D5EC9820BC06CB00983FB6 /* UserActiveGraphCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A0588E1E0AA9D600C1CA3F /* UserActiveGraphCell.m */; }; + B1D5EC9920BC06CB00983FB6 /* NSURL+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB0C1FF1A807ED00042FC4F /* NSURL+Common.m */; }; + B1D5EC9A20BC06CB00983FB6 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2D31A1EE6AF005FD721 /* UIRefreshControl+AFNetworking.m */; }; + B1D5EC9B20BC06CB00983FB6 /* WikiHistoryCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C3B2015D8C800F52ABA /* WikiHistoryCell.m */; }; + B1D5EC9C20BC06CB00983FB6 /* ProjectCodeListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A21E1B5D02CA004284F1 /* ProjectCodeListView.m */; }; + B1D5EC9D20BC06CB00983FB6 /* LocalFilesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF374181BB1255E00DDA662 /* LocalFilesViewController.m */; }; + B1D5EC9E20BC06CB00983FB6 /* SettingTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438019FF7E2900F7EEB0 /* SettingTextCell.m */; }; + B1D5EC9F20BC06CB00983FB6 /* LDNetConnect.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E30682D1E0B781A00AEE0CE /* LDNetConnect.m */; }; + B1D5ECA020BC06CB00983FB6 /* MRDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 136A6DBE1CAF6BAC004AA983 /* MRDetailViewController.m */; }; + B1D5ECA120BC06CB00983FB6 /* UITableView+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AD21A3943E80021E29C /* UITableView+Common.m */; }; + B1D5ECA220BC06CB00983FB6 /* JDStatusBarNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BC31ABA754600C704F1 /* JDStatusBarNotification.m */; }; + B1D5ECA320BC06CB00983FB6 /* RFKeyboardToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6C411C1A846AC30098DC17 /* RFKeyboardToolbar.m */; }; + B1D5ECA420BC06CB00983FB6 /* CSSearchDisplayVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8771B6C7F0A0061CAA6 /* CSSearchDisplayVC.m */; }; + B1D5ECA520BC06CB00983FB6 /* CodeBranchOrTag.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E38CF611A7B7C99005536C0 /* CodeBranchOrTag.m */; }; + B1D5ECA620BC06CB00983FB6 /* EasePageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED20A771AFC7C8B00C63498 /* EasePageViewController.m */; }; + B1D5ECA720BC06CB00983FB6 /* ObjcRuntime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D01219E240C40076D59C /* ObjcRuntime.m */; }; + B1D5ECA820BC06CB00983FB6 /* UIVerticalAlignmentLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E03ACA51A5D2060002B000B /* UIVerticalAlignmentLabel.m */; }; + B1D5ECA920BC06CB00983FB6 /* TaskSelectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A0589D1E0AAA8800C1CA3F /* TaskSelectionCell.m */; }; + B1D5ECAA20BC06CB00983FB6 /* EANetTraceRoute.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E30682A1E0B781A00AEE0CE /* EANetTraceRoute.m */; }; + B1D5ECAB20BC06CB00983FB6 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2C11A1EE6AF005FD721 /* AFURLRequestSerialization.m */; }; + B1D5ECAC20BC06CB00983FB6 /* UIUnderlinedButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D00C19E240C40076D59C /* UIUnderlinedButton.m */; }; + B1D5ECAD20BC06CB00983FB6 /* TaskCommentCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5F39011AC951060010515D /* TaskCommentCCell.m */; }; + B1D5ECAE20BC06CB00983FB6 /* AutoSlideScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E095A5F1B6909F9008DC439 /* AutoSlideScrollView.m */; }; + B1D5ECAF20BC06CB00983FB6 /* LocalFoldersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF374151BB1254700DDA662 /* LocalFoldersViewController.m */; }; + B1D5ECB020BC06CB00983FB6 /* LDNetGetAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3068311E0B781A00AEE0CE /* LDNetGetAddress.m */; }; + B1D5ECB120BC06CB00983FB6 /* UIViewController+DownMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AB61A3943E80021E29C /* UIViewController+DownMenu.m */; }; + B1D5ECB220BC06CB00983FB6 /* PopMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E94C4FD1B4D2B9300EB668A /* PopMenu.m */; }; + B1D5ECB320BC06CB00983FB6 /* LikersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF2719E240C40076D59C /* LikersViewController.m */; }; + B1D5ECB420BC06CB00983FB6 /* TitleValueMoreCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439019FF7E2900F7EEB0 /* TitleValueMoreCell.m */; }; + B1D5ECB520BC06CB00983FB6 /* CSSearchModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8791B6C7F0A0061CAA6 /* CSSearchModel.m */; }; + B1D5ECB620BC06CB00983FB6 /* WikiHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C402015D8F700F52ABA /* WikiHeaderView.m */; }; + B1D5ECB720BC06CB00983FB6 /* TaskCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438419FF7E2900F7EEB0 /* TaskCommentCell.m */; }; + B1D5ECB820BC06CB00983FB6 /* AGEmojiPageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E97CE461A0A2DF8006F9AD7 /* AGEmojiPageView.m */; }; + B1D5ECB920BC06CB00983FB6 /* ASProgressPopUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E9113A11A1C426000AC9431 /* ASProgressPopUpView.m */; }; + B1D5ECBA20BC06CB00983FB6 /* EditLabelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3878361AE293D50078D5DE /* EditLabelViewController.m */; }; + B1D5ECBB20BC06CB00983FB6 /* AddMDCommentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A661B1C686F00FD2E49 /* AddMDCommentViewController.m */; }; + B1D5ECBC20BC06CB00983FB6 /* Coding_FileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AEE1A3946C10021E29C /* Coding_FileManager.m */; }; + B1D5ECBD20BC06CB00983FB6 /* UIMessageInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EABD2531AD3CA7E005E515F /* UIMessageInputView.m */; }; + B1D5ECBE20BC06CB00983FB6 /* AudioManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FD61B6D0F3E00D2166C /* AudioManager.m */; }; + B1D5ECBF20BC06CB00983FB6 /* MRPRPreInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 136A6DBB1CAF52F2004AA983 /* MRPRPreInfo.m */; }; + B1D5ECC020BC06CB00983FB6 /* NSMutableString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E72F82C1B144778001B6CE6 /* NSMutableString+Common.m */; }; + B1D5ECC120BC06CB00983FB6 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2527191C327FAE0032A7F4 /* UIViewController+BackButtonHandler.m */; }; + B1D5ECC220BC06CB00983FB6 /* CountryCodeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBD7FB31CE4833D00B3AF49 /* CountryCodeCell.m */; }; + B1D5ECC320BC06CB00983FB6 /* RATaskBoardListListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED67209420CD004A6E8A /* RATaskBoardListListViewController.m */; }; + B1D5ECC420BC06CB00983FB6 /* DynamicActivityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 13C8FE7E1CA79B90001E30FA /* DynamicActivityCell.m */; }; + B1D5ECC520BC06CB00983FB6 /* MRPRDetailCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A781B1C6C7800FD2E49 /* MRPRDetailCell.m */; }; + B1D5ECC620BC06CB00983FB6 /* TopicContentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439619FF7E2900F7EEB0 /* TopicContentCell.m */; }; + B1D5ECC720BC06CB00983FB6 /* ForkTreeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0B9A361BAD377600D57D54 /* ForkTreeCell.m */; }; + B1D5ECC820BC06CB00983FB6 /* AMPopTip.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B63FD1FE900D400ACFDCC /* AMPopTip.m */; }; + B1D5ECC920BC06CB00983FB6 /* MRPRAcceptViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A691B1C688200FD2E49 /* MRPRAcceptViewController.m */; }; + B1D5ECCA20BC06CB00983FB6 /* UIView+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AD41A3943E80021E29C /* UIView+Common.m */; }; + B1D5ECCB20BC06CB00983FB6 /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1441A6D192B00A046BD /* SDWebImageDownloaderOperation.m */; }; + B1D5ECCC20BC06CB00983FB6 /* QBAssetsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B646D1FFB61AD00ACFDCC /* QBAssetsViewController.m */; }; + B1D5ECCD20BC06CB00983FB6 /* UserInfoIconCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BD41ABA776500C704F1 /* UserInfoIconCell.m */; }; + B1D5ECCE20BC06CB00983FB6 /* ShopOderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 923399771C00BFC700F29E04 /* ShopOderCell.m */; }; + B1D5ECCF20BC06CB00983FB6 /* SettingPasswordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3E0319E8DFE300EF3032 /* SettingPasswordViewController.m */; }; + B1D5ECD020BC06CB00983FB6 /* FileCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE06B31B7B325600179F4B /* FileCommentCell.m */; }; + B1D5ECD120BC06CB00983FB6 /* ASPopUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E91139F1A1C426000AC9431 /* ASPopUpView.m */; }; + B1D5ECD220BC06CB00983FB6 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2C81A1EE6AF005FD721 /* UIActivityIndicatorView+AFNetworking.m */; }; + B1D5ECD320BC06CB00983FB6 /* ProjectCodeListSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAAD05E1E545516008AA957 /* ProjectCodeListSearchCell.m */; }; + B1D5ECD420BC06CB00983FB6 /* TweetSendCreateLocationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A782FDB1AB5B78B00E96661 /* TweetSendCreateLocationCell.m */; }; + B1D5ECD520BC06CB00983FB6 /* EaseStartView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E07D3101A4D1484009EDDF2 /* EaseStartView.m */; }; + B1D5ECD620BC06CB00983FB6 /* ProjectTopicListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2281B5D02CA004284F1 /* ProjectTopicListView.m */; }; + B1D5ECD720BC06CB00983FB6 /* Message_RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF3819E240C40076D59C /* Message_RootViewController.m */; }; + B1D5ECD820BC06CB00983FB6 /* LDSimplePing.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3068391E0B781A00AEE0CE /* LDSimplePing.m */; }; + B1D5ECD920BC06CB00983FB6 /* HelpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E44DCF91D81486600E7F9AF /* HelpViewController.m */; }; + B1D5ECDA20BC06CB00983FB6 /* CSSearchVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD87B1B6C7F0A0061CAA6 /* CSSearchVC.m */; }; + B1D5ECDB20BC06CB00983FB6 /* FunctionTipsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EC461AC1B39084100D08970 /* FunctionTipsManager.m */; }; + B1D5ECDC20BC06CB00983FB6 /* TweetSendCreateLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A782FD61AB5B69200E96661 /* TweetSendCreateLocationViewController.m */; }; + B1D5ECDD20BC06CB00983FB6 /* Commits.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6AB11B21A96100FD2E49 /* Commits.m */; }; + B1D5ECDE20BC06CB00983FB6 /* QcTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFEB19E240C40076D59C /* QcTask.m */; }; + B1D5ECDF20BC06CB00983FB6 /* FileViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E35A99E1A3EC47E00CE35F1 /* FileViewController.m */; }; + B1D5ECE020BC06CB00983FB6 /* UIImage+WebP.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF818211B09D43D005F974B /* UIImage+WebP.m */; }; + B1D5ECE120BC06CB00983FB6 /* TweetSendLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A6E6BAC1AB08540004C0107 /* TweetSendLocation.m */; }; + B1D5ECE220BC06CB00983FB6 /* CodingNetAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AF21A3946C10021E29C /* CodingNetAPIClient.m */; }; + B1D5ECE320BC06CB00983FB6 /* ShopOrderTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 927AFF5A1BFF772A00AAE593 /* ShopOrderTextFieldCell.m */; }; + B1D5ECE420BC06CB00983FB6 /* ScreenCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A0589A1E0AAA7200C1CA3F /* ScreenCell.m */; }; + B1D5ECE520BC06CB00983FB6 /* ConversationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6436719FF7E2900F7EEB0 /* ConversationCell.m */; }; + B1D5ECE620BC06CB00983FB6 /* TeamListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B4991D8295EA00EED8C6 /* TeamListViewController.m */; }; + B1D5ECE720BC06CB00983FB6 /* TweetSendImagesCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF643A219FF7E2900F7EEB0 /* TweetSendImagesCell.m */; }; + B1D5ECE820BC06CB00983FB6 /* WikiEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C432015D92500F52ABA /* WikiEditViewController.m */; }; + B1D5ECE920BC06CB00983FB6 /* MRPRListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECF704B1B1876CB000280FF /* MRPRListCell.m */; }; + B1D5ECEA20BC06CB00983FB6 /* TopicPreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A38784E1AE557700078D5DE /* TopicPreviewCell.m */; }; + B1D5ECEB20BC06CB00983FB6 /* NSString+Emojize.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED0D87419FBA6EA00FBA818 /* NSString+Emojize.m */; }; + B1D5ECEC20BC06CB00983FB6 /* EaseGitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E1A228A1AB1844F00CFC14F /* EaseGitButton.m */; }; + B1D5ECED20BC06CB00983FB6 /* ProjectListTaCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BE41ABAB1D700C704F1 /* ProjectListTaCell.m */; }; + B1D5ECEE20BC06CB00983FB6 /* UIImageView+MJWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EE72BE319E3F2E8002C11D9 /* UIImageView+MJWebCache.m */; }; + B1D5ECEF20BC06CB00983FB6 /* Commit.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFD319E240C40076D59C /* Commit.m */; }; + B1D5ECF020BC06CB00983FB6 /* FileVersionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE06C71B7C9EFF00179F4B /* FileVersionCell.m */; }; + B1D5ECF120BC06CB00983FB6 /* TeamListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B4A21D82980F00EED8C6 /* TeamListCell.m */; }; + B1D5ECF220BC06CB00983FB6 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1551A6D192B00A046BD /* UIView+WebCacheOperation.m */; }; + B1D5ECF320BC06CB00983FB6 /* TweetSendTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF643A419FF7E2900F7EEB0 /* TweetSendTextCell.m */; }; + B1D5ECF420BC06CB00983FB6 /* XTSegmentControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D0CC19E240C40076D59C /* XTSegmentControl.m */; }; + B1D5ECF520BC06CB00983FB6 /* YLGIFImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6D71861A75F00E005AD988 /* YLGIFImage.m */; }; + B1D5ECF620BC06CB00983FB6 /* CountryCodeListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBD7FAE1CE4827A00B3AF49 /* CountryCodeListViewController.m */; }; + B1D5ECF720BC06CB00983FB6 /* AllSearchDisplayVC.m in Sources */ = {isa = PBXBuildFile; fileRef = D09AA5B61BFDA38D008CA9EB /* AllSearchDisplayVC.m */; }; + B1D5ECF820BC06CB00983FB6 /* TweetSendLocationDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A27A05C1AB5A13B00067833 /* TweetSendLocationDetailViewController.m */; }; + B1D5ECF920BC06CB00983FB6 /* EATerminalViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1816062202063440022B4C6 /* EATerminalViewController.m */; }; + B1D5ECFA20BC06CB00983FB6 /* TweetSendMapAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AB591AF1AB6D6BE0076C454 /* TweetSendMapAnnotation.m */; }; + B1D5ECFB20BC06CB00983FB6 /* MRPR.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECF70481B185BCC000280FF /* MRPR.m */; }; + B1D5ECFC20BC06CB00983FB6 /* EaseUserInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A058911E0AA9FB00C1CA3F /* EaseUserInfoCell.m */; }; + B1D5ECFD20BC06CB00983FB6 /* CodingBannersView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E095A5B1B6907AA008DC439 /* CodingBannersView.m */; }; + B1D5ECFE20BC06CB00983FB6 /* OTPListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D651B45306900B70936 /* OTPListViewController.m */; }; + B1D5ECFF20BC06CB00983FB6 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1531A6D192B00A046BD /* UIImageView+WebCache.m */; }; + B1D5ED0020BC06CB00983FB6 /* InputOnlyTextPlainCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6437219FF7E2900F7EEB0 /* InputOnlyTextPlainCell.m */; }; + B1D5ED0120BC06CB00983FB6 /* NSTimer+Addition.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E095A631B6909F9008DC439 /* NSTimer+Addition.m */; }; + B1D5ED0220BC06CB00983FB6 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2B71A1EE6AF005FD721 /* AFURLSessionManager.m */; }; + B1D5ED0320BC06CB00983FB6 /* MeRootServiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E87DDFF1D813B4500D1B5B1 /* MeRootServiceCell.m */; }; + B1D5ED0420BC06CB00983FB6 /* ActionSheetLocalePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DE319E7D58A00EF3032 /* ActionSheetLocalePicker.m */; }; + B1D5ED0520BC06CB00983FB6 /* UIViewController+Swizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AD61A3943E80021E29C /* UIViewController+Swizzle.m */; }; + B1D5ED0620BC06CB00983FB6 /* PublicSearchModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D09AA5B91BFDBA4B008CA9EB /* PublicSearchModel.m */; }; + B1D5ED0720BC06CB00983FB6 /* MJPhotoLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D06F19E240C40076D59C /* MJPhotoLoadingView.m */; }; + B1D5ED0820BC06CB00983FB6 /* FileEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E753D431B8AFDEC003A00B9 /* FileEditViewController.m */; }; + B1D5ED0920BC06CB00983FB6 /* TopicDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF5019E240C40076D59C /* TopicDetailViewController.m */; }; + B1D5ED0A20BC06CB00983FB6 /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1511A6D192B00A046BD /* UIImageView+HighlightedWebCache.m */; }; + B1D5ED0B20BC06CB00983FB6 /* Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = E7A0469F1A47279E00528C12 /* Helper.m */; }; + B1D5ED0C20BC06CB00983FB6 /* PointTopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E00228B1B721955005308DE /* PointTopCell.m */; }; + B1D5ED0D20BC06CB00983FB6 /* TeamMemberCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B4AB1D829E1200EED8C6 /* TeamMemberCell.m */; }; + B1D5ED0E20BC06CB00983FB6 /* ReviewerListController.m in Sources */ = {isa = PBXBuildFile; fileRef = 13972E2B1CA616AC00489EBA /* ReviewerListController.m */; }; + B1D5ED0F20BC06CB00983FB6 /* UserInfoDetailTagCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BD21ABA776500C704F1 /* UserInfoDetailTagCell.m */; }; + B1D5ED1020BC06CB00983FB6 /* SWUtilityButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8765641A22E5B40090CFB9 /* SWUtilityButtonView.m */; }; + B1D5ED1120BC06CB00983FB6 /* VoiceMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FFB1B6E001300D2166C /* VoiceMedia.m */; }; + B1D5ED1220BC06CB00983FB6 /* TaskComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EABE3C719F10D2400A17784 /* TaskComment.m */; }; + B1D5ED1320BC06CB00983FB6 /* EACodeReleaseTopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EE62064FC6100E9BAD1 /* EACodeReleaseTopCell.m */; }; + B1D5ED1420BC06CB00983FB6 /* EAPayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1BCB88D1FCE61D60098B87B /* EAPayViewController.m */; }; + B1D5ED1520BC06CB00983FB6 /* AGEmojiKeyBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E97CE441A0A2DF8006F9AD7 /* AGEmojiKeyBoardView.m */; }; + B1D5ED1620BC06CB00983FB6 /* RKSwipeBetweenViewControllers.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E53EB511AFA03990034FE1C /* RKSwipeBetweenViewControllers.m */; }; + B1D5ED1720BC06CB00983FB6 /* EditTopicViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF1F19E240C40076D59C /* EditTopicViewController.m */; }; + B1D5ED1820BC06CB00983FB6 /* GlowImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E94C4F71B4D2B9300EB668A /* GlowImageView.m */; }; + B1D5ED1920BC06CB00983FB6 /* ProjectToChooseListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E24B2671B43D33F004D7989 /* ProjectToChooseListViewController.m */; }; + B1D5ED1A20BC06CB00983FB6 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F13E1A6D192B00A046BD /* SDWebImageCompat.m */; }; + B1D5ED1B20BC06CB00983FB6 /* EACodeReleaseBodyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EE92064FC7300E9BAD1 /* EACodeReleaseBodyCell.m */; }; + B1D5ED1C20BC06CB00983FB6 /* Project_RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF3C19E240C40076D59C /* Project_RootViewController.m */; }; + B1D5ED1D20BC06CB00983FB6 /* EaseGitButtonsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECF703F1B180740000280FF /* EaseGitButtonsView.m */; }; + B1D5ED1E20BC06CB00983FB6 /* SettingTagsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF83F8919E92AA500E86DE7 /* SettingTagsViewController.m */; }; + B1D5ED1F20BC06CB00983FB6 /* EALocalCodeListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1944149206BB8BB00147158 /* EALocalCodeListCell.m */; }; + B1D5ED2020BC06CB00983FB6 /* ValueListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF643A819FF7E2900F7EEB0 /* ValueListCell.m */; }; + B1D5ED2120BC06CB00983FB6 /* TaskResourceReferenceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB52F3E1C7C464400B5EBEA /* TaskResourceReferenceViewController.m */; }; + B1D5ED2220BC06CB00983FB6 /* SVModalWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E217EF91A70EDC700F6DF88 /* SVModalWebViewController.m */; }; + B1D5ED2320BC06CB00983FB6 /* ShopSwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B19D4EF01F710EF900C598F3 /* ShopSwitchCell.m */; }; + B1D5ED2520BC06CB00983FB6 /* IntroductionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF17E5E1B3AB10F003CDD2D /* IntroductionViewController.m */; }; + B1D5ED2620BC06CB00983FB6 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1491A6D192B00A046BD /* SDWebImagePrefetcher.m */; }; + B1D5ED2720BC06CB00983FB6 /* FileChanges.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A931B1D851E00FD2E49 /* FileChanges.m */; }; + B1D5ED2820BC06CB00983FB6 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2D51A1EE6AF005FD721 /* UIWebView+AFNetworking.m */; }; + B1D5ED2920BC06CB00983FB6 /* EAWiki.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C342015D87800F52ABA /* EAWiki.m */; }; + B1D5ED2A20BC06CB00983FB6 /* WikiMenuListView.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C362015D89A00F52ABA /* WikiMenuListView.m */; }; + B1D5ED2B20BC06CB00983FB6 /* EACodeRelease.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EC3206397E000E9BAD1 /* EACodeRelease.m */; }; + B1D5ED2C20BC06CB00983FB6 /* ForkTreeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0B9A331BAC1CD100D57D54 /* ForkTreeViewController.m */; }; + B1D5ED2D20BC06CB00983FB6 /* CommitContentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A7E1B1C6D1E00FD2E49 /* CommitContentCell.m */; }; + B1D5ED2E20BC06CB00983FB6 /* ProjectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF3119E240C40076D59C /* ProjectViewController.m */; }; + B1D5ED2F20BC06CB00983FB6 /* TagCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6435A19FF7E2900F7EEB0 /* TagCCell.m */; }; + B1D5ED3020BC06CB00983FB6 /* UserInfoDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BDB1ABA79AB00C704F1 /* UserInfoDetailViewController.m */; }; + B1D5ED3120BC06CB00983FB6 /* ProjectAdvancedSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9A00D841ACA3A55008BA008 /* ProjectAdvancedSettingViewController.m */; }; + B1D5ED3220BC06CB00983FB6 /* SWLongPressGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E87655E1A22E5B40090CFB9 /* SWLongPressGestureRecognizer.m */; }; + B1D5ED3320BC06CB00983FB6 /* QBAlbumsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B646B1FFB61AD00ACFDCC /* QBAlbumsViewController.m */; }; + B1D5ED3420BC06CB00983FB6 /* TweetSendLocaitonMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AB591AB1AB6D2F60076C454 /* TweetSendLocaitonMapViewController.m */; }; + B1D5ED3520BC06CB00983FB6 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F14B1A6D192B00A046BD /* UIButton+WebCache.m */; }; + B1D5ED3620BC06CB00983FB6 /* EABoardTaskListBlankView.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED6220935524004A6E8A /* EABoardTaskListBlankView.m */; }; + B1D5ED3720BC06CB00983FB6 /* SDWebImageManager+MJ.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EE72BE119E3F2E8002C11D9 /* SDWebImageManager+MJ.m */; }; + B1D5ED3820BC06CB00983FB6 /* TopicListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A38784B1AE36EF00078D5DE /* TopicListView.m */; }; + B1D5ED3920BC06CB00983FB6 /* AbstractActionSheetPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DDA19E7D58A00EF3032 /* AbstractActionSheetPicker.m */; }; + B1D5ED3A20BC06CB00983FB6 /* CodingTips.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFCF19E240C40076D59C /* CodingTips.m */; }; + B1D5ED3B20BC06CB00983FB6 /* MRPRCommentCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A5A1B1C5DDF00FD2E49 /* MRPRCommentCCell.m */; }; + B1D5ED3C20BC06CB00983FB6 /* AMPopTip+Animation.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B63FB1FE900D400ACFDCC /* AMPopTip+Animation.m */; }; + B1D5ED3D20BC06CB00983FB6 /* TaskCommentTopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438619FF7E2900F7EEB0 /* TaskCommentTopCell.m */; }; + B1D5ED3E20BC06CB00983FB6 /* MRPRCommitsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A601B1C65C100FD2E49 /* MRPRCommitsViewController.m */; }; + B1D5ED3F20BC06CB00983FB6 /* EABasePageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EBE2063951000E9BAD1 /* EABasePageModel.m */; }; + B1D5ED4020BC06CB00983FB6 /* UITableViewCell+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = B1C871531EADF4D4003DACF0 /* UITableViewCell+Common.m */; }; + B1D5ED4120BC06CB00983FB6 /* EACodeReleaseListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EC920639E9500E9BAD1 /* EACodeReleaseListCell.m */; }; + B1D5ED4220BC06CB00983FB6 /* CSLikesVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD85B1B6C7E3D0061CAA6 /* CSLikesVC.m */; }; + B1D5ED4320BC06CB00983FB6 /* UserOrProjectTweetsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF5A19E240C40076D59C /* UserOrProjectTweetsViewController.m */; }; + B1D5ED4420BC06CB00983FB6 /* CommitDetail.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A9F1B1D89D400FD2E49 /* CommitDetail.m */; }; + B1D5ED4520BC06CB00983FB6 /* DownMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AB21A3943E80021E29C /* DownMenuCell.m */; }; + B1D5ED4620BC06CB00983FB6 /* RFToolbarButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6C411E1A846AC30098DC17 /* RFToolbarButton.m */; }; + B1D5ED4720BC06CB00983FB6 /* TopicListButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3878481AE36ED70078D5DE /* TopicListButton.m */; }; + B1D5ED4820BC06CB00983FB6 /* ImageSizeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AF41A3946C10021E29C /* ImageSizeManager.m */; }; + B1D5ED4920BC06CB00983FB6 /* File.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFD719E240C40076D59C /* File.m */; }; + B1D5ED4A20BC06CB00983FB6 /* ShopOrderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 923399741C00ABDE00F29E04 /* ShopOrderViewController.m */; }; + B1D5ED4B20BC06CB00983FB6 /* OTPTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D7C1B462ADB00B70936 /* OTPTableViewCell.m */; }; + B1D5ED4C20BC06CB00983FB6 /* UIMessageInputView_CCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EABD2591AD3CB4A005E515F /* UIMessageInputView_CCell.m */; }; + B1D5ED4D20BC06CB00983FB6 /* DemoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 134E1BA51CA41671002A3E0D /* DemoModel.m */; }; + B1D5ED4E20BC06CB00983FB6 /* TaskCommentBlankCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438219FF7E2900F7EEB0 /* TaskCommentBlankCell.m */; }; + B1D5ED4F20BC06CB00983FB6 /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2C61A1EE6AF005FD721 /* AFNetworkActivityIndicatorManager.m */; }; + B1D5ED5020BC06CB00983FB6 /* Login.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFDD19E240C40076D59C /* Login.m */; }; + B1D5ED5120BC06CB00983FB6 /* TitleDisclosureCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438A19FF7E2900F7EEB0 /* TitleDisclosureCell.m */; }; + B1D5ED5220BC06CB00983FB6 /* FileDownloadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2906A11A403B7D008A5B97 /* FileDownloadView.m */; }; + B1D5ED5320BC06CB00983FB6 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2BA1A1EE6AF005FD721 /* AFNetworkReachabilityManager.m */; }; + B1D5ED5420BC06CB00983FB6 /* LDNetTraceRoute.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3068371E0B781A00AEE0CE /* LDNetTraceRoute.m */; }; + B1D5ED5520BC06CB00983FB6 /* SearchViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D09E6AD01BF9D999009D37F8 /* SearchViewController.m */; }; + B1D5ED5620BC06CB00983FB6 /* QBImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B646E1FFB61AD00ACFDCC /* QBImagePickerController.m */; }; + B1D5ED5720BC06CB00983FB6 /* EditColorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB52F241C76C16300B5EBEA /* EditColorViewController.m */; }; + B1D5ED5820BC06CB00983FB6 /* UIScrollView+SVPullToRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F0E11A0098BA009A905F /* UIScrollView+SVPullToRefresh.m */; }; + B1D5ED5920BC06CB00983FB6 /* NSData+OTPBase32Encoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D451B45295D00B70936 /* NSData+OTPBase32Encoding.m */; }; + B1D5ED5A20BC06CB00983FB6 /* StartImagesManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8AF7851A53D69F00CDC3AE /* StartImagesManager.m */; }; + B1D5ED5B20BC06CB00983FB6 /* ProjectMemberListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF2F19E240C40076D59C /* ProjectMemberListViewController.m */; }; + B1D5ED5C20BC06CB00983FB6 /* ProjectActivitiesView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A21A1B5D02CA004284F1 /* ProjectActivitiesView.m */; }; + B1D5ED5D20BC06CB00983FB6 /* MRReviewerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 13FB5D581CA194D600EE127C /* MRReviewerCell.m */; }; + B1D5ED5E20BC06CB00983FB6 /* TweetCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439A19FF7E2900F7EEB0 /* TweetCommentCell.m */; }; + B1D5ED5F20BC06CB00983FB6 /* BaseNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6C41181A834EA90098DC17 /* BaseNavigationController.m */; }; + B1D5ED6020BC06CB00983FB6 /* LocationHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A03E6D21ABD0F690034BB8E /* LocationHelper.m */; }; + B1D5ED6120BC06CB00983FB6 /* CSHotTopicPagesVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B888E411B72618200806CEE /* CSHotTopicPagesVC.m */; }; + B1D5ED6220BC06CB00983FB6 /* TaskSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C448171C03187100DC1C4B /* TaskSearchCell.m */; }; + B1D5ED6320BC06CB00983FB6 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2B21A1EE6AF005FD721 /* AFURLConnectionOperation.m */; }; + B1D5ED6420BC06CB00983FB6 /* ProjectTopic.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFE719E240C40076D59C /* ProjectTopic.m */; }; + B1D5ED6520BC06CB00983FB6 /* EACodeBranchListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EB52063899400E9BAD1 /* EACodeBranchListViewController.m */; }; + B1D5ED6620BC06CB00983FB6 /* TeamProjectsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B49F1D82962100EED8C6 /* TeamProjectsViewController.m */; }; + B1D5ED6720BC06CB00983FB6 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF2C19E240C40076D59C /* RegisterViewController.m */; }; + B1D5ED6820BC06CB00983FB6 /* ShopBanner.m in Sources */ = {isa = PBXBuildFile; fileRef = 923399651C00441700F29E04 /* ShopBanner.m */; }; + B1D5ED6920BC06CB00983FB6 /* TitleRImageMoreCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438C19FF7E2900F7EEB0 /* TitleRImageMoreCell.m */; }; + B1D5ED6A20BC06CB00983FB6 /* EABoardTaskListView.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED5F2093018A004A6E8A /* EABoardTaskListView.m */; }; + B1D5ED6B20BC06CB00983FB6 /* FileShare.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E49693F1DCB0BCE0065028E /* FileShare.m */; }; + B1D5ED6C20BC06CB00983FB6 /* ShopMutileValueCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED6181A1C3A72AE0017946C /* ShopMutileValueCell.m */; }; + B1D5ED6D20BC06CB00983FB6 /* SVWebViewControllerActivitySafari.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E217F081A70EDC700F6DF88 /* SVWebViewControllerActivitySafari.m */; }; + B1D5ED6E20BC06CB00983FB6 /* HOTPGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D431B45295D00B70936 /* HOTPGenerator.m */; }; + B1D5ED6F20BC06CB00983FB6 /* WikiViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1890C472015D92600F52ABA /* WikiViewController.m */; }; + B1D5ED7020BC06CB00983FB6 /* TweetDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF5219E240C40076D59C /* TweetDetailViewController.m */; }; + B1D5ED7120BC06CB00983FB6 /* Team.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B4961D82939700EED8C6 /* Team.m */; }; + B1D5ED7220BC06CB00983FB6 /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF2A19E240C40076D59C /* LoginViewController.m */; }; + B1D5ED7320BC06CB00983FB6 /* NSData+gzip.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E30683C1E0B781A00AEE0CE /* NSData+gzip.m */; }; + B1D5ED7420BC06CB00983FB6 /* NSString+OTPURLArguments.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D471B45295D00B70936 /* NSString+OTPURLArguments.m */; }; + B1D5ED7520BC06CB00983FB6 /* ProjectSquareViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D066BB391BF30EB9005AB5D6 /* ProjectSquareViewController.m */; }; + B1D5ED7620BC06CB00983FB6 /* EACodeBranches.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EBB2063936100E9BAD1 /* EACodeBranches.m */; }; + B1D5ED7720BC06CB00983FB6 /* NSLayoutConstraintLine.m in Sources */ = {isa = PBXBuildFile; fileRef = B1BCB8911FCE662A0098B87B /* NSLayoutConstraintLine.m */; }; + B1D5ED7820BC06CB00983FB6 /* ProjectMemberActivityListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E6F1C941A03BD6000BF79C8 /* ProjectMemberActivityListViewController.m */; }; + B1D5ED7920BC06CB00983FB6 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF3419E240C40076D59C /* BaseViewController.m */; }; + B1D5ED7A20BC06CB00983FB6 /* TopicCommentCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5F39041ACA958C0010515D /* TopicCommentCCell.m */; }; + B1D5ED7B20BC06CB00983FB6 /* EaseToolBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E15C7D51A271A6300FB8DAD /* EaseToolBar.m */; }; + B1D5ED7C20BC06CB00983FB6 /* Project.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE548201AE8DB5600A92306 /* Project.m */; }; + B1D5ED7D20BC06CB00983FB6 /* ProjectActivityListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A21C1B5D02CA004284F1 /* ProjectActivityListView.m */; }; + B1D5ED7E20BC06CB00983FB6 /* AFHTTPRequestOperationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2B01A1EE6AF005FD721 /* AFHTTPRequestOperationManager.m */; }; + B1D5ED7F20BC06CB00983FB6 /* BubblePlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FEE1B6D111300D2166C /* BubblePlayView.m */; }; + B1D5ED8020BC06CB00983FB6 /* FRDLivelyButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D031F5DA1BFAD6690008E964 /* FRDLivelyButton.m */; }; + B1D5ED8120BC06CB00983FB6 /* UIColor+expanded.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AC81A3943E80021E29C /* UIColor+expanded.m */; }; + B1D5ED8220BC06CB00983FB6 /* MRListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6318A11BDA261100EFED97 /* MRListView.m */; }; + B1D5ED8320BC06CB00983FB6 /* UserActiveStatusView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A058881E0AA9AE00C1CA3F /* UserActiveStatusView.m */; }; + B1D5ED8420BC06CB00983FB6 /* ScreenView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A058971E0AAA5300C1CA3F /* ScreenView.m */; }; + B1D5ED8520BC06CB00983FB6 /* ProjectCount.m in Sources */ = {isa = PBXBuildFile; fileRef = D0A32BF51BF1CA8F00336C52 /* ProjectCount.m */; }; + B1D5ED8620BC06CB00983FB6 /* ResourceReference.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB52F371C7C38F600B5EBEA /* ResourceReference.m */; }; + B1D5ED8720BC06CB00983FB6 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1421A6D192B00A046BD /* SDWebImageDownloader.m */; }; + B1D5ED8820BC06CB00983FB6 /* HtmlMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFD919E240C40076D59C /* HtmlMedia.m */; }; + B1D5ED8920BC06CB00983FB6 /* EditLabelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3878421AE296240078D5DE /* EditLabelCell.m */; }; + B1D5ED8A20BC06CB00983FB6 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AC01A3943E80021E29C /* NSString+Common.m */; }; + B1D5ED8B20BC06CB00983FB6 /* BasicPreviewItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8B071A3947300021E29C /* BasicPreviewItem.m */; }; + B1D5ED8C20BC06CB00983FB6 /* MeDisplayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2247FB1D82C98800551EA4 /* MeDisplayViewController.m */; }; + B1D5ED8D20BC06CB00983FB6 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F13C1A6D192B00A046BD /* SDImageCache.m */; }; + B1D5ED8E20BC06CB00983FB6 /* AddReviewerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 134E1B9F1CA414DB002A3E0D /* AddReviewerViewController.m */; }; + B1D5ED8F20BC06CB00983FB6 /* FunctionIntroManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E00229F1B7360B1005308DE /* FunctionIntroManager.m */; }; + B1D5ED9020BC06CB00983FB6 /* NJKWebViewProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EBB62491A6F526C0045DAEF /* NJKWebViewProgress.m */; }; + B1D5ED9120BC06CB00983FB6 /* MRPRTopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A751B1C6C6100FD2E49 /* MRPRTopCell.m */; }; + B1D5ED9220BC06CB00983FB6 /* ProjectTaskListView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2241B5D02CA004284F1 /* ProjectTaskListView.m */; }; + B1D5ED9320BC06CB00983FB6 /* ResetLabelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3878391AE2949E0078D5DE /* ResetLabelViewController.m */; }; + B1D5ED9420BC06CB00983FB6 /* FileComment.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE06A31B7AE4EF00179F4B /* FileComment.m */; }; + B1D5ED9520BC06CB00983FB6 /* Tweet_RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF4019E240C40076D59C /* Tweet_RootViewController.m */; }; + B1D5ED9620BC06CB00983FB6 /* ProjectDeleteAlertControllerVisualStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = B93D904A1ACBA3110057A6EE /* ProjectDeleteAlertControllerVisualStyle.m */; }; + B1D5ED9720BC06CB00983FB6 /* ProjectItemsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E1A22841AB172C400CFC14F /* ProjectItemsCell.m */; }; + B1D5ED9820BC06CB00983FB6 /* WebContentManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AFC1A3946C10021E29C /* WebContentManager.m */; }; + B1D5ED9920BC06CB00983FB6 /* Login2FATipCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E94C4F31B4D007600EB668A /* Login2FATipCell.m */; }; + B1D5ED9A20BC06CB00983FB6 /* FileChangeDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A721B1C694100FD2E49 /* FileChangeDetailViewController.m */; }; + B1D5ED9B20BC06CB00983FB6 /* MJPhotoBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D06D19E240C40076D59C /* MJPhotoBrowser.m */; }; + B1D5ED9C20BC06CB00983FB6 /* CSMyTopicVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD85D1B6C7E3D0061CAA6 /* CSMyTopicVC.m */; }; + B1D5ED9D20BC06CB00983FB6 /* LocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED618141C3A6B4B0017946C /* LocationViewController.m */; }; + B1D5ED9E20BC06CB00983FB6 /* JDStatusBarLayoutMarginHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B641B1FF0F5E300ACFDCC /* JDStatusBarLayoutMarginHelper.m */; }; + B1D5ED9F20BC06CB00983FB6 /* iCarousel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED4611F19E4DC470059B3BE /* iCarousel.m */; }; + B1D5EDA020BC06CB00983FB6 /* ProjectDescriptionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E1A22871AB1731600CFC14F /* ProjectDescriptionCell.m */; }; + B1D5EDA120BC06CB00983FB6 /* UIButton+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AC61A3943E80021E29C /* UIButton+Common.m */; }; + B1D5EDA220BC06CB00983FB6 /* UIDownMenuButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AB41A3943E80021E29C /* UIDownMenuButton.m */; }; + B1D5EDA320BC06CB00983FB6 /* TopicAnswerDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6CBE501D8E962300644086 /* TopicAnswerDetailViewController.m */; }; + B1D5EDA420BC06CB00983FB6 /* UsersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF5819E240C40076D59C /* UsersViewController.m */; }; + B1D5EDA520BC06CB00983FB6 /* SkillCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64141FF0DE4800ACFDCC /* SkillCCell.m */; }; + B1D5EDA620BC06CB00983FB6 /* MenuButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E94C4F91B4D2B9300EB668A /* MenuButton.m */; }; + B1D5EDA720BC06CB00983FB6 /* AMPopTip+Draw.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64031FE900D400ACFDCC /* AMPopTip+Draw.m */; }; + B1D5EDA820BC06CB00983FB6 /* ProjectArchiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED532091B7CB004A6E8A /* ProjectArchiveViewController.m */; }; + B1D5EDA920BC06CB00983FB6 /* TeamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B49C1D8295F600EED8C6 /* TeamViewController.m */; }; + B1D5EDAA20BC06CB00983FB6 /* LocalFileViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF3741B1BB1258600DDA662 /* LocalFileViewController.m */; }; + B1D5EDAB20BC06CB00983FB6 /* ResetLabelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A38783F1AE295970078D5DE /* ResetLabelCell.m */; }; + B1D5EDAD20BC06CB00983FB6 /* EACodeBranchListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817ECC20639F0A00E9BAD1 /* EACodeBranchListCell.m */; }; + B1D5EDAE20BC06CB00983FB6 /* ValueListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF4A19E240C40076D59C /* ValueListViewController.m */; }; + B1D5EDAF20BC06CB00983FB6 /* ActivateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB52F141C7599FC00B5EBEA /* ActivateViewController.m */; }; + B1D5EDB020BC06CB00983FB6 /* MRPRListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAAD0131E5306F3008AA957 /* MRPRListViewController.m */; }; + B1D5EDB120BC06CB00983FB6 /* NSObject+ObjectMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8ABE1A3943E80021E29C /* NSObject+ObjectMap.m */; }; + B1D5EDB220BC06CB00983FB6 /* SWCellScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E87655C1A22E5B40090CFB9 /* SWCellScrollView.m */; }; + B1D5EDB320BC06CB00983FB6 /* ActionSheetCustomPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DDC19E7D58A00EF3032 /* ActionSheetCustomPicker.m */; }; + B1D5EDB420BC06CB00983FB6 /* PRMRSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D02BE0AE1C0434DB008374C0 /* PRMRSearchCell.m */; }; + B1D5EDB520BC06CB00983FB6 /* TweetSendViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF5419E240C40076D59C /* TweetSendViewController.m */; }; + B1D5EDB620BC06CB00983FB6 /* PrivateMessages.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFE119E240C40076D59C /* PrivateMessages.m */; }; + B1D5EDB720BC06CB00983FB6 /* YLImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6D71881A75F00E005AD988 /* YLImageView.m */; }; + B1D5EDB820BC06CB00983FB6 /* CodingBanner.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E095A581B690494008DC439 /* CodingBanner.m */; }; + B1D5EDB920BC06CB00983FB6 /* ShopOrderModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9233997A1C00C55600F29E04 /* ShopOrderModel.m */; }; + B1D5EDBA20BC06CB00983FB6 /* MartFunctionTipView.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B63F81FE8FF0300ACFDCC /* MartFunctionTipView.m */; }; + B1D5EDBB20BC06CB00983FB6 /* CodingSkill.m in Sources */ = {isa = PBXBuildFile; fileRef = B19D4EED1F6FCEAC00C598F3 /* CodingSkill.m */; }; + B1D5EDBC20BC06CB00983FB6 /* DashesLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 923399711C00A9EF00F29E04 /* DashesLineView.m */; }; + B1D5EDBD20BC06CB00983FB6 /* Tweets.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFF319E240C40076D59C /* Tweets.m */; }; + B1D5EDBE20BC06CB00983FB6 /* OTPAuthURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D4D1B45295D00B70936 /* OTPAuthURL.m */; }; + B1D5EDBF20BC06CB00983FB6 /* MJPhoto.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D06A19E240C40076D59C /* MJPhoto.m */; }; + B1D5EDC020BC06CB00983FB6 /* TweetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439819FF7E2900F7EEB0 /* TweetCell.m */; }; + B1D5EDC120BC06CB00983FB6 /* UIBarButtonItem+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AC21A3943E80021E29C /* UIBarButtonItem+Common.m */; }; + B1D5EDC220BC06CB00983FB6 /* RRFPSBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5D12FD1C0C5EE600985AEB /* RRFPSBar.m */; }; + B1D5EDC320BC06CB00983FB6 /* EaseUserHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BCF1ABA774800C704F1 /* EaseUserHeaderView.m */; }; + B1D5EDC420BC06CB00983FB6 /* PointRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0022911B721973005308DE /* PointRecordCell.m */; }; + B1D5EDC520BC06CB00983FB6 /* UIView+PressMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5A66941B268D160007A0AD /* UIView+PressMenu.m */; }; + B1D5EDC620BC06CB00983FB6 /* Tasks.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFF119E240C40076D59C /* Tasks.m */; }; + B1D5EDC720BC06CB00983FB6 /* MBProgressHUD+Add.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EE72BE719E3F4A8002C11D9 /* MBProgressHUD+Add.m */; }; + B1D5EDC820BC06CB00983FB6 /* CodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F10C1A02188D009A905F /* CodeViewController.m */; }; + B1D5EDC920BC06CB00983FB6 /* ProjectTweetSendViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E59D32E1D3E1920008C914B /* ProjectTweetSendViewController.m */; }; + B1D5EDCA20BC06CB00983FB6 /* CommitListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A7B1B1C6CDE00FD2E49 /* CommitListCell.m */; }; + B1D5EDCB20BC06CB00983FB6 /* EARestrictedScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0022951B73506A005308DE /* EARestrictedScrollView.m */; }; + B1D5EDCC20BC06CB00983FB6 /* RDVTabBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D09619E240C40076D59C /* RDVTabBarController.m */; }; + B1D5EDCD20BC06CB00983FB6 /* ProjectLineNote.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E787DE11B0329B300F06E83 /* ProjectLineNote.m */; }; + B1D5EDCE20BC06CB00983FB6 /* ProjectAboutMeListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D066BB3C1BF38844005AB5D6 /* ProjectAboutMeListCell.m */; }; + B1D5EDCF20BC06CB00983FB6 /* EAFliterMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAAD0161E53EFF2008AA957 /* EAFliterMenu.m */; }; + B1D5EDD020BC06CB00983FB6 /* HotTopicBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BDF9AA51B7456060093BF2C /* HotTopicBannerView.m */; }; + B1D5EDD120BC06CB00983FB6 /* EditTaskViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF2319E240C40076D59C /* EditTaskViewController.m */; }; + B1D5EDD220BC06CB00983FB6 /* TagColorDisplayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB52F2A1C76ED7000B5EBEA /* TagColorDisplayCell.m */; }; + B1D5EDD320BC06CB00983FB6 /* ProjectTopics.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFE919E240C40076D59C /* ProjectTopics.m */; }; + B1D5EDD420BC06CB00983FB6 /* ReviewersInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1309B9FE1CA2E95F0034C7A3 /* ReviewersInfo.m */; }; + B1D5EDD520BC06CB00983FB6 /* ProjectTasksView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A2261B5D02CA004284F1 /* ProjectTasksView.m */; }; + B1D5EDD620BC06CB00983FB6 /* UICustomCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D00419E240C40076D59C /* UICustomCollectionView.m */; }; + B1D5EDD720BC06CB00983FB6 /* NSObject+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8ABC1A3943E80021E29C /* NSObject+Common.m */; }; + B1D5EDD820BC06CB00983FB6 /* SMPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E97CEBE1A0CB7E3006F9AD7 /* SMPageControl.m */; }; + B1D5EDD920BC06CB00983FB6 /* Coding_iOS.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF1919E240C40076D59C /* Coding_iOS.xcdatamodeld */; }; + B1D5EDDA20BC06CB00983FB6 /* ConversationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CF2119E240C40076D59C /* ConversationViewController.m */; }; + B1D5EDDB20BC06CB00983FB6 /* EaseInputTipsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EDC33CD1AFB4DCC00698315 /* EaseInputTipsView.m */; }; + B1D5EDDC20BC06CB00983FB6 /* NSDate+convenience.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8ABA1A3943E80021E29C /* NSDate+convenience.m */; }; + B1D5EDDD20BC06CB00983FB6 /* CSTopicModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8691B6C7E3D0061CAA6 /* CSTopicModel.m */; }; + B1D5EDDE20BC06CB00983FB6 /* FileLineChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6AA21B1DB63A00FD2E49 /* FileLineChange.m */; }; + B1D5EDDF20BC06CB00983FB6 /* PasswordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E5C06ED1AC4405300F427C5 /* PasswordViewController.m */; }; + B1D5EDE020BC06CB00983FB6 /* BaseCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 927AFF431BFF61FF00AAE593 /* BaseCollectionCell.m */; }; + B1D5EDE120BC06CB00983FB6 /* SVWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E217EFC1A70EDC700F6DF88 /* SVWebViewController.m */; }; + B1D5EDE220BC06CB00983FB6 /* EACodeReleaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EE32064F92C00E9BAD1 /* EACodeReleaseViewController.m */; }; + B1D5EDE320BC06CB00983FB6 /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2BE1A1EE6AF005FD721 /* AFSecurityPolicy.m */; }; + B1D5EDE420BC06CB00983FB6 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F14F1A6D192B00A046BD /* UIImage+MultiFormat.m */; }; + B1D5EDE520BC06CB00983FB6 /* TweetMediaItemSingleCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6436019FF7E2900F7EEB0 /* TweetMediaItemSingleCCell.m */; }; + B1D5EDE620BC06CB00983FB6 /* TweetLikeUserCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6435C19FF7E2900F7EEB0 /* TweetLikeUserCCell.m */; }; + B1D5EDE720BC06CB00983FB6 /* RewardTipManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E80E9341E011D6000DE1BC6 /* RewardTipManager.m */; }; + B1D5EDE920BC06CB00983FB6 /* CommitFilesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A6F1B1C68F100FD2E49 /* CommitFilesViewController.m */; }; + B1D5EDEA20BC06CB00983FB6 /* FileChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A901B1D84B400FD2E49 /* FileChange.m */; }; + B1D5EDEB20BC06CB00983FB6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFC619E240C40076D59C /* main.m */; }; + B1D5EDEC20BC06CB00983FB6 /* NewProjectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B94C1B681AC945D30000C271 /* NewProjectViewController.m */; }; + B1D5EDED20BC06CB00983FB6 /* TeamTopCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED4B4A51D82990600EED8C6 /* TeamTopCell.m */; }; + B1D5EDEE20BC06CB00983FB6 /* UserInfoTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BD61ABA776500C704F1 /* UserInfoTextCell.m */; }; + B1D5EDEF20BC06CB00983FB6 /* MRPRDisclosureCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6AA51B1DBA3A00FD2E49 /* MRPRDisclosureCell.m */; }; + B1D5EDF020BC06CB00983FB6 /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DFB19E8DFE300EF3032 /* AboutViewController.m */; }; + B1D5EDF120BC06CB00983FB6 /* QBAssetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64721FFB61AD00ACFDCC /* QBAssetCell.m */; }; + B1D5EDF220BC06CB00983FB6 /* EACodeReleaseListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EB8206389F500E9BAD1 /* EACodeReleaseListViewController.m */; }; + B1D5EDF320BC06CB00983FB6 /* MeRootUserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E87DDFC1D813B1E00D1B5B1 /* MeRootUserCell.m */; }; + B1D5EDF420BC06CB00983FB6 /* ShopGoods.m in Sources */ = {isa = PBXBuildFile; fileRef = 9233996B1C00524A00F29E04 /* ShopGoods.m */; }; + B1D5EDF520BC06CB00983FB6 /* AMPopTip+Entrance.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64021FE900D400ACFDCC /* AMPopTip+Entrance.m */; }; + B1D5EDF620BC06CB00983FB6 /* PointRecords.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0022851B720966005308DE /* PointRecords.m */; }; + B1D5EDF720BC06CB00983FB6 /* QBCheckmarkView.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B646F1FFB61AD00ACFDCC /* QBCheckmarkView.m */; }; + B1D5EDF820BC06CB00983FB6 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2AE1A1EE6AF005FD721 /* AFHTTPRequestOperation.m */; }; + B1D5EDF920BC06CB00983FB6 /* ProjectLineNoteActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EF8181E1B05C9D8005F974B /* ProjectLineNoteActivity.m */; }; + B1D5EDFA20BC06CB00983FB6 /* MessageMediaItemCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6435619FF7E2900F7EEB0 /* MessageMediaItemCCell.m */; }; + B1D5EDFB20BC06CB00983FB6 /* MRPRS.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECF70451B18557E000280FF /* MRPRS.m */; }; + B1D5EDFC20BC06CB00983FB6 /* EAEditCodeReleaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817F052069F67700E9BAD1 /* EAEditCodeReleaseViewController.m */; }; + B1D5EDFD20BC06CB00983FB6 /* UIImage+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8ACC1A3943E80021E29C /* UIImage+Common.m */; }; + B1D5EDFE20BC06CB00983FB6 /* ProjectTopicCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF643D519FF7E9F00F7EEB0 /* ProjectTopicCell.m */; }; + B1D5EDFF20BC06CB00983FB6 /* TextCheckMarkCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A8A1B1C6E3000FD2E49 /* TextCheckMarkCell.m */; }; + B1D5EE0020BC06CB00983FB6 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2B51A1EE6AF005FD721 /* AFHTTPSessionManager.m */; }; + B1D5EE0120BC06CB00983FB6 /* XHRealTimeBlur.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E94C5111B4E0C0300EB668A /* XHRealTimeBlur.m */; }; + B1D5EE0220BC06CB00983FB6 /* ProjectFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA679091A1461C3001A0324 /* ProjectFile.m */; }; + B1D5EE0320BC06CB00983FB6 /* CSTopiclistView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8671B6C7E3D0061CAA6 /* CSTopiclistView.m */; }; + B1D5EE0420BC06CB00983FB6 /* UILabel+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AD01A3943E80021E29C /* UILabel+Common.m */; }; + B1D5EE0520BC06CB00983FB6 /* QBSlomoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64711FFB61AD00ACFDCC /* QBSlomoIconView.m */; }; + B1D5EE0620BC06CB00983FB6 /* SDWebImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA7F1401A6D192B00A046BD /* SDWebImageDecoder.m */; }; + B1D5EE0720BC06CB00983FB6 /* TweetSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D09AA5BC1BFDE5F5008CA9EB /* TweetSearchCell.m */; }; + B1D5EE0820BC06CB00983FB6 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6BA2C31A1EE6AF005FD721 /* AFURLResponseSerialization.m */; }; + B1D5EE0920BC06CB00983FB6 /* CodeFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F1021A0120F1009A905F /* CodeFile.m */; }; + B1D5EE0A20BC06CB00983FB6 /* EAMilestone.m in Sources */ = {isa = PBXBuildFile; fileRef = B1ACFE0C20A975E2000BC41E /* EAMilestone.m */; }; + B1D5EE0B20BC06CB00983FB6 /* CSSearchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8751B6C7F0A0061CAA6 /* CSSearchCell.m */; }; + B1D5EE0C20BC06CB00983FB6 /* JDStatusBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BC71ABA754600C704F1 /* JDStatusBarView.m */; }; + B1D5EE0D20BC06CB00983FB6 /* MRPRAcceptEditCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A871B1C6E1B00FD2E49 /* MRPRAcceptEditCell.m */; }; + B1D5EE0E20BC06CB00983FB6 /* EACodeReleaseAttachmentsOrReferencesCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1817EEC2064FD9400E9BAD1 /* EACodeReleaseAttachmentsOrReferencesCell.m */; }; + B1D5EE0F20BC06CB00983FB6 /* MenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E94C4FB1B4D2B9300EB668A /* MenuItem.m */; }; + B1D5EE1020BC06CB00983FB6 /* TweetMediaItemCCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6435E19FF7E2900F7EEB0 /* TweetMediaItemCCell.m */; }; + B1D5EE1120BC06CB00983FB6 /* EditLabelHeadCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A3878441AE296240078D5DE /* EditLabelHeadCell.m */; }; + B1D5EE1220BC06CB00983FB6 /* TaskContentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6438819FF7E2900F7EEB0 /* TaskContentCell.m */; }; + B1D5EE1320BC06CB00983FB6 /* TaskDescriptionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E59E1D21A5E6B34004DAEEC /* TaskDescriptionViewController.m */; }; + B1D5EE1420BC06CB00983FB6 /* AddressManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ECE8AEC1A3946C10021E29C /* AddressManager.m */; }; + B1D5EE1520BC06CB00983FB6 /* ProjectSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9A00D811ACA3A17008BA008 /* ProjectSettingViewController.m */; }; + B1D5EE1620BC06CB00983FB6 /* ActionSheetDistancePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1C3DE119E7D58A00EF3032 /* ActionSheetDistancePicker.m */; }; + B1D5EE1720BC06CB00983FB6 /* ProjectCodeListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F0F31A00F3B9009A905F /* ProjectCodeListCell.m */; }; + B1D5EE1820BC06CB00983FB6 /* UserServiceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E87DE021D813BBE00D1B5B1 /* UserServiceInfo.m */; }; + B1D5EE1920BC06CB00983FB6 /* TweetSendLocationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A6E6BA91AAF4B24004C0107 /* TweetSendLocationViewController.m */; }; + B1D5EE1A20BC06CB00983FB6 /* ProjectFolderListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E59F0F61A00F3E2009A905F /* ProjectFolderListCell.m */; }; + B1D5EE1B20BC06CB00983FB6 /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFF719E240C40076D59C /* User.m */; }; + B1D5EE1C20BC06CB00983FB6 /* MJPhotoToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D07319E240C40076D59C /* MJPhotoToolbar.m */; }; + B1D5EE1D20BC06CB00983FB6 /* TweetDetailCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF643A019FF7E2900F7EEB0 /* TweetDetailCommentCell.m */; }; + B1D5EE1E20BC06CB00983FB6 /* SettingSkillsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64111FF0D54800ACFDCC /* SettingSkillsViewController.m */; }; + B1D5EE1F20BC06CB00983FB6 /* MRPRBaseInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A8D1B1D5B9A00FD2E49 /* MRPRBaseInfo.m */; }; + B1D5EE2020BC06CB00983FB6 /* AudioRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EB02FF01B6D111300D2166C /* AudioRecordView.m */; }; + B1D5EE2120BC06CB00983FB6 /* TagColorEditCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB52F271C76ED4A00B5EBEA /* TagColorEditCell.m */; }; + B1D5EE2220BC06CB00983FB6 /* QBVideoIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64621FFB61AD00ACFDCC /* QBVideoIndicatorView.m */; }; + B1D5EE2320BC06CB00983FB6 /* FileInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E93F2421B85C4C300017916 /* FileInfoViewController.m */; }; + B1D5EE2420BC06CB00983FB6 /* CommitInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A991B1D893500FD2E49 /* CommitInfo.m */; }; + B1D5EE2520BC06CB00983FB6 /* CodeBranchTagButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E38CF5E1A7A28AF005536C0 /* CodeBranchTagButton.m */; }; + B1D5EE2620BC06CB00983FB6 /* ShopGoodsInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9233996E1C00970900F29E04 /* ShopGoodsInfoView.m */; }; + B1D5EE2720BC06CB00983FB6 /* UIBadgeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D00219E240C40076D59C /* UIBadgeView.m */; }; + B1D5EE2820BC06CB00983FB6 /* BaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 927AFF401BFF613500AAE593 /* BaseModel.m */; }; + B1D5EE2920BC06CB00983FB6 /* TaskSelectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A058941E0AAA2F00C1CA3F /* TaskSelectionView.m */; }; + B1D5EE2A20BC06CB00983FB6 /* ProjectListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6437C19FF7E2900F7EEB0 /* ProjectListCell.m */; }; + B1D5EE2B20BC06CB00983FB6 /* EABoardTaskList.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED592092BF46004A6E8A /* EABoardTaskList.m */; }; + B1D5EE2C20BC06CB00983FB6 /* CSTopicDetailVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8631B6C7E3D0061CAA6 /* CSTopicDetailVC.m */; }; + B1D5EE2D20BC06CB00983FB6 /* ToMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6439219FF7E2900F7EEB0 /* ToMessageCell.m */; }; + B1D5EE2E20BC06CB00983FB6 /* SVWebViewControllerActivityChrome.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E217F021A70EDC700F6DF88 /* SVWebViewControllerActivityChrome.m */; }; + B1D5EE2F20BC06CB00983FB6 /* PhoneCodeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EC4800B1C2936DA005F1772 /* PhoneCodeButton.m */; }; + B1D5EE3020BC06CB00983FB6 /* TopicAnswerCommentMoreCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6CBE4D1D8E7E8000644086 /* TopicAnswerCommentMoreCell.m */; }; + B1D5EE3120BC06CB00983FB6 /* LDNetPing.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E3068331E0B781A00AEE0CE /* LDNetPing.m */; }; + B1D5EE3220BC06CB00983FB6 /* DynamicCommentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 13C8FE6D1CA75816001E30FA /* DynamicCommentCell.m */; }; + B1D5EE3320BC06CB00983FB6 /* CSScrollview.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD85F1B6C7E3D0061CAA6 /* CSScrollview.m */; }; + B1D5EE3420BC06CB00983FB6 /* NSString+Attribute.m in Sources */ = {isa = PBXBuildFile; fileRef = D09AA5BF1BFDEDD1008CA9EB /* NSString+Attribute.m */; }; + B1D5EE3520BC06CB00983FB6 /* ProjectTopicsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EE1A22A1B5D02CA004284F1 /* ProjectTopicsView.m */; }; + B1D5EE3620BC06CB00983FB6 /* ProjectFolder.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EA6790C1A1461DC001A0324 /* ProjectFolder.m */; }; + B1D5EE3720BC06CB00983FB6 /* ProjectActivityListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6437A19FF7E2900F7EEB0 /* ProjectActivityListCell.m */; }; + B1D5EE3820BC06CB00983FB6 /* JDStatusBarStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BC51ABA754600C704F1 /* JDStatusBarStyle.m */; }; + B1D5EE3920BC06CB00983FB6 /* LDNetDiagnoService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E30682F1E0B781A00AEE0CE /* LDNetDiagnoService.m */; }; + B1D5EE3A20BC06CB00983FB6 /* EditCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E2F6A561C437D1D00A25502 /* EditCodeViewController.m */; }; + B1D5EE3B20BC06CB00983FB6 /* SettingTextViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF83F9319EB78CC00E86DE7 /* SettingTextViewController.m */; }; + B1D5EE3C20BC06CB00983FB6 /* EATaskBoardListTaskCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B152ED5C2092D51E004A6E8A /* EATaskBoardListTaskCell.m */; }; + B1D5EE3D20BC06CB00983FB6 /* LocationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED618171C3A6CA50017946C /* LocationCell.m */; }; + B1D5EE3E20BC06CB00983FB6 /* QBVideoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = B12B64611FFB61AD00ACFDCC /* QBVideoIconView.m */; }; + B1D5EE3F20BC06CB00983FB6 /* Comment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFD119E240C40076D59C /* Comment.m */; }; + B1D5EE4020BC06CB00983FB6 /* TweetSendLocationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A6E6BA61AAF4162004C0107 /* TweetSendLocationCell.m */; }; + B1D5EE4120BC06CB00983FB6 /* HtmlMediaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E9E3B741DCC2DB10005FD79 /* HtmlMediaViewController.m */; }; + B1D5EE4220BC06CB00983FB6 /* CSTopicCreateVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E0BD8611B6C7E3D0061CAA6 /* CSTopicCreateVC.m */; }; + B1D5EE4320BC06CB00983FB6 /* NSMutableArray+SWUtilityButtons.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E87655A1A22E5B40090CFB9 /* NSMutableArray+SWUtilityButtons.m */; }; + B1D5EE4420BC06CB00983FB6 /* MActivityInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 13972E2E1CA6D5C600489EBA /* MActivityInfo.m */; }; + B1D5EE4520BC06CB00983FB6 /* UILongPressMenuImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ECA8BB319FB42CC00C598C6 /* UILongPressMenuImageView.m */; }; + B1D5EE4620BC06CB00983FB6 /* FileChangesIntroduceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E4D6A811B1C6D5F00FD2E49 /* FileChangesIntroduceCell.m */; }; + B1D5EE4720BC06CB00983FB6 /* Register.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFED19E240C40076D59C /* Register.m */; }; + B1D5EE4820BC06CB00983FB6 /* ShopOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 926C043A1C019CD3004937D8 /* ShopOrder.m */; }; + B1D5EE4920BC06CB00983FB6 /* TopicAnswerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6CBE4A1D8E71DC00644086 /* TopicAnswerCell.m */; }; + B1D5EE4A20BC06CB00983FB6 /* NSTimer+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E969CCF1AF0EB87005C0CCE /* NSTimer+Common.m */; }; + B1D5EE4B20BC06CB00983FB6 /* CodingTipCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EF6436519FF7E2900F7EEB0 /* CodingTipCell.m */; }; + B1D5EE4C20BC06CB00983FB6 /* AboutPointViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B19D4EE81F6FAA6000C598F3 /* AboutPointViewController.m */; }; + B1D5EE4D20BC06CB00983FB6 /* ProjectTagsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E6FB0571B58DB0A00B0A17B /* ProjectTagsView.m */; }; + B1D5EE4E20BC06CB00983FB6 /* Projects.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6CFE519E240C40076D59C /* Projects.m */; }; + B1D5EE4F20BC06CB00983FB6 /* UserInfoDetailUserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BDE1ABA7CE100C704F1 /* UserInfoDetailUserCell.m */; }; + B1D5EE5020BC06CB00983FB6 /* ProjectActivities.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EACB4451A2C60110097ABB3 /* ProjectActivities.m */; }; + B1D5EE5120BC06CB00983FB6 /* LocalFileCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E715A341BB1279D00A5D24B /* LocalFileCell.m */; }; + B1D5EE5220BC06CB00983FB6 /* MRReviewerListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1309B9F91CA2D3960034C7A3 /* MRReviewerListCell.m */; }; + B1D5EE5320BC06CB00983FB6 /* UITapImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EA6D00819E240C40076D59C /* UITapImageView.m */; }; + B1D5EE5420BC06CB00983FB6 /* NSURL+OTPURLArguments.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E8D5D491B45295D00B70936 /* NSURL+OTPURLArguments.m */; }; + B1D5EE5520BC06CB00983FB6 /* FileActivitiesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAE06AA1B7B23EA00179F4B /* FileActivitiesViewController.m */; }; + B1D5EE5620BC06CB00983FB6 /* LocalFolderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E715A311BB1278200A5D24B /* LocalFolderCell.m */; }; + B1D5EE5720BC06CB00983FB6 /* SVWebViewControllerActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E217F0B1A70EDC700F6DF88 /* SVWebViewControllerActivity.m */; }; + B1D5EE5820BC06CB00983FB6 /* TagsScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 09A058A01E0AAACA00C1CA3F /* TagsScrollView.m */; }; + B1D5EE5920BC06CB00983FB6 /* TaskDescriptionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E996BE71ABBCD2D00C704F1 /* TaskDescriptionCell.m */; }; + B1D5EE5B20BC06CB00983FB6 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B19D4EFD1F724CDC00C598F3 /* CoreMotion.framework */; }; + B1D5EE5C20BC06CB00983FB6 /* libresolv.9.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EFF5A761E0AE54800683D03 /* libresolv.9.tbd */; }; + B1D5EE5D20BC06CB00983FB6 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDBECEA1B709EB3003E87C3 /* AVFoundation.framework */; }; + B1D5EE5E20BC06CB00983FB6 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A6E6BBC1AB180AE004C0107 /* MapKit.framework */; }; + B1D5EE5F20BC06CB00983FB6 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A6E6BBE1AB180CB004C0107 /* CoreLocation.framework */; }; + B1D5EE6020BC06CB00983FB6 /* libsqlite3.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDD8F5B1A36F52700E9E232 /* libsqlite3.0.dylib */; }; + B1D5EE6120BC06CB00983FB6 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDD8F591A36F4FA00E9E232 /* Security.framework */; }; + B1D5EE6220BC06CB00983FB6 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDD8F571A36F4CA00E9E232 /* CoreTelephony.framework */; }; + B1D5EE6320BC06CB00983FB6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDD8F551A36F4BD00E9E232 /* SystemConfiguration.framework */; }; + B1D5EE6420BC06CB00983FB6 /* AlipaySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B19D4EFA1F7247BA00C598F3 /* AlipaySDK.framework */; }; + B1D5EE6520BC06CB00983FB6 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDD8F531A36F4AC00E9E232 /* CFNetwork.framework */; }; + B1D5EE6620BC06CB00983FB6 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E96E7C71A1B46740037C098 /* QuickLook.framework */; }; + B1D5EE6720BC06CB00983FB6 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E03D4A319F696970092F8C8 /* libz.dylib */; }; + B1D5EE6820BC06CB00983FB6 /* libicucore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EF5E74419C68CC7009346D5 /* libicucore.dylib */; }; + B1D5EE6920BC06CB00983FB6 /* libXG-SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EDD8F4D1A36F42200E9E232 /* libXG-SDK.a */; }; + B1D5EE6A20BC06CB00983FB6 /* libopencore-amrnb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EB02FE21B6D0F3E00D2166C /* libopencore-amrnb.a */; }; + B1D5EE6B20BC06CB00983FB6 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E61D27A19C028CC00C00414 /* AssetsLibrary.framework */; }; + B1D5EE6C20BC06CB00983FB6 /* libxml2.2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 8EBAA73E19B9695600829E2A /* libxml2.2.dylib */; }; + B1D5EE6D20BC06CB00983FB6 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E9866C1198E416C00ABFFA0 /* CoreText.framework */; }; + B1D5EE6E20BC06CB00983FB6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E477015198770E700997D05 /* CoreGraphics.framework */; }; + B1D5EE6F20BC06CB00983FB6 /* libopencore-amrwb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7EB02FE31B6D0F3E00D2166C /* libopencore-amrwb.a */; }; + B1D5EE7020BC06CB00983FB6 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E477019198770E700997D05 /* CoreData.framework */; }; + B1D5EE7120BC06CB00983FB6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E477017198770E700997D05 /* UIKit.framework */; }; + B1D5EE7220BC06CB00983FB6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E477013198770E700997D05 /* Foundation.framework */; }; + B1D5EE7320BC06CB00983FB6 /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EF818231B09D8D8005F974B /* WebP.framework */; }; + B1D5EE7420BC06CB00983FB6 /* libPods-Coding_iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 645969FE6A8616A74543C249 /* libPods-Coding_iOS.a */; }; + B1D5EE7620BC06CB00983FB6 /* hot_topic_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E09DCA31C156387001C9392 /* hot_topic_Nav@2x.png */; }; + B1D5EE7720BC06CB00983FB6 /* keyboard_add@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE6B1A0B243B006F9AD7 /* keyboard_add@2x.png */; }; + B1D5EE7820BC06CB00983FB6 /* register_step_un@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC4800F1C2A909D005F1772 /* register_step_un@2x.png */; }; + B1D5EE7920BC06CB00983FB6 /* task_activity_icon_restore@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383F61B33C18700D98648 /* task_activity_icon_restore@2x.png */; }; + B1D5EE7A20BC06CB00983FB6 /* tipIcon_tweetReward@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9F5D1F1C03051D007CCDCC /* tipIcon_tweetReward@2x.png */; }; + B1D5EE7B20BC06CB00983FB6 /* icon_file_folder_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EA679181A14BFA0001A0324 /* icon_file_folder_normal@2x.png */; }; + B1D5EE7C20BC06CB00983FB6 /* taskboard_add_page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8A209453F2004A6E8A /* taskboard_add_page_selected@2x.png */; }; + B1D5EE7D20BC06CB00983FB6 /* time_clock_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8716F1EB1832B003DACF0 /* time_clock_icon@3x.png */; }; + B1D5EE7E20BC06CB00983FB6 /* task_activity_icon_add_watcher@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871931EB2D9E6003DACF0 /* task_activity_icon_add_watcher@3x.png */; }; + B1D5EE7F20BC06CB00983FB6 /* tipIcon_ProjectTopic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB419E240C40076D59C /* tipIcon_ProjectTopic@2x.png */; }; + B1D5EE8020BC06CB00983FB6 /* SVWebViewControllerActivityReport@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED673251A8E127100DF2D1A /* SVWebViewControllerActivityReport@2x.png */; }; + B1D5EE8120BC06CB00983FB6 /* wiki_menu_icon_share@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C272015D82600F52ABA /* wiki_menu_icon_share@2x.png */; }; + B1D5EE8220BC06CB00983FB6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF5B19E240C40076D59C /* InfoPlist.strings */; }; + B1D5EE8320BC06CB00983FB6 /* mrpr_icon_accepted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383BE1B3265DC00D98648 /* mrpr_icon_accepted@2x.png */; }; + B1D5EE8420BC06CB00983FB6 /* mrpr_icon_status_refused@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD01F1E540551008AA957 /* mrpr_icon_status_refused@2x.png */; }; + B1D5EE8520BC06CB00983FB6 /* privatemessage_normal@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D41C02DB8900DC1C4B /* privatemessage_normal@3x.png */; }; + B1D5EE8620BC06CB00983FB6 /* btn_project_added@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2A19EF6306006BA8BD /* btn_project_added@2x.png */; }; + B1D5EE8720BC06CB00983FB6 /* nav_tweet_all@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8119E240C40076D59C /* nav_tweet_all@2x.png */; }; + B1D5EE8820BC06CB00983FB6 /* button_file_createFolder_unable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EACB43C1A2C448F0097ABB3 /* button_file_createFolder_unable@2x.png */; }; + B1D5EE8920BC06CB00983FB6 /* button_file_denete_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAC202D7D4F0075A669 /* button_file_denete_unable@3x.png */; }; + B1D5EE8A20BC06CB00983FB6 /* file_activity_icon_upload_file@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871B11EB2D9F0003DACF0 /* file_activity_icon_upload_file@3x.png */; }; + B1D5EE8B20BC06CB00983FB6 /* QBImagePicker.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B12B64691FFB61AD00ACFDCC /* QBImagePicker.storyboard */; }; + B1D5EE8C20BC06CB00983FB6 /* taskProject@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EED9DCB1B539366000E5827 /* taskProject@2x.png */; }; + B1D5EE8E20BC06CB00983FB6 /* button_file_upload_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA9202D7D4E0075A669 /* button_file_upload_enable@3x.png */; }; + B1D5EE8F20BC06CB00983FB6 /* tag_button_randomColor@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F1C1C76BA3B00B5EBEA /* tag_button_randomColor@3x.png */; }; + B1D5EE9020BC06CB00983FB6 /* user_info_help@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B47A1D82646000EED8C6 /* user_info_help@3x.png */; }; + B1D5EE9120BC06CB00983FB6 /* messageComment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383B21B32640900D98648 /* messageComment@2x.png */; }; + B1D5EE9220BC06CB00983FB6 /* upgrade_success@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64241FF33E0000ACFDCC /* upgrade_success@3x.png */; }; + B1D5EE9320BC06CB00983FB6 /* tweet_comment_btn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFBE19E240C40076D59C /* tweet_comment_btn@2x.png */; }; + B1D5EE9420BC06CB00983FB6 /* fliter_square@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D09E6ACD1BF9CCCF009D37F8 /* fliter_square@2x.png */; }; + B1D5EE9520BC06CB00983FB6 /* PR_create@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1319D1071CA7FE6E00729F82 /* PR_create@2x.png */; }; + B1D5EE9620BC06CB00983FB6 /* user_info_tweet@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4841D82646000EED8C6 /* user_info_tweet@3x.png */; }; + B1D5EE9720BC06CB00983FB6 /* taskPriority2_small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383A01B3262D300D98648 /* taskPriority2_small@2x.png */; }; + B1D5EE9820BC06CB00983FB6 /* pop_2FA@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447C61C02DB6700DC1C4B /* pop_2FA@3x.png */; }; + B1D5EE9920BC06CB00983FB6 /* code_release_resource_Zip@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31720731FF10077C956 /* code_release_resource_Zip@2x.png */; }; + B1D5EE9A20BC06CB00983FB6 /* topic_add_watcher_btn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E59D3301D409C8C008C914B /* topic_add_watcher_btn@2x.png */; }; + B1D5EE9B20BC06CB00983FB6 /* bubble_right_play_1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E8E597D1B6F91C40083CA02 /* bubble_right_play_1@2x.png */; }; + B1D5EE9C20BC06CB00983FB6 /* search_tweet_colck@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8B35164C1B6CE9460049BC45 /* search_tweet_colck@2x.png */; }; + B1D5EE9D20BC06CB00983FB6 /* keyboard_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE601A0A3424006F9AD7 /* keyboard_page_unselected@2x.png */; }; + B1D5EE9E20BC06CB00983FB6 /* blankpage_image_Project@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423CA1E69401B0095F1CD /* blankpage_image_Project@2x.png */; }; + B1D5EEA020BC06CB00983FB6 /* PR_more@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 134116EE1CB529E1005E6550 /* PR_more@2x.png */; }; + B1D5EEA120BC06CB00983FB6 /* user_info_edit@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E54C24A1D8FE19100A61023 /* user_info_edit@3x.png */; }; + B1D5EEA220BC06CB00983FB6 /* file_changeType_MODIFY@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CEC200EFDC600DEDF78 /* file_changeType_MODIFY@3x.png */; }; + B1D5EEA320BC06CB00983FB6 /* icon_file_apk@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7CB1A1B537E0037C098 /* icon_file_apk@2x.png */; }; + B1D5EEA420BC06CB00983FB6 /* n_btn_followed_both@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E996BFA1ABBF56A00C704F1 /* n_btn_followed_both@2x.png */; }; + B1D5EEA520BC06CB00983FB6 /* messageSystem@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383B51B32640900D98648 /* messageSystem@2x.png */; }; + B1D5EEA620BC06CB00983FB6 /* PR_del_watcher@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CF6200EFEA400DEDF78 /* PR_del_watcher@2x.png */; }; + B1D5EEA720BC06CB00983FB6 /* taskWatchers@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED618231C3CB1AF0017946C /* taskWatchers@3x.png */; }; + B1D5EEA820BC06CB00983FB6 /* mrpr_icon_status_canmerge@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD01C1E540551008AA957 /* mrpr_icon_status_canmerge@3x.png */; }; + B1D5EEA920BC06CB00983FB6 /* topic_comment_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A821B6B24DE008DC439 /* topic_comment_icon@2x.png */; }; + B1D5EEAA20BC06CB00983FB6 /* project_item_activity@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8712C1EADF155003DACF0 /* project_item_activity@3x.png */; }; + B1D5EEAB20BC06CB00983FB6 /* member_type_75@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2F6A691C43CA4B00A25502 /* member_type_75@3x.png */; }; + B1D5EEAC20BC06CB00983FB6 /* bubble_right_play_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E8E597E1B6F91C40083CA02 /* bubble_right_play_2@2x.png */; }; + B1D5EEAD20BC06CB00983FB6 /* share_btn_coding@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3C71B96CDF800A5A0A8 /* share_btn_coding@2x.png */; }; + B1D5EEAE20BC06CB00983FB6 /* commentOrLikeBeginImg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF6319E240C40076D59C /* commentOrLikeBeginImg@2x.png */; }; + B1D5EEAF20BC06CB00983FB6 /* task_resource_reference_ProjectFile@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F571C7C5C4F00B5EBEA /* task_resource_reference_ProjectFile@3x.png */; }; + B1D5EEB020BC06CB00983FB6 /* PR_mergeChanges@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D271CA17A6400EE127C /* PR_mergeChanges@3x.png */; }; + B1D5EEB120BC06CB00983FB6 /* user_info_shop@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B19D4EF41F7210C300C598F3 /* user_info_shop@2x.png */; }; + B1D5EEB220BC06CB00983FB6 /* ReviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 134E1B991CA41217002A3E0D /* ReviewCell.xib */; }; + B1D5EEB320BC06CB00983FB6 /* login_suffix@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF7319E240C40076D59C /* login_suffix@2x.png */; }; + B1D5EEB420BC06CB00983FB6 /* password_look@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F0C1C74691B00B5EBEA /* password_look@3x.png */; }; + B1D5EEB520BC06CB00983FB6 /* emotion_list.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE711A0B8C6C006F9AD7 /* emotion_list.plist */; }; + B1D5EEB620BC06CB00983FB6 /* wiki_menu_1@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C252015D82600F52ABA /* wiki_menu_1@3x.png */; }; + B1D5EEB720BC06CB00983FB6 /* file_changeType_ADD@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC461AF1B39360F00D08970 /* file_changeType_ADD@2x.png */; }; + B1D5EEB820BC06CB00983FB6 /* icon_best_answer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE521D8EA9D100644086 /* icon_best_answer@2x.png */; }; + B1D5EEB920BC06CB00983FB6 /* git_icon_watched@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4D6ACA1B2571B100FD2E49 /* git_icon_watched@2x.png */; }; + B1D5EEBA20BC06CB00983FB6 /* coding_emoji_26@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE8D1A0C7E26006F9AD7 /* coding_emoji_26@2x.png */; }; + B1D5EEBB20BC06CB00983FB6 /* coding_emoji_35@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE961A0C7E26006F9AD7 /* coding_emoji_35@2x.png */; }; + B1D5EEBC20BC06CB00983FB6 /* task_activity_icon_update_description@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8719C1EB2D9E6003DACF0 /* task_activity_icon_update_description@3x.png */; }; + B1D5EEBD20BC06CB00983FB6 /* vip_4_40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689AF1EE100B200B01371 /* vip_4_40@3x.png */; }; + B1D5EEBE20BC06CB00983FB6 /* keyboard_keyboard@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE5E1A0A3424006F9AD7 /* keyboard_keyboard@2x.png */; }; + B1D5EEBF20BC06CB00983FB6 /* icon_release_tag@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EFF2069197C00E9BAD1 /* icon_release_tag@2x.png */; }; + B1D5EEC020BC06CB00983FB6 /* placeholder_monkey_round_48@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9119E240C40076D59C /* placeholder_monkey_round_48@2x.png */; }; + B1D5EEC120BC06CB00983FB6 /* PR_plus@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0A31E5D8D90008AA957 /* PR_plus@2x.png */; }; + B1D5EEC220BC06CB00983FB6 /* xtsegment_bordor_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFC319E240C40076D59C /* xtsegment_bordor_left@2x.png */; }; + B1D5EEC320BC06CB00983FB6 /* task_resource_reference_MergeRequestBean@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F541C7C5C4F00B5EBEA /* task_resource_reference_MergeRequestBean@2x.png */; }; + B1D5EEC420BC06CB00983FB6 /* icon_file_folder_out@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E1D99121DCAE67D00BAE585 /* icon_file_folder_out@2x.png */; }; + B1D5EEC520BC06CB00983FB6 /* messageProjectFollows@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE571D8FBDF500644086 /* messageProjectFollows@2x.png */; }; + B1D5EEC620BC06CB00983FB6 /* tweet_btn_comment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D12FF1C0ECB3400985AEB /* tweet_btn_comment@2x.png */; }; + B1D5EEC720BC06CB00983FB6 /* blankpage_image_ShopOrder@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423CD1E69401B0095F1CD /* blankpage_image_ShopOrder@3x.png */; }; + B1D5EEC820BC06CB00983FB6 /* banner__page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A6C1B69F920008DC439 /* banner__page_unselected@2x.png */; }; + B1D5EEC920BC06CB00983FB6 /* mrpr_icon_status_accepted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0191E540551008AA957 /* mrpr_icon_status_accepted@2x.png */; }; + B1D5EECA20BC06CB00983FB6 /* icon_file_ai@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7CA1A1B537E0037C098 /* icon_file_ai@2x.png */; }; + B1D5EECB20BC06CB00983FB6 /* PR_plus@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0A41E5D8D90008AA957 /* PR_plus@3x.png */; }; + B1D5EECC20BC06CB00983FB6 /* user_info_tweet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4831D82646000EED8C6 /* user_info_tweet@2x.png */; }; + B1D5EECD20BC06CB00983FB6 /* coding_emoji_21@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE881A0C7E26006F9AD7 /* coding_emoji_21@2x.png */; }; + B1D5EECE20BC06CB00983FB6 /* bubble_left_play_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E8E597B1B6F91C40083CA02 /* bubble_left_play_2@2x.png */; }; + B1D5EECF20BC06CB00983FB6 /* task_resource_reference_Task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F5B1C7C5C4F00B5EBEA /* task_resource_reference_Task@3x.png */; }; + B1D5EED020BC06CB00983FB6 /* PR_add_watcher@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CF4200EFEA400DEDF78 /* PR_add_watcher@2x.png */; }; + B1D5EED120BC06CB00983FB6 /* file_menu_icon_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E93F2351B84356500017916 /* file_menu_icon_delete@2x.png */; }; + B1D5EED220BC06CB00983FB6 /* button_red_close@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64201FF33DFE00ACFDCC /* button_red_close@3x.png */; }; + B1D5EED320BC06CB00983FB6 /* PR_merge@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1319D10A1CA81FE100729F82 /* PR_merge@3x.png */; }; + B1D5EED420BC06CB00983FB6 /* coding_emoji_25@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE8C1A0C7E26006F9AD7 /* coding_emoji_25@2x.png */; }; + B1D5EED520BC06CB00983FB6 /* keyboard_arrow_down@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E335D9A1B6F5E94003D0F3D /* keyboard_arrow_down@2x.png */; }; + B1D5EED620BC06CB00983FB6 /* taskResourceReference@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F3A1C7C45E700B5EBEA /* taskResourceReference@3x.png */; }; + B1D5EED720BC06CB00983FB6 /* tag_button_add@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F171C76BA3B00B5EBEA /* tag_button_add@2x.png */; }; + B1D5EED820BC06CB00983FB6 /* tweetsBtn_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E59D32A1D3E106D008C914B /* tweetsBtn_Nav@3x.png */; }; + B1D5EED920BC06CB00983FB6 /* icon_branch_protected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EFB206918D200E9BAD1 /* icon_branch_protected@2x.png */; }; + B1D5EEDA20BC06CB00983FB6 /* taskboard_normal_page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED88209453F2004A6E8A /* taskboard_normal_page_selected@2x.png */; }; + B1D5EEDB20BC06CB00983FB6 /* user_info_about@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4751D82646000EED8C6 /* user_info_about@2x.png */; }; + B1D5EEDC20BC06CB00983FB6 /* icon_branch_protected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EFA206918D100E9BAD1 /* icon_branch_protected@3x.png */; }; + B1D5EEDE20BC06CB00983FB6 /* task_activity_icon_create@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6384021B33C8E900D98648 /* task_activity_icon_create@2x.png */; }; + B1D5EEDF20BC06CB00983FB6 /* button_file_download_unable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EACB43D1A2C448F0097ABB3 /* button_file_download_unable@2x.png */; }; + B1D5EEE020BC06CB00983FB6 /* btn_setFrequent@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D09E6ABF1BF82DC6009D37F8 /* btn_setFrequent@2x.png */; }; + B1D5EEE120BC06CB00983FB6 /* task_activity_icon_remove_watcher@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871991EB2D9E6003DACF0 /* task_activity_icon_remove_watcher@3x.png */; }; + B1D5EEE220BC06CB00983FB6 /* markdown.html in Resources */ = {isa = PBXBuildFile; fileRef = B177F5C22060E6B1006709C2 /* markdown.html */; }; + B1D5EEE320BC06CB00983FB6 /* code_release_resource_ProjectTopic@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC3262073212D0077C956 /* code_release_resource_ProjectTopic@3x.png */; }; + B1D5EEE420BC06CB00983FB6 /* diff-ios.html in Resources */ = {isa = PBXBuildFile; fileRef = 4ECEF9F61D1BB7FB002A27D3 /* diff-ios.html */; }; + B1D5EEE520BC06CB00983FB6 /* little_phone_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAC8B691BA01F190060B0FC /* little_phone_icon@2x.png */; }; + B1D5EEE620BC06CB00983FB6 /* share_btn_sina@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3CC1B96CDF800A5A0A8 /* share_btn_sina@2x.png */; }; + B1D5EEE820BC06CB00983FB6 /* icon_file_pdf@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D21A1B537E0037C098 /* icon_file_pdf@2x.png */; }; + B1D5EEE920BC06CB00983FB6 /* tipIcon_TweetComment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4972DB1BB52A8300F3AC15 /* tipIcon_TweetComment@2x.png */; }; + B1D5EEEA20BC06CB00983FB6 /* blankpage_image_LoadFail@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C51E69401B0095F1CD /* blankpage_image_LoadFail@3x.png */; }; + B1D5EEEB20BC06CB00983FB6 /* taskboard_add_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED89209453F2004A6E8A /* taskboard_add_page_unselected@2x.png */; }; + B1D5EEEC20BC06CB00983FB6 /* PR_grant_undo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D221CA17A6400EE127C /* PR_grant_undo@2x.png */; }; + B1D5EEED20BC06CB00983FB6 /* back_green_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8711E1EADF0FF003DACF0 /* back_green_Nav@2x.png */; }; + B1D5EEEE20BC06CB00983FB6 /* file_changeType_COPY@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EFE8DAA1B394A0D004B7559 /* file_changeType_COPY@2x.png */; }; + B1D5EEEF20BC06CB00983FB6 /* shop_exchange_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 927AFF481BFF6DAD00AAE593 /* shop_exchange_icon@2x.png */; }; + B1D5EEF020BC06CB00983FB6 /* timeBtn_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C448061C02DCAC00DC1C4B /* timeBtn_Nav@3x.png */; }; + B1D5EEF120BC06CB00983FB6 /* close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D171CA17A6400EE127C /* close@2x.png */; }; + B1D5EEF220BC06CB00983FB6 /* PR_update_content@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D1C1CA17A6400EE127C /* PR_update_content@3x.png */; }; + B1D5EEF320BC06CB00983FB6 /* user_info_detail@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E996BFF1ABBF56A00C704F1 /* user_info_detail@2x.png */; }; + B1D5EEF420BC06CB00983FB6 /* vip_4_45@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689B01EE100B200B01371 /* vip_4_45@2x.png */; }; + B1D5EEF520BC06CB00983FB6 /* icon_recommended@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E8C51AF1AC1081500B4C51F /* icon_recommended@2x.png */; }; + B1D5EEF620BC06CB00983FB6 /* icon_file_doc@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7CC1A1B537E0037C098 /* icon_file_doc@2x.png */; }; + B1D5EEF720BC06CB00983FB6 /* hot_topic_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E09DCA41C156387001C9392 /* hot_topic_Nav@3x.png */; }; + B1D5EEF820BC06CB00983FB6 /* EACodeReleaseListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1817EF02068F4B400E9BAD1 /* EACodeReleaseListCell.xib */; }; + B1D5EEF920BC06CB00983FB6 /* user_info_setup@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4801D82646000EED8C6 /* user_info_setup@3x.png */; }; + B1D5EEFA20BC06CB00983FB6 /* tipIcon_ProjectTweet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4972DD1BB535B400F3AC15 /* tipIcon_ProjectTweet@2x.png */; }; + B1D5EEFB20BC06CB00983FB6 /* share_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E09DCA71C15662E001C9392 /* share_Nav@2x.png */; }; + B1D5EEFC20BC06CB00983FB6 /* tipIcon_User@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E62ADD919E28DA800963870 /* tipIcon_User@2x.png */; }; + B1D5EEFD20BC06CB00983FB6 /* taskPriority0_small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E63839C1B3262D300D98648 /* taskPriority0_small@2x.png */; }; + B1D5EEFE20BC06CB00983FB6 /* file_changeType_COPY@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CEA200EFDC600DEDF78 /* file_changeType_COPY@3x.png */; }; + B1D5EEFF20BC06CB00983FB6 /* btn_project_quit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2B19EF6306006BA8BD /* btn_project_quit@2x.png */; }; + B1D5EF0020BC06CB00983FB6 /* member_type_100@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2F6A661C43CA4B00A25502 /* member_type_100@2x.png */; }; + B1D5EF0120BC06CB00983FB6 /* dismissBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED558311B4FA68400FC10CB /* dismissBtn_Nav@2x.png */; }; + B1D5EF0220BC06CB00983FB6 /* coding_emoji_38@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497A1A918A7F00BD27F6 /* coding_emoji_38@2x.png */; }; + B1D5EF0320BC06CB00983FB6 /* keyboard_emotion_emoji@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE5C1A0A3424006F9AD7 /* keyboard_emotion_emoji@2x.png */; }; + B1D5EF0420BC06CB00983FB6 /* taskOwner@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EED9DCA1B539366000E5827 /* taskOwner@2x.png */; }; + B1D5EF0520BC06CB00983FB6 /* task_activity_icon_commit_refer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC461B51B3939DC00D08970 /* task_activity_icon_commit_refer@2x.png */; }; + B1D5EF0620BC06CB00983FB6 /* project_item_file@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8712E1EADF155003DACF0 /* project_item_file@3x.png */; }; + B1D5EF0720BC06CB00983FB6 /* btn_followed_yes@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2419EF6306006BA8BD /* btn_followed_yes@2x.png */; }; + B1D5EF0820BC06CB00983FB6 /* btn_project_add@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2919EF6306006BA8BD /* btn_project_add@2x.png */; }; + B1D5EF0920BC06CB00983FB6 /* project_item_activity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383C91B32665700D98648 /* project_item_activity@2x.png */; }; + B1D5EF0A20BC06CB00983FB6 /* tips_menu_icon_status@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4972E71BB5446900F3AC15 /* tips_menu_icon_status@2x.png */; }; + B1D5EF0B20BC06CB00983FB6 /* task_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447A01C02A3C700DC1C4B /* task_selected@2x.png */; }; + B1D5EF0C20BC06CB00983FB6 /* project_item_code@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8712D1EADF155003DACF0 /* project_item_code@3x.png */; }; + B1D5EF0D20BC06CB00983FB6 /* terminal_tail@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C90202953E40075A669 /* terminal_tail@2x.png */; }; + B1D5EF0E20BC06CB00983FB6 /* PR_add_reviewer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CF8200EFEA400DEDF78 /* PR_add_reviewer@2x.png */; }; + B1D5EF0F20BC06CB00983FB6 /* PR_push@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D1A1CA17A6400EE127C /* PR_push@3x.png */; }; + B1D5EF1020BC06CB00983FB6 /* shop_coding_coin_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 927AFF471BFF6DAD00AAE593 /* shop_coding_coin_icon@3x.png */; }; + B1D5EF1220BC06CB00983FB6 /* project_tag_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871B91EB338FD003DACF0 /* project_tag_icon@3x.png */; }; + B1D5EF1320BC06CB00983FB6 /* code_lang.plist in Resources */ = {isa = PBXBuildFile; fileRef = B1944153206CBE8C00147158 /* code_lang.plist */; }; + B1D5EF1420BC06CB00983FB6 /* logo_coding@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B10341272024633800853447 /* logo_coding@2x.png */; }; + B1D5EF1520BC06CB00983FB6 /* user_info_project@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B47D1D82646000EED8C6 /* user_info_project@2x.png */; }; + B1D5EF1620BC06CB00983FB6 /* button_file_createFolder_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CB0202D7D500075A669 /* button_file_createFolder_unable@3x.png */; }; + B1D5EF1720BC06CB00983FB6 /* icon_project_cell_setNormal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D09E6ABB1BF829F2009D37F8 /* icon_project_cell_setNormal@2x.png */; }; + B1D5EF1820BC06CB00983FB6 /* search_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C448041C02DCAC00DC1C4B /* search_Nav@3x.png */; }; + B1D5EF1920BC06CB00983FB6 /* keyboard_emotion_monkey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE5D1A0A3424006F9AD7 /* keyboard_emotion_monkey@2x.png */; }; + B1D5EF1A20BC06CB00983FB6 /* icon_file_ppt_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB87C1FCD006C0098B87B /* icon_file_ppt_big@2x.png */; }; + B1D5EF1B20BC06CB00983FB6 /* calendar_0xA1CF64@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871751EB18599003DACF0 /* calendar_0xA1CF64@2x.png */; }; + B1D5EF1C20BC06CB00983FB6 /* blankpage_image_File@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C31E69401B0095F1CD /* blankpage_image_File@3x.png */; }; + B1D5EF1D20BC06CB00983FB6 /* SVWebViewControllerActivityChrome-iPad.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E217EFF1A70EDC700F6DF88 /* SVWebViewControllerActivityChrome-iPad.png */; }; + B1D5EF1E20BC06CB00983FB6 /* settingBtn_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871231EADF0FF003DACF0 /* settingBtn_Nav@3x.png */; }; + B1D5EF1F20BC06CB00983FB6 /* PR_del_watcher@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CF9200EFEA400DEDF78 /* PR_del_watcher@3x.png */; }; + B1D5EF2020BC06CB00983FB6 /* tweet_btn_comment@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13001C0ECB3400985AEB /* tweet_btn_comment@3x.png */; }; + B1D5EF2120BC06CB00983FB6 /* task_activity_icon_update_deadline@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8719B1EB2D9E6003DACF0 /* task_activity_icon_update_deadline@3x.png */; }; + B1D5EF2220BC06CB00983FB6 /* close@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D181CA17A6400EE127C /* close@3x.png */; }; + B1D5EF2320BC06CB00983FB6 /* coding_emoji_14@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE811A0C7E26006F9AD7 /* coding_emoji_14@2x.png */; }; + B1D5EF2420BC06CB00983FB6 /* taskboard_normal_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8E209453F2004A6E8A /* taskboard_normal_page_unselected@2x.png */; }; + B1D5EF2520BC06CB00983FB6 /* loading_monkey@2x.gif in Resources */ = {isa = PBXBuildFile; fileRef = B1C871121EADAEE1003DACF0 /* loading_monkey@2x.gif */; }; + B1D5EF2620BC06CB00983FB6 /* search_icon_topic@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9411E02911E00DE1BC6 /* search_icon_topic@3x.png */; }; + B1D5EF2720BC06CB00983FB6 /* pop_User@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447CB1C02DB6700DC1C4B /* pop_User@3x.png */; }; + B1D5EF2820BC06CB00983FB6 /* taskPriority2_small@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8715F1EB182C7003DACF0 /* taskPriority2_small@3x.png */; }; + B1D5EF2920BC06CB00983FB6 /* project_tag_btn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871B81EB338FD003DACF0 /* project_tag_btn@3x.png */; }; + B1D5EF2A20BC06CB00983FB6 /* task_resource_reference_Task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F5A1C7C5C4F00B5EBEA /* task_resource_reference_Task@2x.png */; }; + B1D5EF2B20BC06CB00983FB6 /* tips_menu_icon_mkread@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4972E61BB5446900F3AC15 /* tips_menu_icon_mkread@2x.png */; }; + B1D5EF2C20BC06CB00983FB6 /* coding_emoji_15@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE821A0C7E26006F9AD7 /* coding_emoji_15@2x.png */; }; + B1D5EF2D20BC06CB00983FB6 /* shortcut_task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9291DFFF06E00DE1BC6 /* shortcut_task@2x.png */; }; + B1D5EF2E20BC06CB00983FB6 /* terminal_triangle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C98202953E40075A669 /* terminal_triangle@2x.png */; }; + B1D5EF2F20BC06CB00983FB6 /* topic_comment_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8716E1EB1832B003DACF0 /* topic_comment_icon@3x.png */; }; + B1D5EF3020BC06CB00983FB6 /* placeholder_monkey_round_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9019E240C40076D59C /* placeholder_monkey_round_40@2x.png */; }; + B1D5EF3120BC06CB00983FB6 /* PR_merge@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1319D1091CA81FE100729F82 /* PR_merge@2x.png */; }; + B1D5EF3220BC06CB00983FB6 /* tweet_btn_like@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13011C0ECB3400985AEB /* tweet_btn_like@2x.png */; }; + B1D5EF3320BC06CB00983FB6 /* PR_update@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 134116F61CB55E69005E6550 /* PR_update@2x.png */; }; + B1D5EF3420BC06CB00983FB6 /* login_email@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF7119E240C40076D59C /* login_email@2x.png */; }; + B1D5EF3520BC06CB00983FB6 /* tweetBtn_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C448071C02DCAC00DC1C4B /* tweetBtn_Nav@3x.png */; }; + B1D5EF3620BC06CB00983FB6 /* mrpr_icon_status_refused@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0201E540551008AA957 /* mrpr_icon_status_refused@3x.png */; }; + B1D5EF3720BC06CB00983FB6 /* login_wechat@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B640C1FECB58F00ACFDCC /* login_wechat@3x.png */; }; + B1D5EF3820BC06CB00983FB6 /* ReleaseNotes.txt in Resources */ = {isa = PBXBuildFile; fileRef = 4EDD8F4E1A36F42200E9E232 /* ReleaseNotes.txt */; }; + B1D5EF3920BC06CB00983FB6 /* PR_update_content@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D1B1CA17A6400EE127C /* PR_update_content@2x.png */; }; + B1D5EF3A20BC06CB00983FB6 /* ReviewerListController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13972E281CA6157C00489EBA /* ReviewerListController.xib */; }; + B1D5EF3B20BC06CB00983FB6 /* file_activity_icon_create@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871AD1EB2D9F0003DACF0 /* file_activity_icon_create@3x.png */; }; + B1D5EF3C20BC06CB00983FB6 /* tipIcon_MergeRequestComment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB119E240C40076D59C /* tipIcon_MergeRequestComment@2x.png */; }; + B1D5EF3D20BC06CB00983FB6 /* private_message_send_fail@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383B61B32640900D98648 /* private_message_send_fail@2x.png */; }; + B1D5EF3E20BC06CB00983FB6 /* terminal_box_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C91202953E40075A669 /* terminal_box_unselected@2x.png */; }; + B1D5EF3F20BC06CB00983FB6 /* keyboard_at@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE591A0A3424006F9AD7 /* keyboard_at@2x.png */; }; + B1D5EF4020BC06CB00983FB6 /* coding_emoji_13@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE801A0C7E26006F9AD7 /* coding_emoji_13@2x.png */; }; + B1D5EF4120BC06CB00983FB6 /* blankpage_image_Wiki@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D81E69401B0095F1CD /* blankpage_image_Wiki@2x.png */; }; + B1D5EF4220BC06CB00983FB6 /* PR_update_title@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 133DAA621CC13A30004D8501 /* PR_update_title@2x.png */; }; + B1D5EF4320BC06CB00983FB6 /* project_item_task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383CF1B32665700D98648 /* project_item_task@2x.png */; }; + B1D5EF4420BC06CB00983FB6 /* icon_file_apk_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8771FCD006B0098B87B /* icon_file_apk_big@2x.png */; }; + B1D5EF4520BC06CB00983FB6 /* file_menu_icon_share@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E93F2391B84356500017916 /* file_menu_icon_share@2x.png */; }; + B1D5EF4620BC06CB00983FB6 /* btn_delete_tweetimage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF5F19E240C40076D59C /* btn_delete_tweetimage@2x.png */; }; + B1D5EF4720BC06CB00983FB6 /* task_activity_icon_commit_refer@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871941EB2D9E6003DACF0 /* task_activity_icon_commit_refer@3x.png */; }; + B1D5EF4820BC06CB00983FB6 /* icon_code_executable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD04A1E542B2D008AA957 /* icon_code_executable@3x.png */; }; + B1D5EF4920BC06CB00983FB6 /* calendar_0x59A2FF@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871741EB18599003DACF0 /* calendar_0x59A2FF@3x.png */; }; + B1D5EF4A20BC06CB00983FB6 /* task_activity_icon_create@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871951EB2D9E6003DACF0 /* task_activity_icon_create@3x.png */; }; + B1D5EF4B20BC06CB00983FB6 /* icon_file_cell_move@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC5AD901A258DF8006FA97C /* icon_file_cell_move@2x.png */; }; + B1D5EF4C20BC06CB00983FB6 /* mrpr_icon_status_cannotmerge@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD01E1E540551008AA957 /* mrpr_icon_status_cannotmerge@3x.png */; }; + B1D5EF4D20BC06CB00983FB6 /* member_cell_edit_alias@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAECBBD1C44CB860096CA74 /* member_cell_edit_alias@3x.png */; }; + B1D5EF4E20BC06CB00983FB6 /* icon_file_cell_rename@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC5AD911A258DF8006FA97C /* icon_file_cell_rename@2x.png */; }; + B1D5EF4F20BC06CB00983FB6 /* PR_grant@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D351CA17A6400EE127C /* PR_grant@3x.png */; }; + B1D5EF5020BC06CB00983FB6 /* coding_emoji_03@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE761A0C7E26006F9AD7 /* coding_emoji_03@2x.png */; }; + B1D5EF5120BC06CB00983FB6 /* cell_checkmark@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871881EB1E608003DACF0 /* cell_checkmark@3x.png */; }; + B1D5EF5220BC06CB00983FB6 /* taskWatchers@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED618221C3CB1AF0017946C /* taskWatchers@2x.png */; }; + B1D5EF5320BC06CB00983FB6 /* icon_file_psd@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D41A1B537E0037C098 /* icon_file_psd@2x.png */; }; + B1D5EF5420BC06CB00983FB6 /* sex_man_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9819E240C40076D59C /* sex_man_icon@2x.png */; }; + B1D5EF5520BC06CB00983FB6 /* file_changeType_DELETE@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC461B01B39360F00D08970 /* file_changeType_DELETE@2x.png */; }; + B1D5EF5620BC06CB00983FB6 /* button_file_move_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAF202D7D4F0075A669 /* button_file_move_unable@3x.png */; }; + B1D5EF5720BC06CB00983FB6 /* button_file_history@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAA202D7D4E0075A669 /* button_file_history@3x.png */; }; + B1D5EF5820BC06CB00983FB6 /* shortcut_2FA@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9271DFFF06E00DE1BC6 /* shortcut_2FA@2x.png */; }; + B1D5EF5920BC06CB00983FB6 /* button_file_download_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA8202D7D4E0075A669 /* button_file_download_enable@3x.png */; }; + B1D5EF5A20BC06CB00983FB6 /* icon_file_ai_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB87B1FCD006C0098B87B /* icon_file_ai_big@2x.png */; }; + B1D5EF5B20BC06CB00983FB6 /* tipIcon_ProjectPayment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EBDC27A1BC501C00037EB66 /* tipIcon_ProjectPayment@2x.png */; }; + B1D5EF5C20BC06CB00983FB6 /* MIDAUTUMNIMAGE.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 4E6B07151BA4045E007D6027 /* MIDAUTUMNIMAGE.jpg */; }; + B1D5EF5D20BC06CB00983FB6 /* calendar_0xA9B3BE@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871771EB18599003DACF0 /* calendar_0xA9B3BE@2x.png */; }; + B1D5EF5E20BC06CB00983FB6 /* project_item_topic@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871551EAE003A003DACF0 /* project_item_topic@3x.png */; }; + B1D5EF5F20BC06CB00983FB6 /* service_terms.html in Resources */ = {isa = PBXBuildFile; fileRef = 4EE083DB1ADB736800CA342E /* service_terms.html */; }; + B1D5EF6020BC06CB00983FB6 /* task_activity_icon_update_priority@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383FA1B33C18700D98648 /* task_activity_icon_update_priority@2x.png */; }; + B1D5EF6120BC06CB00983FB6 /* icon_search_searchbar@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C448131C02F76600DC1C4B /* icon_search_searchbar@3x.png */; }; + B1D5EF6220BC06CB00983FB6 /* keyboard_voice@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E335D9C1B6F5E94003D0F3D /* keyboard_voice@2x.png */; }; + B1D5EF6320BC06CB00983FB6 /* search_icon_project@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E94B1E02911E00DE1BC6 /* search_icon_project@3x.png */; }; + B1D5EF6420BC06CB00983FB6 /* button_close@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13171C0EF48200985AEB /* button_close@3x.png */; }; + B1D5EF6520BC06CB00983FB6 /* btn_followed_not@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2319EF6306006BA8BD /* btn_followed_not@2x.png */; }; + B1D5EF6720BC06CB00983FB6 /* mrpr_icon_fileChange@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383DA1B3266C200D98648 /* mrpr_icon_fileChange@2x.png */; }; + B1D5EF6820BC06CB00983FB6 /* task_activity_icon_finish@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383F41B33C18700D98648 /* task_activity_icon_finish@2x.png */; }; + B1D5EF6920BC06CB00983FB6 /* vip_4_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689AE1EE100B200B01371 /* vip_4_40@2x.png */; }; + B1D5EF6A20BC06CB00983FB6 /* taskDeadline@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8713E1EADF1C1003DACF0 /* taskDeadline@3x.png */; }; + B1D5EF6B20BC06CB00983FB6 /* button_arrow_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED6181E1C3A732F0017946C /* button_arrow_left@2x.png */; }; + B1D5EF6C20BC06CB00983FB6 /* taskProgress@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383DF1B32676600D98648 /* taskProgress@2x.png */; }; + B1D5EF6D20BC06CB00983FB6 /* tweetBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447F31C02DCA200DC1C4B /* tweetBtn_Nav@2x.png */; }; + B1D5EF6E20BC06CB00983FB6 /* bubble_left_play_1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E8E597A1B6F91C40083CA02 /* bubble_left_play_1@2x.png */; }; + B1D5EF6F20BC06CB00983FB6 /* placeholder_monkey_round_54@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9319E240C40076D59C /* placeholder_monkey_round_54@2x.png */; }; + B1D5EF7020BC06CB00983FB6 /* tweet_btn_rewarded@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13081C0ECB3400985AEB /* tweet_btn_rewarded@3x.png */; }; + B1D5EF7120BC06CB00983FB6 /* vip_4_75@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689B21EE100B200B01371 /* vip_4_75@2x.png */; }; + B1D5EF7220BC06CB00983FB6 /* task_activity_icon_update_deadline@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383F81B33C18700D98648 /* task_activity_icon_update_deadline@2x.png */; }; + B1D5EF7320BC06CB00983FB6 /* TweetSendDetailLoctionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0A0519E11ABA918100551B61 /* TweetSendDetailLoctionCell.xib */; }; + B1D5EF7420BC06CB00983FB6 /* project_item_readme@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871311EADF155003DACF0 /* project_item_readme@3x.png */; }; + B1D5EF7520BC06CB00983FB6 /* icon_file_doc_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8701FCD006A0098B87B /* icon_file_doc_big@2x.png */; }; + B1D5EF7620BC06CB00983FB6 /* icon_locationed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF91F611B00B62A0021C951 /* icon_locationed@2x.png */; }; + B1D5EF7720BC06CB00983FB6 /* tip_normal_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ECEF9F91D1D0B3D002A27D3 /* tip_normal_Nav@3x.png */; }; + B1D5EF7820BC06CB00983FB6 /* tweet_btn_like@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13021C0ECB3400985AEB /* tweet_btn_like@3x.png */; }; + B1D5EF7920BC06CB00983FB6 /* icon_project_cell_nopin@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EE548261AE9166B00A92306 /* icon_project_cell_nopin@2x.png */; }; + B1D5EF7A20BC06CB00983FB6 /* coding_emoji_39@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497B1A918A7F00BD27F6 /* coding_emoji_39@2x.png */; }; + B1D5EF7C20BC06CB00983FB6 /* coding_emoji_08@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE7B1A0C7E26006F9AD7 /* coding_emoji_08@2x.png */; }; + B1D5EF7D20BC06CB00983FB6 /* tweet_btn_liked@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13031C0ECB3400985AEB /* tweet_btn_liked@2x.png */; }; + B1D5EF7E20BC06CB00983FB6 /* FileInfoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4E93F2431B85C4C300017916 /* FileInfoViewController.xib */; }; + B1D5EF7F20BC06CB00983FB6 /* register_step_un@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC480101C2A909D005F1772 /* register_step_un@3x.png */; }; + B1D5EF8020BC06CB00983FB6 /* blankpage_image_Task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423CF1E69401B0095F1CD /* blankpage_image_Task@3x.png */; }; + B1D5EF8120BC06CB00983FB6 /* TweetSendCreateLocationCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0A782FDC1AB5B78B00E96661 /* TweetSendCreateLocationCell.xib */; }; + B1D5EF8320BC06CB00983FB6 /* coding_emoji_36@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE971A0C7E26006F9AD7 /* coding_emoji_36@2x.png */; }; + B1D5EF8420BC06CB00983FB6 /* n_btn_followed_yes@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E996BFC1ABBF56A00C704F1 /* n_btn_followed_yes@2x.png */; }; + B1D5EF8520BC06CB00983FB6 /* store_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE068F1B784E9200179F4B /* store_icon@2x.png */; }; + B1D5EF8620BC06CB00983FB6 /* vip_4_75@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689B31EE100B200B01371 /* vip_4_75@3x.png */; }; + B1D5EF8720BC06CB00983FB6 /* button_tip_notice@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1CB8DD02047F1D000872197 /* button_tip_notice@2x.png */; }; + B1D5EF8820BC06CB00983FB6 /* addPictureBgImage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF818151B049C89005F974B /* addPictureBgImage@2x.png */; }; + B1D5EF8920BC06CB00983FB6 /* PRReviewer@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D2F1CA17A6400EE127C /* PRReviewer@3x.png */; }; + B1D5EF8A20BC06CB00983FB6 /* button_tip_notice@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1CB8DD12047F1D100872197 /* button_tip_notice@3x.png */; }; + B1D5EF8B20BC06CB00983FB6 /* password_look@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F0B1C74691B00B5EBEA /* password_look@2x.png */; }; + B1D5EF8C20BC06CB00983FB6 /* SVWebViewControllerActivityReport-iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED673271A8E12F900DF2D1A /* SVWebViewControllerActivityReport-iPad@2x.png */; }; + B1D5EF8D20BC06CB00983FB6 /* PointLikeHead@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D2A1CA17A6400EE127C /* PointLikeHead@3x.png */; }; + B1D5EF8E20BC06CB00983FB6 /* btn_file_reDo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D30C1A4A9F45009EDDF2 /* btn_file_reDo@2x.png */; }; + B1D5EF8F20BC06CB00983FB6 /* vip_4_30@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689AC1EE100B200B01371 /* vip_4_30@2x.png */; }; + B1D5EF9020BC06CB00983FB6 /* mrpr_icon_fileChange@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8714C1EADF3AC003DACF0 /* mrpr_icon_fileChange@3x.png */; }; + B1D5EF9120BC06CB00983FB6 /* project_item_reading@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B131E20F2074D2ED00D84FAA /* project_item_reading@3x.png */; }; + B1D5EF9220BC06CB00983FB6 /* icon_code_executable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0491E542B2D008AA957 /* icon_code_executable@2x.png */; }; + B1D5EF9320BC06CB00983FB6 /* user_info_company@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871491EADF217003DACF0 /* user_info_company@3x.png */; }; + B1D5EF9420BC06CB00983FB6 /* upgrade_success@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64231FF33DFF00ACFDCC /* upgrade_success@2x.png */; }; + B1D5EF9520BC06CB00983FB6 /* pop_Tweet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447BE1C02DB5400DC1C4B /* pop_Tweet@2x.png */; }; + B1D5EF9620BC06CB00983FB6 /* taskPriority1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E63839D1B3262D300D98648 /* taskPriority1@2x.png */; }; + B1D5EF9720BC06CB00983FB6 /* search_icon_pr@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9481E02911E00DE1BC6 /* search_icon_pr@2x.png */; }; + B1D5EF9820BC06CB00983FB6 /* logo_about@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF7419E240C40076D59C /* logo_about@2x.png */; }; + B1D5EF9920BC06CB00983FB6 /* button_file_upload_enable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E66EE251A28226000DA1B3E /* button_file_upload_enable@2x.png */; }; + B1D5EF9A20BC06CB00983FB6 /* share_btn_qq@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3CA1B96CDF800A5A0A8 /* share_btn_qq@2x.png */; }; + B1D5EF9B20BC06CB00983FB6 /* PR_review@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D2B1CA17A6400EE127C /* PR_review@2x.png */; }; + B1D5EF9C20BC06CB00983FB6 /* pop_Message@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447BB1C02DB5400DC1C4B /* pop_Message@2x.png */; }; + B1D5EF9D20BC06CB00983FB6 /* terminal_box_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C99202953E40075A669 /* terminal_box_selected@2x.png */; }; + B1D5EF9E20BC06CB00983FB6 /* git_icon_watch@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D09E6AC31BF84AE5009D37F8 /* git_icon_watch@2x.png */; }; + B1D5EF9F20BC06CB00983FB6 /* icon_file_pdf_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8721FCD006B0098B87B /* icon_file_pdf_big@2x.png */; }; + B1D5EFA120BC06CB00983FB6 /* placeholder_coding_square_80@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8D19E240C40076D59C /* placeholder_coding_square_80@2x.png */; }; + B1D5EFA220BC06CB00983FB6 /* mrpr_icon_status_cannotmerge@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD01D1E540551008AA957 /* mrpr_icon_status_cannotmerge@2x.png */; }; + B1D5EFA420BC06CB00983FB6 /* loading_loop@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8ED2AAF819F60D5200607A1D /* loading_loop@2x.png */; }; + B1D5EFA520BC06CB00983FB6 /* code_release_resource_Task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31C20731FF10077C956 /* code_release_resource_Task@3x.png */; }; + B1D5EFA620BC06CB00983FB6 /* PR_refuse@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D201CA17A6400EE127C /* PR_refuse@2x.png */; }; + B1D5EFA720BC06CB00983FB6 /* icon_topic_hotTop@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8B35164B1B6CE9460049BC45 /* icon_topic_hotTop@2x.png */; }; + B1D5EFA820BC06CB00983FB6 /* wiki_revert@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C222015D82600F52ABA /* wiki_revert@3x.png */; }; + B1D5EFA920BC06CB00983FB6 /* share_btn_qzone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3CB1B96CDF800A5A0A8 /* share_btn_qzone@2x.png */; }; + B1D5EFAA20BC06CB00983FB6 /* project_tag_btn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EE1A23B1B5F3834004284F1 /* project_tag_btn@2x.png */; }; + B1D5EFAB20BC06CB00983FB6 /* tipIcon_BranchMember@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5C06E71AC2B34800F427C5 /* tipIcon_BranchMember@2x.png */; }; + B1D5EFAC20BC06CB00983FB6 /* messageRight_bg_highlight_img@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E774C241B870DC70026E5AB /* messageRight_bg_highlight_img@2x.png */; }; + B1D5EFAD20BC06CB00983FB6 /* tipIcon_PullRequestBean@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB519E240C40076D59C /* tipIcon_PullRequestBean@2x.png */; }; + B1D5EFAE20BC06CB00983FB6 /* btn_privateMsg_friend@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2619EF6306006BA8BD /* btn_privateMsg_friend@2x.png */; }; + B1D5EFAF20BC06CB00983FB6 /* btn_file_cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E07D30B1A4A9F45009EDDF2 /* btn_file_cancel@2x.png */; }; + B1D5EFB020BC06CB00983FB6 /* task_activity_icon_restore@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8719A1EB2D9E6003DACF0 /* task_activity_icon_restore@3x.png */; }; + B1D5EFB120BC06CB00983FB6 /* user_info_file@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4781D82646000EED8C6 /* user_info_file@3x.png */; }; + B1D5EFB220BC06CB00983FB6 /* shop_coding_coin_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 927AFF461BFF6DAD00AAE593 /* shop_coding_coin_icon@2x.png */; }; + B1D5EFB320BC06CB00983FB6 /* shortcut_task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E92A1DFFF06E00DE1BC6 /* shortcut_task@3x.png */; }; + B1D5EFB520BC06CB00983FB6 /* taskPriority1_small@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8715D1EB182C7003DACF0 /* taskPriority1_small@3x.png */; }; + B1D5EFB620BC06CB00983FB6 /* tasks_all@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8718C1EB1E608003DACF0 /* tasks_all@3x.png */; }; + B1D5EFB720BC06CB00983FB6 /* coding_emoji_09@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE7C1A0C7E26006F9AD7 /* coding_emoji_09@2x.png */; }; + B1D5EFB820BC06CB00983FB6 /* map_annotation@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0A06C2521AB9E57900AB3B03 /* map_annotation@2x.png */; }; + B1D5EFB920BC06CB00983FB6 /* code_release_resource_MergeRequestBean@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC3272073212E0077C956 /* code_release_resource_MergeRequestBean@2x.png */; }; + B1D5EFBA20BC06CB00983FB6 /* task_resource_reference_ProjectTopic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F581C7C5C4F00B5EBEA /* task_resource_reference_ProjectTopic@2x.png */; }; + B1D5EFBB20BC06CB00983FB6 /* task_activity_icon_update@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383F71B33C18700D98648 /* task_activity_icon_update@2x.png */; }; + B1D5EFBC20BC06CB00983FB6 /* button_file_activity@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAB202D7D4F0075A669 /* button_file_activity@3x.png */; }; + B1D5EFBD20BC06CB00983FB6 /* coding_emoji_41@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497D1A918A7F00BD27F6 /* coding_emoji_41@2x.png */; }; + B1D5EFBE20BC06CB00983FB6 /* project_item_task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871321EADF155003DACF0 /* project_item_task@3x.png */; }; + B1D5EFBF20BC06CB00983FB6 /* icon_code_image@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0801E55AC6E008AA957 /* icon_code_image@2x.png */; }; + B1D5EFC020BC06CB00983FB6 /* icon_file_xls_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB88A1FCD0A6D0098B87B /* icon_file_xls_big@2x.png */; }; + B1D5EFC120BC06CB00983FB6 /* user_info_topic@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4821D82646000EED8C6 /* user_info_topic@3x.png */; }; + B1D5EFC220BC06CB00983FB6 /* task_activity_icon_remove_watcher@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED618201C3BD79B0017946C /* task_activity_icon_remove_watcher@2x.png */; }; + B1D5EFC320BC06CB00983FB6 /* project_item_reading@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B131E2102074D2EE00D84FAA /* project_item_reading@2x.png */; }; + B1D5EFC420BC06CB00983FB6 /* shop_nar_history_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 927AFF4A1BFF6DAD00AAE593 /* shop_nar_history_icon@2x.png */; }; + B1D5EFC520BC06CB00983FB6 /* taskPriority3_small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383A21B3262D300D98648 /* taskPriority3_small@2x.png */; }; + B1D5EFC620BC06CB00983FB6 /* coding_emoji_18@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE851A0C7E26006F9AD7 /* coding_emoji_18@2x.png */; }; + B1D5EFC720BC06CB00983FB6 /* user_info_about@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4761D82646000EED8C6 /* user_info_about@3x.png */; }; + B1D5EFC820BC06CB00983FB6 /* WeiboSDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B12B63F51FE8A77200ACFDCC /* WeiboSDK.bundle */; }; + B1D5EFC920BC06CB00983FB6 /* EAPayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB88E1FCE61D60098B87B /* EAPayViewController.xib */; }; + B1D5EFCA20BC06CB00983FB6 /* calendar_0xA1CF64@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871761EB18599003DACF0 /* calendar_0xA1CF64@3x.png */; }; + B1D5EFCB20BC06CB00983FB6 /* user_info_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4771D82646000EED8C6 /* user_info_file@2x.png */; }; + B1D5EFCC20BC06CB00983FB6 /* ShopSwitchCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = B19D4EF11F710EF900C598F3 /* ShopSwitchCell.xib */; }; + B1D5EFCD20BC06CB00983FB6 /* cell_arrow_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8714E1EADF48B003DACF0 /* cell_arrow_left@2x.png */; }; + B1D5EFCE20BC06CB00983FB6 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = B12B64571FFB61AD00ACFDCC /* LICENSE */; }; + B1D5EFCF20BC06CB00983FB6 /* member_type_90@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2F6A6B1C43CA4B00A25502 /* member_type_90@3x.png */; }; + B1D5EFD120BC06CB00983FB6 /* location_checkmark@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0A6E6BB81AB168B0004C0107 /* location_checkmark@2x.png */; }; + B1D5EFD220BC06CB00983FB6 /* icon_code_tree@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD04B1E542B2D008AA957 /* icon_code_tree@2x.png */; }; + B1D5EFD320BC06CB00983FB6 /* nav_project_task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF7F19E240C40076D59C /* nav_project_task@2x.png */; }; + B1D5EFD420BC06CB00983FB6 /* calendar_0xF68435@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8717B1EB18599003DACF0 /* calendar_0xF68435@2x.png */; }; + B1D5EFD520BC06CB00983FB6 /* share_btn_evernote@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3C91B96CDF800A5A0A8 /* share_btn_evernote@2x.png */; }; + B1D5EFD620BC06CB00983FB6 /* project_item_branch@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EF32069186C00E9BAD1 /* project_item_branch@2x.png */; }; + B1D5EFD720BC06CB00983FB6 /* PR_push@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D191CA17A6400EE127C /* PR_push@2x.png */; }; + B1D5EFD820BC06CB00983FB6 /* vip_4_45@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689B11EE100B200B01371 /* vip_4_45@3x.png */; }; + B1D5EFD920BC06CB00983FB6 /* tipIcon_ProjectTopicCommentVote@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E54C24D1D90E05400A61023 /* tipIcon_ProjectTopicCommentVote@2x.png */; }; + B1D5EFDB20BC06CB00983FB6 /* icon_file_share_logo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E1D991B1DCAE69600BAE585 /* icon_file_share_logo@3x.png */; }; + B1D5EFDC20BC06CB00983FB6 /* calendar_0xF68435@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8717C1EB18599003DACF0 /* calendar_0xF68435@3x.png */; }; + B1D5EFDD20BC06CB00983FB6 /* file_activity_icon_create@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE06BC1B7B51AF00179F4B /* file_activity_icon_create@2x.png */; }; + B1D5EFDE20BC06CB00983FB6 /* tasks_all@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFA819E240C40076D59C /* tasks_all@2x.png */; }; + B1D5EFDF20BC06CB00983FB6 /* EACodeReleaseTopCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1817F0220691B2700E9BAD1 /* EACodeReleaseTopCell.xib */; }; + B1D5EFE020BC06CB00983FB6 /* merge-request coding@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D241CA17A6400EE127C /* merge-request coding@2x.png */; }; + B1D5EFE120BC06CB00983FB6 /* file_changeType_ADD@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CE9200EFDC600DEDF78 /* file_changeType_ADD@3x.png */; }; + B1D5EFE220BC06CB00983FB6 /* calendar_0xA9B3BE@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871781EB18599003DACF0 /* calendar_0xA9B3BE@3x.png */; }; + B1D5EFE320BC06CB00983FB6 /* messageLeft_bg_highlight_img@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E774C231B870DC70026E5AB /* messageLeft_bg_highlight_img@2x.png */; }; + B1D5EFE420BC06CB00983FB6 /* PR_update@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 134116F71CB55E69005E6550 /* PR_update@3x.png */; }; + B1D5EFE520BC06CB00983FB6 /* nav_project_topic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8019E240C40076D59C /* nav_project_topic@2x.png */; }; + B1D5EFE620BC06CB00983FB6 /* share_btn_wxtimeline@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3CE1B96CDF800A5A0A8 /* share_btn_wxtimeline@2x.png */; }; + B1D5EFE720BC06CB00983FB6 /* icon_file_zip@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D71A1B537E0037C098 /* icon_file_zip@2x.png */; }; + B1D5EFE820BC06CB00983FB6 /* me_normal@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D21C02DB8900DC1C4B /* me_normal@3x.png */; }; + B1D5EFE920BC06CB00983FB6 /* pop_Project@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447BC1C02DB5400DC1C4B /* pop_Project@2x.png */; }; + B1D5EFEB20BC06CB00983FB6 /* logo_coding_top@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EFE8DAE1B3960E6004B7559 /* logo_coding_top@2x.png */; }; + B1D5EFEC20BC06CB00983FB6 /* tipIcon_ProjectTweetComment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4972DE1BB535B400F3AC15 /* tipIcon_ProjectTweetComment@2x.png */; }; + B1D5EFED20BC06CB00983FB6 /* button_file_createFolder_enable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E66EE211A28226000DA1B3E /* button_file_createFolder_enable@2x.png */; }; + B1D5EFEE20BC06CB00983FB6 /* wiki_menu_2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C202015D82600F52ABA /* wiki_menu_2@2x.png */; }; + B1D5EFEF20BC06CB00983FB6 /* skill_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64161FF0E4CA00ACFDCC /* skill_delete@2x.png */; }; + B1D5EFF020BC06CB00983FB6 /* calendar_0xF56061@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871791EB18599003DACF0 /* calendar_0xF56061@2x.png */; }; + B1D5EFF120BC06CB00983FB6 /* project_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C4479E1C02A3C700DC1C4B /* project_selected@2x.png */; }; + B1D5EFF220BC06CB00983FB6 /* tipIcon_QcTask@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB719E240C40076D59C /* tipIcon_QcTask@2x.png */; }; + B1D5EFF320BC06CB00983FB6 /* time_clock_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A811B6B24DE008DC439 /* time_clock_icon@2x.png */; }; + B1D5EFF420BC06CB00983FB6 /* tag_button_randomColor@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F1B1C76BA3B00B5EBEA /* tag_button_randomColor@2x.png */; }; + B1D5EFF520BC06CB00983FB6 /* blankpage_image_Notice@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C91E69401B0095F1CD /* blankpage_image_Notice@3x.png */; }; + B1D5EFF620BC06CB00983FB6 /* project_item_mr_pr@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871301EADF155003DACF0 /* project_item_mr_pr@3x.png */; }; + B1D5EFF720BC06CB00983FB6 /* button_tip_close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64251FF33E0000ACFDCC /* button_tip_close@2x.png */; }; + B1D5EFF820BC06CB00983FB6 /* task_activity_icon_reassign@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383F51B33C18700D98648 /* task_activity_icon_reassign@2x.png */; }; + B1D5EFF920BC06CB00983FB6 /* task_resource_reference_ProjectFile@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F561C7C5C4F00B5EBEA /* task_resource_reference_ProjectFile@2x.png */; }; + B1D5EFFA20BC06CB00983FB6 /* messageAT@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383B11B32640900D98648 /* messageAT@2x.png */; }; + B1D5EFFB20BC06CB00983FB6 /* tweet_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447A21C02A3C700DC1C4B /* tweet_selected@2x.png */; }; + B1D5EFFC20BC06CB00983FB6 /* icon_file_code@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7CD1A1B537E0037C098 /* icon_file_code@2x.png */; }; + B1D5EFFE20BC06CB00983FB6 /* back_T_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871211EADF0FF003DACF0 /* back_T_Nav@3x.png */; }; + B1D5EFFF20BC06CB00983FB6 /* me_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C4479A1C02A3C700DC1C4B /* me_selected@2x.png */; }; + B1D5F00020BC06CB00983FB6 /* tipIcon_PullRequestComment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB619E240C40076D59C /* tipIcon_PullRequestComment@2x.png */; }; + B1D5F00120BC06CB00983FB6 /* tipIcon_Depot@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4972E31BB543A900F3AC15 /* tipIcon_Depot@2x.png */; }; + B1D5F00220BC06CB00983FB6 /* cell_checkmark@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EF6433B19FE696B00F7EEB0 /* cell_checkmark@2x.png */; }; + B1D5F00320BC06CB00983FB6 /* PR_add_label@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CFC200EFEA400DEDF78 /* PR_add_label@2x.png */; }; + B1D5F00520BC06CB00983FB6 /* logo_coding@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B10341282024633900853447 /* logo_coding@3x.png */; }; + B1D5F00620BC06CB00983FB6 /* PR_del_reviewer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CFD200EFEA400DEDF78 /* PR_del_reviewer@2x.png */; }; + B1D5F00720BC06CB00983FB6 /* task_activity_icon_reassign@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871981EB2D9E6003DACF0 /* task_activity_icon_reassign@3x.png */; }; + B1D5F00820BC06CB00983FB6 /* placeholder_coding_square_150@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8B19E240C40076D59C /* placeholder_coding_square_150@2x.png */; }; + B1D5F00920BC06CB00983FB6 /* member_cell_edit_remove@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAECBBE1C44CB860096CA74 /* member_cell_edit_remove@2x.png */; }; + B1D5F00B20BC06CB00983FB6 /* PR_TaskResource@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 134116F21CB54AF8005E6550 /* PR_TaskResource@2x.png */; }; + B1D5F00C20BC06CB00983FB6 /* icon_file_share_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E1D991A1DCAE69600BAE585 /* icon_file_share_logo@2x.png */; }; + B1D5F00D20BC06CB00983FB6 /* blankpage_image_Notice@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C81E69401B0095F1CD /* blankpage_image_Notice@2x.png */; }; + B1D5F00E20BC06CB00983FB6 /* placeholder_monkey_round_25@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8E19E240C40076D59C /* placeholder_monkey_round_25@2x.png */; }; + B1D5F00F20BC06CB00983FB6 /* coding_emoji_gif_05@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB3431BA6AEB4002F27C4 /* coding_emoji_gif_05@2x.png */; }; + B1D5F01020BC06CB00983FB6 /* addBtn_Artboard@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8711D1EADF0FF003DACF0 /* addBtn_Artboard@3x.png */; }; + B1D5F01120BC06CB00983FB6 /* coding_emoji_22@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE891A0C7E26006F9AD7 /* coding_emoji_22@2x.png */; }; + B1D5F01220BC06CB00983FB6 /* tweet_btn_rewarded@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13071C0ECB3400985AEB /* tweet_btn_rewarded@2x.png */; }; + B1D5F01320BC06CB00983FB6 /* button_file_move_enable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E66EE241A28226000DA1B3E /* button_file_move_enable@2x.png */; }; + B1D5F01420BC06CB00983FB6 /* messageSystem@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871171EADF0B1003DACF0 /* messageSystem@3x.png */; }; + B1D5F01520BC06CB00983FB6 /* button_red_close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64211FF33DFF00ACFDCC /* button_red_close@2x.png */; }; + B1D5F01620BC06CB00983FB6 /* blankpage_image_Wiki@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D91E69401B0095F1CD /* blankpage_image_Wiki@3x.png */; }; + B1D5F01720BC06CB00983FB6 /* project_tag_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EE1A23C1B5F3834004284F1 /* project_tag_icon@2x.png */; }; + B1D5F01820BC06CB00983FB6 /* button_terminal@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B11DC7BF20245728004E76A9 /* button_terminal@3x.png */; }; + B1D5F01920BC06CB00983FB6 /* wiki_menu_0@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C212015D82600F52ABA /* wiki_menu_0@3x.png */; }; + B1D5F01A20BC06CB00983FB6 /* PR_update_title@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 133DAA631CC13A30004D8501 /* PR_update_title@3x.png */; }; + B1D5F01B20BC06CB00983FB6 /* wiki.html in Resources */ = {isa = PBXBuildFile; fileRef = B177F5C02060E6B1006709C2 /* wiki.html */; }; + B1D5F01C20BC06CB00983FB6 /* task_activity_icon_update@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8719F1EB2D9E6003DACF0 /* task_activity_icon_update@3x.png */; }; + B1D5F01D20BC06CB00983FB6 /* timeline_line_read@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFAD19E240C40076D59C /* timeline_line_read@2x.png */; }; + B1D5F01E20BC06CB00983FB6 /* git_icon_fork@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D09E6AC51BF84AF9009D37F8 /* git_icon_fork@2x.png */; }; + B1D5F01F20BC06CB00983FB6 /* tag_button_add@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F181C76BA3B00B5EBEA /* tag_button_add@3x.png */; }; + B1D5F02020BC06CB00983FB6 /* taskProgress@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871411EADF1C1003DACF0 /* taskProgress@3x.png */; }; + B1D5F02120BC06CB00983FB6 /* taskboard_blankpage@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED81209453E8004A6E8A /* taskboard_blankpage@3x.png */; }; + B1D5F02320BC06CB00983FB6 /* blankpage_image_Task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423CE1E69401B0095F1CD /* blankpage_image_Task@2x.png */; }; + B1D5F02420BC06CB00983FB6 /* task_activity_icon_update_label@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8719D1EB2D9E6003DACF0 /* task_activity_icon_update_label@3x.png */; }; + B1D5F02520BC06CB00983FB6 /* search_icon_mr@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9451E02911E00DE1BC6 /* search_icon_mr@3x.png */; }; + B1D5F02620BC06CB00983FB6 /* blankpage_image_Tweet@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D71E69401B0095F1CD /* blankpage_image_Tweet@3x.png */; }; + B1D5F02720BC06CB00983FB6 /* user_info_company@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871481EADF217003DACF0 /* user_info_company@2x.png */; }; + B1D5F02820BC06CB00983FB6 /* scan_line@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E94C4EE1B4B73BB00EB668A /* scan_line@2x.png */; }; + B1D5F02920BC06CB00983FB6 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = B12B64581FFB61AD00ACFDCC /* README.md */; }; + B1D5F02A20BC06CB00983FB6 /* icon_file_unknown@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D11A1B537E0037C098 /* icon_file_unknown@2x.png */; }; + B1D5F02B20BC06CB00983FB6 /* search_icon_tweet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E93E1E02911E00DE1BC6 /* search_icon_tweet@2x.png */; }; + B1D5F02C20BC06CB00983FB6 /* tip_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ECEFA001D1D0B4B002A27D3 /* tip_bg@2x.png */; }; + B1D5F02D20BC06CB00983FB6 /* SVWebViewControllerActivityChrome-iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E217F001A70EDC700F6DF88 /* SVWebViewControllerActivityChrome-iPad@2x.png */; }; + B1D5F02E20BC06CB00983FB6 /* PR_grant@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D341CA17A6400EE127C /* PR_grant@2x.png */; }; + B1D5F02F20BC06CB00983FB6 /* settingBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871221EADF0FF003DACF0 /* settingBtn_Nav@2x.png */; }; + B1D5F03020BC06CB00983FB6 /* user_info_topic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4811D82646000EED8C6 /* user_info_topic@2x.png */; }; + B1D5F03120BC06CB00983FB6 /* project_item_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383EB1B32A2C300D98648 /* project_item_file@2x.png */; }; + B1D5F03220BC06CB00983FB6 /* icon_arrow_searchHistory@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8B35164A1B6CE9460049BC45 /* icon_arrow_searchHistory@2x.png */; }; + B1D5F03320BC06CB00983FB6 /* icon_file_movie_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8751FCD006B0098B87B /* icon_file_movie_big@2x.png */; }; + B1D5F03420BC06CB00983FB6 /* icon_file_md_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8761FCD006B0098B87B /* icon_file_md_big@2x.png */; }; + B1D5F03520BC06CB00983FB6 /* nav_project_member@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF7E19E240C40076D59C /* nav_project_member@2x.png */; }; + B1D5F03620BC06CB00983FB6 /* blankpage_image_MessageList@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C61E69401B0095F1CD /* blankpage_image_MessageList@2x.png */; }; + B1D5F03720BC06CB00983FB6 /* password_unlook@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F0E1C74691B00B5EBEA /* password_unlook@3x.png */; }; + B1D5F03820BC06CB00983FB6 /* timeline_icon_unread@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16EEF07208DDBB6005ABFD5 /* timeline_icon_unread@3x.png */; }; + B1D5F03920BC06CB00983FB6 /* task_activity_icon_add_milestone@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C120B2B24E009427FC /* task_activity_icon_add_milestone@3x.png */; }; + B1D5F03A20BC06CB00983FB6 /* pop_Message@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447C71C02DB6700DC1C4B /* pop_Message@3x.png */; }; + B1D5F03B20BC06CB00983FB6 /* EABoardTaskListBlankView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B152ED6420935594004A6E8A /* EABoardTaskListBlankView.xib */; }; + B1D5F03C20BC06CB00983FB6 /* comment_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E63840A1B33F9B400D98648 /* comment_bg@2x.png */; }; + B1D5F03D20BC06CB00983FB6 /* button_scan@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F2C1C77138A00B5EBEA /* button_scan@2x.png */; }; + B1D5F03E20BC06CB00983FB6 /* terminal_triangle@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C96202953E40075A669 /* terminal_triangle@3x.png */; }; + B1D5F03F20BC06CB00983FB6 /* tweetsBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E59D3291D3E106D008C914B /* tweetsBtn_Nav@2x.png */; }; + B1D5F04020BC06CB00983FB6 /* coding_emoji_12@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE7F1A0C7E26006F9AD7 /* coding_emoji_12@2x.png */; }; + B1D5F04120BC06CB00983FB6 /* terminal_box_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C92202953E40075A669 /* terminal_box_unselected@3x.png */; }; + B1D5F04420BC06CB00983FB6 /* terminal_tail@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C93202953E40075A669 /* terminal_tail@3x.png */; }; + B1D5F04520BC06CB00983FB6 /* task_normal@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D81C02DB8900DC1C4B /* task_normal@3x.png */; }; + B1D5F04620BC06CB00983FB6 /* vip_3_75@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689AA1EE100B200B01371 /* vip_3_75@2x.png */; }; + B1D5F04720BC06CB00983FB6 /* mock_hotTopiclist.geojson in Resources */ = {isa = PBXBuildFile; fileRef = 4E0BD87C1B6C7F0A0061CAA6 /* mock_hotTopiclist.geojson */; }; + B1D5F04820BC06CB00983FB6 /* icon_project_cell_pin@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EE548271AE9166B00A92306 /* icon_project_cell_pin@2x.png */; }; + B1D5F04920BC06CB00983FB6 /* pop_2FA@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447BA1C02DB5400DC1C4B /* pop_2FA@2x.png */; }; + B1D5F04A20BC06CB00983FB6 /* PR_add_reviewer@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CF7200EFEA400DEDF78 /* PR_add_reviewer@3x.png */; }; + B1D5F04B20BC06CB00983FB6 /* nav_project_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EBD0C651A1F2011004B4284 /* nav_project_file@2x.png */; }; + B1D5F04C20BC06CB00983FB6 /* user_info_shop@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B19D4EF51F7210C300C598F3 /* user_info_shop@3x.png */; }; + B1D5F04D20BC06CB00983FB6 /* pop_Task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447BD1C02DB5400DC1C4B /* pop_Task@2x.png */; }; + B1D5F04E20BC06CB00983FB6 /* section_btn_close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9619E240C40076D59C /* section_btn_close@2x.png */; }; + B1D5F04F20BC06CB00983FB6 /* country_code.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4EBD7FB01CE482A400B3AF49 /* country_code.plist */; }; + B1D5F05020BC06CB00983FB6 /* file_menu_icon_info@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E93F2371B84356500017916 /* file_menu_icon_info@2x.png */; }; + B1D5F05120BC06CB00983FB6 /* coding_emoji_07@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE7A1A0C7E26006F9AD7 /* coding_emoji_07@2x.png */; }; + B1D5F05220BC06CB00983FB6 /* project_item_taskboard@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED7B20945377004A6E8A /* project_item_taskboard@3x.png */; }; + B1D5F05320BC06CB00983FB6 /* merge-request coding@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D251CA17A6400EE127C /* merge-request coding@3x.png */; }; + B1D5F05520BC06CB00983FB6 /* blankpage_image_Team@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D11E69401B0095F1CD /* blankpage_image_Team@3x.png */; }; + B1D5F05620BC06CB00983FB6 /* mrpr_icon_status_canmerge@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD01B1E540551008AA957 /* mrpr_icon_status_canmerge@2x.png */; }; + B1D5F05720BC06CB00983FB6 /* blankpage_image_MessageList@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C71E69401B0095F1CD /* blankpage_image_MessageList@3x.png */; }; + B1D5F05820BC06CB00983FB6 /* taskPriority1_small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E63839E1B3262D300D98648 /* taskPriority1_small@2x.png */; }; + B1D5F05920BC06CB00983FB6 /* me_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D31C02DB8900DC1C4B /* me_selected@3x.png */; }; + B1D5F05A20BC06CB00983FB6 /* timeBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447F21C02DCA200DC1C4B /* timeBtn_Nav@2x.png */; }; + B1D5F05B20BC06CB00983FB6 /* bubble_right_play_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E8E597C1B6F91C40083CA02 /* bubble_right_play_0@2x.png */; }; + B1D5F05C20BC06CB00983FB6 /* ShopMutileValueCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4ED6181C1C3A72CF0017946C /* ShopMutileValueCell.xib */; }; + B1D5F05D20BC06CB00983FB6 /* task_activity_icon_update_priority@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8719E1EB2D9E6003DACF0 /* task_activity_icon_update_priority@3x.png */; }; + B1D5F05E20BC06CB00983FB6 /* icon_file_movie@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7CF1A1B537E0037C098 /* icon_file_movie@2x.png */; }; + B1D5F05F20BC06CB00983FB6 /* file_menu_icon_open@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E93F2381B84356500017916 /* file_menu_icon_open@2x.png */; }; + B1D5F06020BC06CB00983FB6 /* addBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447EA1C02DCA200DC1C4B /* addBtn_Nav@2x.png */; }; + B1D5F06120BC06CB00983FB6 /* messageAT@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871141EADF0B1003DACF0 /* messageAT@3x.png */; }; + B1D5F06220BC06CB00983FB6 /* search_icon_file@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9431E02911E00DE1BC6 /* search_icon_file@3x.png */; }; + B1D5F06420BC06CB00983FB6 /* PR_review@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D2C1CA17A6400EE127C /* PR_review@3x.png */; }; + B1D5F06520BC06CB00983FB6 /* keyboard_emotion_monkey_gif@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB33E1BA6A2FE002F27C4 /* keyboard_emotion_monkey_gif@2x.png */; }; + B1D5F06620BC06CB00983FB6 /* coding_emoji_29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE901A0C7E26006F9AD7 /* coding_emoji_29@2x.png */; }; + B1D5F06720BC06CB00983FB6 /* file_activity_icon_move_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE06BD1B7B51AF00179F4B /* file_activity_icon_move_file@2x.png */; }; + B1D5F06820BC06CB00983FB6 /* addBtn_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447FE1C02DCAC00DC1C4B /* addBtn_Nav@3x.png */; }; + B1D5F06920BC06CB00983FB6 /* vip_3_75@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689AB1EE100B200B01371 /* vip_3_75@3x.png */; }; + B1D5F06A20BC06CB00983FB6 /* info_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C448021C02DCAC00DC1C4B /* info_Nav@3x.png */; }; + B1D5F06B20BC06CB00983FB6 /* terminal_more@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C95202953E40075A669 /* terminal_more@2x.png */; }; + B1D5F06C20BC06CB00983FB6 /* task_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D91C02DB8900DC1C4B /* task_selected@3x.png */; }; + B1D5F06D20BC06CB00983FB6 /* blankpage_image_Project@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423CB1E69401B0095F1CD /* blankpage_image_Project@3x.png */; }; + B1D5F06E20BC06CB00983FB6 /* keyboard_emotion@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE5A1A0A3424006F9AD7 /* keyboard_emotion@2x.png */; }; + B1D5F06F20BC06CB00983FB6 /* button_file_history@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE06A61B7B1AE100179F4B /* button_file_history@2x.png */; }; + B1D5F07020BC06CB00983FB6 /* wechat@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8971FCE93830098B87B /* wechat@2x.png */; }; + B1D5F07120BC06CB00983FB6 /* coding_emoji_43@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497F1A918A7F00BD27F6 /* coding_emoji_43@2x.png */; }; + B1D5F07220BC06CB00983FB6 /* tweet_btn_liked@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13041C0ECB3400985AEB /* tweet_btn_liked@3x.png */; }; + B1D5F07320BC06CB00983FB6 /* icon_file_music@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D01A1B537E0037C098 /* icon_file_music@2x.png */; }; + B1D5F07420BC06CB00983FB6 /* tipIcon_UserFollow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFBC19E240C40076D59C /* tipIcon_UserFollow@2x.png */; }; + B1D5F07520BC06CB00983FB6 /* icon_code_git_link@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0501E542B2D008AA957 /* icon_code_git_link@3x.png */; }; + B1D5F07620BC06CB00983FB6 /* file_changeType_RENAME@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CE8200EFDC600DEDF78 /* file_changeType_RENAME@3x.png */; }; + B1D5F07720BC06CB00983FB6 /* member_type_100@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2F6A671C43CA4B00A25502 /* member_type_100@3x.png */; }; + B1D5F07820BC06CB00983FB6 /* code_release_resource__Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31A20731FF10077C956 /* code_release_resource__Default@2x.png */; }; + B1D5F07920BC06CB00983FB6 /* button_close@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13161C0EF48200985AEB /* button_close@2x.png */; }; + B1D5F07A20BC06CB00983FB6 /* PR_TaskResource@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 134116F31CB54AF8005E6550 /* PR_TaskResource@3x.png */; }; + B1D5F07C20BC06CB00983FB6 /* tipIcon_Project@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB219E240C40076D59C /* tipIcon_Project@2x.png */; }; + B1D5F07D20BC06CB00983FB6 /* icon_code_tree@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD04C1E542B2D008AA957 /* icon_code_tree@3x.png */; }; + B1D5F07E20BC06CB00983FB6 /* pop_Task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447C91C02DB6700DC1C4B /* pop_Task@3x.png */; }; + B1D5F07F20BC06CB00983FB6 /* tag_button_editColor@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F191C76BA3B00B5EBEA /* tag_button_editColor@2x.png */; }; + B1D5F08020BC06CB00983FB6 /* icon_best_answer@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE531D8EA9D100644086 /* icon_best_answer@3x.png */; }; + B1D5F08220BC06CB00983FB6 /* tip_bg@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ECEFA011D1D0B4B002A27D3 /* tip_bg@3x.png */; }; + B1D5F08320BC06CB00983FB6 /* addUserBtn_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447FF1C02DCAC00DC1C4B /* addUserBtn_Nav@3x.png */; }; + B1D5F08420BC06CB00983FB6 /* taskOwner@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8713F1EADF1C1003DACF0 /* taskOwner@3x.png */; }; + B1D5F08520BC06CB00983FB6 /* addUserBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447EB1C02DCA200DC1C4B /* addUserBtn_Nav@2x.png */; }; + B1D5F08620BC06CB00983FB6 /* mrpr_icon_status_accepted@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD01A1E540551008AA957 /* mrpr_icon_status_accepted@3x.png */; }; + B1D5F08720BC06CB00983FB6 /* tweet_btn_reward@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13061C0ECB3400985AEB /* tweet_btn_reward@3x.png */; }; + B1D5F08820BC06CB00983FB6 /* member_cell_edit_remove@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAECBBF1C44CB860096CA74 /* member_cell_edit_remove@3x.png */; }; + B1D5F08A20BC06CB00983FB6 /* shortcut_tweet@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E92C1DFFF06E00DE1BC6 /* shortcut_tweet@3x.png */; }; + B1D5F08B20BC06CB00983FB6 /* coding_emoji_34@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE951A0C7E26006F9AD7 /* coding_emoji_34@2x.png */; }; + B1D5F08C20BC06CB00983FB6 /* task_description_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8716D1EB1832B003DACF0 /* task_description_icon@3x.png */; }; + B1D5F08E20BC06CB00983FB6 /* me_info_arrow_left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE06911B7880BA00179F4B /* me_info_arrow_left@2x.png */; }; + B1D5F08F20BC06CB00983FB6 /* keyboard_photo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5F39061ACBFDCD0010515D /* keyboard_photo@2x.png */; }; + B1D5F09020BC06CB00983FB6 /* wechat@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8981FCE93830098B87B /* wechat@3x.png */; }; + B1D5F09220BC06CB00983FB6 /* text_clear_btn@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E76D4DD1A5A7B4A0094A35E /* text_clear_btn@2x.png */; }; + B1D5F09320BC06CB00983FB6 /* task_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C4479F1C02A3C700DC1C4B /* task_normal@2x.png */; }; + B1D5F09420BC06CB00983FB6 /* icon_file_xls@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D61A1B537E0037C098 /* icon_file_xls@2x.png */; }; + B1D5F09520BC06CB00983FB6 /* coding_emoji_gif_04@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB3421BA6AEB4002F27C4 /* coding_emoji_gif_04@2x.png */; }; + B1D5F09620BC06CB00983FB6 /* messageProjectFans@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6CBE561D8FBDF500644086 /* messageProjectFans@2x.png */; }; + B1D5F09720BC06CB00983FB6 /* shop_nar_history_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 927AFF4B1BFF6DAD00AAE593 /* shop_nar_history_icon@3x.png */; }; + B1D5F09820BC06CB00983FB6 /* file_changeType_MODIFY@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC461B11B39360F00D08970 /* file_changeType_MODIFY@2x.png */; }; + B1D5F09920BC06CB00983FB6 /* project_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C4479D1C02A3C700DC1C4B /* project_normal@2x.png */; }; + B1D5F09A20BC06CB00983FB6 /* reward_tip_logo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9361E01218300DE1BC6 /* reward_tip_logo@2x.png */; }; + B1D5F09B20BC06CB00983FB6 /* taskProject@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871421EADF1C1003DACF0 /* taskProject@3x.png */; }; + B1D5F09C20BC06CB00983FB6 /* user_info_point@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B47C1D82646000EED8C6 /* user_info_point@3x.png */; }; + B1D5F09D20BC06CB00983FB6 /* icon_file_folder_default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EA679171A14BFA0001A0324 /* icon_file_folder_default@2x.png */; }; + B1D5F09E20BC06CB00983FB6 /* icon_code_file@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD04E1E542B2D008AA957 /* icon_code_file@3x.png */; }; + B1D5F09F20BC06CB00983FB6 /* project_item_readme@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383CE1B32665700D98648 /* project_item_readme@2x.png */; }; + B1D5F0A020BC06CB00983FB6 /* EACodeBranchListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = B1817EEE2068C7A100E9BAD1 /* EACodeBranchListCell.xib */; }; + B1D5F0A120BC06CB00983FB6 /* code_release_resource_Default@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31920731FF10077C956 /* code_release_resource_Default@3x.png */; }; + B1D5F0A220BC06CB00983FB6 /* info_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447EE1C02DCA200DC1C4B /* info_Nav@2x.png */; }; + B1D5F0A420BC06CB00983FB6 /* file_activity_icon_update_file@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871B01EB2D9F0003DACF0 /* file_activity_icon_update_file@3x.png */; }; + B1D5F0A520BC06CB00983FB6 /* bubble.html in Resources */ = {isa = PBXBuildFile; fileRef = B177F5C12060E6B1006709C2 /* bubble.html */; }; + B1D5F0A620BC06CB00983FB6 /* coding_emoji_gif_06@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB3441BA6AEB4002F27C4 /* coding_emoji_gif_06@2x.png */; }; + B1D5F0A820BC06CB00983FB6 /* project_item_member@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383CC1B32665700D98648 /* project_item_member@2x.png */; }; + B1D5F0A920BC06CB00983FB6 /* tipIcon_Tweet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB919E240C40076D59C /* tipIcon_Tweet@2x.png */; }; + B1D5F0AA20BC06CB00983FB6 /* coding_emoji_04@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE771A0C7E26006F9AD7 /* coding_emoji_04@2x.png */; }; + B1D5F0AB20BC06CB00983FB6 /* nav_tweet_hot@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8319E240C40076D59C /* nav_tweet_hot@2x.png */; }; + B1D5F0AC20BC06CB00983FB6 /* project_item_topic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383D01B32665700D98648 /* project_item_topic@2x.png */; }; + B1D5F0AD20BC06CB00983FB6 /* wiki_menu_1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C242015D82600F52ABA /* wiki_menu_1@2x.png */; }; + B1D5F0AE20BC06CB00983FB6 /* file_activity_icon_move_file@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871AF1EB2D9F0003DACF0 /* file_activity_icon_move_file@3x.png */; }; + B1D5F0AF20BC06CB00983FB6 /* icon_file_md@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7CE1A1B537E0037C098 /* icon_file_md@2x.png */; }; + B1D5F0B020BC06CB00983FB6 /* tweet_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447A11C02A3C700DC1C4B /* tweet_normal@2x.png */; }; + B1D5F0B120BC06CB00983FB6 /* PR_review_undo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D301CA17A6400EE127C /* PR_review_undo@2x.png */; }; + B1D5F0B220BC06CB00983FB6 /* blankpage_image_Tweet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D61E69401B0095F1CD /* blankpage_image_Tweet@2x.png */; }; + B1D5F0B320BC06CB00983FB6 /* taskBoardList@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED7E209453E6004A6E8A /* taskBoardList@3x.png */; }; + B1D5F0B420BC06CB00983FB6 /* search_tweet_like@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E62410A1B74D65400E1533C /* search_tweet_like@2x.png */; }; + B1D5F0B520BC06CB00983FB6 /* scan_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E94C4EC1B4A867A00EB668A /* scan_bg@2x.png */; }; + B1D5F0B620BC06CB00983FB6 /* task_icon_arrow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871BD1EB33B37003DACF0 /* task_icon_arrow@3x.png */; }; + B1D5F0B720BC06CB00983FB6 /* n_btn_followed_not@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E996BFB1ABBF56A00C704F1 /* n_btn_followed_not@2x.png */; }; + B1D5F0B820BC06CB00983FB6 /* section_btn_open@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9719E240C40076D59C /* section_btn_open@2x.png */; }; + B1D5F0BA20BC06CB00983FB6 /* task_resource_reference_ProjectTopic@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F591C7C5C4F00B5EBEA /* task_resource_reference_ProjectTopic@3x.png */; }; + B1D5F0BB20BC06CB00983FB6 /* skill_delete@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64171FF0E4CA00ACFDCC /* skill_delete@3x.png */; }; + B1D5F0BD20BC06CB00983FB6 /* button_file_move_unable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EACB43E1A2C448F0097ABB3 /* button_file_move_unable@2x.png */; }; + B1D5F0BE20BC06CB00983FB6 /* mock_topicAdlist.geojson in Resources */ = {isa = PBXBuildFile; fileRef = 4E0BD87D1B6C7F0A0061CAA6 /* mock_topicAdlist.geojson */; }; + B1D5F0BF20BC06CB00983FB6 /* placeholder_coding_square_55@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8C19E240C40076D59C /* placeholder_coding_square_55@2x.png */; }; + B1D5F0C020BC06CB00983FB6 /* pop_Project@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447C81C02DB6700DC1C4B /* pop_Project@3x.png */; }; + B1D5F0C120BC06CB00983FB6 /* task_activity_icon_remove_milestone@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C220B2B24F009427FC /* task_activity_icon_remove_milestone@3x.png */; }; + B1D5F0C220BC06CB00983FB6 /* button_file_download_unable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAD202D7D4F0075A669 /* button_file_download_unable@3x.png */; }; + B1D5F0C320BC06CB00983FB6 /* search_icon_task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E94C1E02911E00DE1BC6 /* search_icon_task@2x.png */; }; + B1D5F0C420BC06CB00983FB6 /* code_release_resource_Task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31B20731FF10077C956 /* code_release_resource_Task@2x.png */; }; + B1D5F0C520BC06CB00983FB6 /* moreBtn_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C448031C02DCAC00DC1C4B /* moreBtn_Nav@3x.png */; }; + B1D5F0C620BC06CB00983FB6 /* tweet_comment_btn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B184166820513CA000207666 /* tweet_comment_btn@3x.png */; }; + B1D5F0C720BC06CB00983FB6 /* vip_3_30@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689A41EE100B200B01371 /* vip_3_30@2x.png */; }; + B1D5F0C820BC06CB00983FB6 /* PR_del_label@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CF5200EFEA400DEDF78 /* PR_del_label@3x.png */; }; + B1D5F0C920BC06CB00983FB6 /* blankpage_image_Team@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D01E69401B0095F1CD /* blankpage_image_Team@2x.png */; }; + B1D5F0CA20BC06CB00983FB6 /* icon_release_tag_blue@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31320731E910077C956 /* icon_release_tag_blue@2x.png */; }; + B1D5F0CB20BC06CB00983FB6 /* btn_privateMsg_stranger@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2719EF6306006BA8BD /* btn_privateMsg_stranger@2x.png */; }; + B1D5F0CC20BC06CB00983FB6 /* project_item_wiki@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871341EADF155003DACF0 /* project_item_wiki@3x.png */; }; + B1D5F0CD20BC06CB00983FB6 /* STARTIMAGE.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 4E03AC991A5BDDF9002B000B /* STARTIMAGE.jpg */; }; + B1D5F0CE20BC06CB00983FB6 /* messageComment@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871151EADF0B1003DACF0 /* messageComment@3x.png */; }; + B1D5F0CF20BC06CB00983FB6 /* coding_emoji_02@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE751A0C7E26006F9AD7 /* coding_emoji_02@2x.png */; }; + B1D5F0D020BC06CB00983FB6 /* checkbox_checked@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383E71B32791600D98648 /* checkbox_checked@2x.png */; }; + B1D5F0D120BC06CB00983FB6 /* taskboard_blankpage@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED7F209453E7004A6E8A /* taskboard_blankpage@2x.png */; }; + B1D5F0D220BC06CB00983FB6 /* member_cell_edit_type@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAECBC11C44CB860096CA74 /* member_cell_edit_type@3x.png */; }; + B1D5F0D320BC06CB00983FB6 /* PR_del_label@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CFA200EFEA400DEDF78 /* PR_del_label@2x.png */; }; + B1D5F0D420BC06CB00983FB6 /* SVWebViewController.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4E217F1C1A71007800F6DF88 /* SVWebViewController.strings */; }; + B1D5F0D520BC06CB00983FB6 /* blankpage_image_Topic@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D51E69401B0095F1CD /* blankpage_image_Topic@3x.png */; }; + B1D5F0D720BC06CB00983FB6 /* placeholder_monkey_round_33@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8F19E240C40076D59C /* placeholder_monkey_round_33@2x.png */; }; + B1D5F0D820BC06CB00983FB6 /* coding_emoji_30@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE911A0C7E26006F9AD7 /* coding_emoji_30@2x.png */; }; + B1D5F0D920BC06CB00983FB6 /* project_item_code@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383CA1B32665700D98648 /* project_item_code@2x.png */; }; + B1D5F0DA20BC06CB00983FB6 /* search_icon_user@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9471E02911E00DE1BC6 /* search_icon_user@3x.png */; }; + B1D5F0DB20BC06CB00983FB6 /* code_release_resource_MergeRequestBean@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC3242073212D0077C956 /* code_release_resource_MergeRequestBean@3x.png */; }; + B1D5F0DD20BC06CB00983FB6 /* blankpage_image_Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C01E69401B0095F1CD /* blankpage_image_Default@2x.png */; }; + B1D5F0DE20BC06CB00983FB6 /* project_item_tag@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EF22069186C00E9BAD1 /* project_item_tag@2x.png */; }; + B1D5F0DF20BC06CB00983FB6 /* PRReviewer@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D2E1CA17A6400EE127C /* PRReviewer@2x.png */; }; + B1D5F0E020BC06CB00983FB6 /* login_wechat@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B640D1FECB58F00ACFDCC /* login_wechat@2x.png */; }; + B1D5F0E120BC06CB00983FB6 /* task_activity_icon_finish@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871961EB2D9E6003DACF0 /* task_activity_icon_finish@3x.png */; }; + B1D5F0E220BC06CB00983FB6 /* taskboard_normal_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8D209453F2004A6E8A /* taskboard_normal_page_unselected@3x.png */; }; + B1D5F0E420BC06CB00983FB6 /* nav_page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E53EB571AFB090E0034FE1C /* nav_page_selected@2x.png */; }; + B1D5F0E520BC06CB00983FB6 /* coding_emoji_28@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE8F1A0C7E26006F9AD7 /* coding_emoji_28@2x.png */; }; + B1D5F0E720BC06CB00983FB6 /* placeholder_monkey_round_50@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9219E240C40076D59C /* placeholder_monkey_round_50@2x.png */; }; + B1D5F0E820BC06CB00983FB6 /* vip_3_45@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689A81EE100B200B01371 /* vip_3_45@2x.png */; }; + B1D5F0E920BC06CB00983FB6 /* n_sex_man_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E996BFD1ABBF56A00C704F1 /* n_sex_man_icon@2x.png */; }; + B1D5F0EA20BC06CB00983FB6 /* AppIcon120x120.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF6E19E240C40076D59C /* AppIcon120x120.png */; }; + B1D5F0EB20BC06CB00983FB6 /* privatemessage_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C4479C1C02A3C700DC1C4B /* privatemessage_selected@2x.png */; }; + B1D5F0EC20BC06CB00983FB6 /* coding_emoji_gif_07@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB3451BA6AEB4002F27C4 /* coding_emoji_gif_07@2x.png */; }; + B1D5F0ED20BC06CB00983FB6 /* calendar_0x59A2FF@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871731EB18599003DACF0 /* calendar_0x59A2FF@2x.png */; }; + B1D5F0EE20BC06CB00983FB6 /* file_activity_icon_rename@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B19D4EE01F690F5E00C598F3 /* file_activity_icon_rename@3x.png */; }; + B1D5F0EF20BC06CB00983FB6 /* button_file_denete_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA7202D7D4E0075A669 /* button_file_denete_enable@3x.png */; }; + B1D5F0F020BC06CB00983FB6 /* coding_emoji_32@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE931A0C7E26006F9AD7 /* coding_emoji_32@2x.png */; }; + B1D5F0F120BC06CB00983FB6 /* coding_emoji_16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE831A0C7E26006F9AD7 /* coding_emoji_16@2x.png */; }; + B1D5F0F220BC06CB00983FB6 /* icon_triangle@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD05A1E544006008AA957 /* icon_triangle@3x.png */; }; + B1D5F0F320BC06CB00983FB6 /* mrpr_icon_arrow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD09C1E5D8558008AA957 /* mrpr_icon_arrow@3x.png */; }; + B1D5F0F420BC06CB00983FB6 /* comment_bg@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871B71EB338FD003DACF0 /* comment_bg@3x.png */; }; + B1D5F0F620BC06CB00983FB6 /* btn_followed_both@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E8F7B2219EF6306006BA8BD /* btn_followed_both@2x.png */; }; + B1D5F0F720BC06CB00983FB6 /* PR_refuse@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D211CA17A6400EE127C /* PR_refuse@3x.png */; }; + B1D5F0F820BC06CB00983FB6 /* shortcut_tweet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E92B1DFFF06E00DE1BC6 /* shortcut_tweet@2x.png */; }; + B1D5F0F920BC06CB00983FB6 /* vip_3_30@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689A51EE100B200B01371 /* vip_3_30@3x.png */; }; + B1D5F0FA20BC06CB00983FB6 /* coding_emoji_42@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497E1A918A7F00BD27F6 /* coding_emoji_42@2x.png */; }; + B1D5F0FB20BC06CB00983FB6 /* coding_emoji_31@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE921A0C7E26006F9AD7 /* coding_emoji_31@2x.png */; }; + B1D5F0FC20BC06CB00983FB6 /* user_info_setup@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B47F1D82646000EED8C6 /* user_info_setup@2x.png */; }; + B1D5F0FD20BC06CB00983FB6 /* calendar_0xF56061@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8717A1EB18599003DACF0 /* calendar_0xF56061@3x.png */; }; + B1D5F0FE20BC06CB00983FB6 /* blankpage_image_File@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C21E69401B0095F1CD /* blankpage_image_File@2x.png */; }; + B1D5F0FF20BC06CB00983FB6 /* icon_add_comment@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871891EB1E608003DACF0 /* icon_add_comment@3x.png */; }; + B1D5F10020BC06CB00983FB6 /* button_file_download_enable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EACB4421A2C45300097ABB3 /* button_file_download_enable@2x.png */; }; + B1D5F10120BC06CB00983FB6 /* keyboard_page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE5F1A0A3424006F9AD7 /* keyboard_page_selected@2x.png */; }; + B1D5F10220BC06CB00983FB6 /* taskPriority3@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871621EB182C7003DACF0 /* taskPriority3@3x.png */; }; + B1D5F10320BC06CB00983FB6 /* code.html in Resources */ = {isa = PBXBuildFile; fileRef = B177F5C42060E6B1006709C2 /* code.html */; }; + B1D5F10420BC06CB00983FB6 /* timeline_icon_read@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B16EEF06208DDBB5005ABFD5 /* timeline_icon_read@3x.png */; }; + B1D5F10520BC06CB00983FB6 /* file_activity_icon_delete_history@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871AE1EB2D9F0003DACF0 /* file_activity_icon_delete_history@3x.png */; }; + B1D5F10620BC06CB00983FB6 /* mrpr_icon_commit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383D91B3266C200D98648 /* mrpr_icon_commit@2x.png */; }; + B1D5F10720BC06CB00983FB6 /* editBoardList@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4B520B2ACEE009427FC /* editBoardList@2x.png */; }; + B1D5F10820BC06CB00983FB6 /* pop_User@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447BF1C02DB5400DC1C4B /* pop_User@2x.png */; }; + B1D5F10920BC06CB00983FB6 /* keyboard_add_photo@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE571A0A3424006F9AD7 /* keyboard_add_photo@2x.png */; }; + B1D5F10A20BC06CB00983FB6 /* member_cell_edit_type@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAECBC01C44CB860096CA74 /* member_cell_edit_type@2x.png */; }; + B1D5F10B20BC06CB00983FB6 /* wiki_menu_icon_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C282015D82600F52ABA /* wiki_menu_icon_delete@2x.png */; }; + B1D5F10C20BC06CB00983FB6 /* file_menu_icon_edit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E93F2361B84356500017916 /* file_menu_icon_edit@2x.png */; }; + B1D5F10D20BC06CB00983FB6 /* AboutPointViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B19D4EE91F6FAA6000C598F3 /* AboutPointViewController.xib */; }; + B1D5F10E20BC06CB00983FB6 /* address.json in Resources */ = {isa = PBXBuildFile; fileRef = 8E1C3DF519E7F4CA00EF3032 /* address.json */; }; + B1D5F10F20BC06CB00983FB6 /* reward_tip_logo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9371E01218300DE1BC6 /* reward_tip_logo@3x.png */; }; + B1D5F11020BC06CB00983FB6 /* code_release_resource_ProjectFile@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC3252073212D0077C956 /* code_release_resource_ProjectFile@2x.png */; }; + B1D5F11120BC06CB00983FB6 /* share_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E09DCA81C15662E001C9392 /* share_Nav@3x.png */; }; + B1D5F11220BC06CB00983FB6 /* task_activity_icon_add_milestone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C020B2B24E009427FC /* task_activity_icon_add_milestone@2x.png */; }; + B1D5F11320BC06CB00983FB6 /* share_btn_copylink@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3C81B96CDF800A5A0A8 /* share_btn_copylink@2x.png */; }; + B1D5F11420BC06CB00983FB6 /* project_item_branch@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EF42069186D00E9BAD1 /* project_item_branch@3x.png */; }; + B1D5F11620BC06CB00983FB6 /* bubble_left_play_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E8E59791B6F91C40083CA02 /* bubble_left_play_0@2x.png */; }; + B1D5F11720BC06CB00983FB6 /* little_phone_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871571EB0884A003DACF0 /* little_phone_icon@3x.png */; }; + B1D5F11820BC06CB00983FB6 /* icon_file_ppt@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D31A1B537E0037C098 /* icon_file_ppt@2x.png */; }; + B1D5F11920BC06CB00983FB6 /* member_type_75@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2F6A681C43CA4B00A25502 /* member_type_75@2x.png */; }; + B1D5F11A20BC06CB00983FB6 /* icon_search_searchbar@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C448121C02F76600DC1C4B /* icon_search_searchbar@2x.png */; }; + B1D5F11B20BC06CB00983FB6 /* register_step_ed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC4800D1C2A909D005F1772 /* register_step_ed@2x.png */; }; + B1D5F11C20BC06CB00983FB6 /* project_normal@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D61C02DB8900DC1C4B /* project_normal@3x.png */; }; + B1D5F11D20BC06CB00983FB6 /* button_terminal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B11DC7BE20245727004E76A9 /* button_terminal@2x.png */; }; + B1D5F11E20BC06CB00983FB6 /* privatemessage_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C4479B1C02A3C700DC1C4B /* privatemessage_normal@2x.png */; }; + B1D5F11F20BC06CB00983FB6 /* tipIcon_ProjectMember@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB319E240C40076D59C /* tipIcon_ProjectMember@2x.png */; }; + B1D5F12020BC06CB00983FB6 /* file_activity_icon_rename@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B19D4EDF1F690F5E00C598F3 /* file_activity_icon_rename@2x.png */; }; + B1D5F12120BC06CB00983FB6 /* code_release_resource_ProjectTopic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC3282073212E0077C956 /* code_release_resource_ProjectTopic@2x.png */; }; + B1D5F12220BC06CB00983FB6 /* coding_emoji_17@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE841A0C7E26006F9AD7 /* coding_emoji_17@2x.png */; }; + B1D5F12320BC06CB00983FB6 /* messageLeft_bg_img@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383B31B32640900D98648 /* messageLeft_bg_img@2x.png */; }; + B1D5F12420BC06CB00983FB6 /* search_icon_project@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E94A1E02911E00DE1BC6 /* search_icon_project@2x.png */; }; + B1D5F12520BC06CB00983FB6 /* mrpr_icon_status_cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0291E5405B4008AA957 /* mrpr_icon_status_cancel@2x.png */; }; + B1D5F12620BC06CB00983FB6 /* mrpr_icon_status_cancel@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD02A1E5405B4008AA957 /* mrpr_icon_status_cancel@3x.png */; }; + B1D5F12720BC06CB00983FB6 /* button_file_createFolder_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CA6202D7D4D0075A669 /* button_file_createFolder_enable@3x.png */; }; + B1D5F12820BC06CB00983FB6 /* PR_mergeChanges@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D261CA17A6400EE127C /* PR_mergeChanges@2x.png */; }; + B1D5F12920BC06CB00983FB6 /* coding_emoji_20@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE871A0C7E26006F9AD7 /* coding_emoji_20@2x.png */; }; + B1D5F12A20BC06CB00983FB6 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFC519E240C40076D59C /* Images.xcassets */; }; + B1D5F12B20BC06CB00983FB6 /* task_icon_arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E63840E1B34124000D98648 /* task_icon_arrow@2x.png */; }; + B1D5F12C20BC06CB00983FB6 /* mrpr_icon_refaused@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383C21B3265DC00D98648 /* mrpr_icon_refaused@2x.png */; }; + B1D5F12D20BC06CB00983FB6 /* loading_monkey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8ED2AAF919F60D5200607A1D /* loading_monkey@2x.png */; }; + B1D5F12E20BC06CB00983FB6 /* coding_emoji_01@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE741A0C7E26006F9AD7 /* coding_emoji_01@2x.png */; }; + B1D5F12F20BC06CB00983FB6 /* taskPriority0@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8715C1EB182C7003DACF0 /* taskPriority0@3x.png */; }; + B1D5F13020BC06CB00983FB6 /* taskPriority3_small@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871611EB182C7003DACF0 /* taskPriority3_small@3x.png */; }; + B1D5F13120BC06CB00983FB6 /* taskResourceReference@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F391C7C45E700B5EBEA /* taskResourceReference@2x.png */; }; + B1D5F13220BC06CB00983FB6 /* tipIcon_MergeRequestBean@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB019E240C40076D59C /* tipIcon_MergeRequestBean@2x.png */; }; + B1D5F13320BC06CB00983FB6 /* button_file_denete_enable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E66EE221A28226000DA1B3E /* button_file_denete_enable@2x.png */; }; + B1D5F13520BC06CB00983FB6 /* dot_line@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2719C61AB07ED6006AE214 /* dot_line@2x.png */; }; + B1D5F13620BC06CB00983FB6 /* PR_grant_undo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D231CA17A6400EE127C /* PR_grant_undo@3x.png */; }; + B1D5F13720BC06CB00983FB6 /* PR_add_watcher@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CFB200EFEA400DEDF78 /* PR_add_watcher@3x.png */; }; + B1D5F13820BC06CB00983FB6 /* coding_emoji_gif_01@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB3461BA6AEB4002F27C4 /* coding_emoji_gif_01@2x.png */; }; + B1D5F13920BC06CB00983FB6 /* addBtn_Artboard@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8711C1EADF0FF003DACF0 /* addBtn_Artboard@2x.png */; }; + B1D5F13B20BC06CB00983FB6 /* project_item_wiki@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871331EADF155003DACF0 /* project_item_wiki@2x.png */; }; + B1D5F13C20BC06CB00983FB6 /* member_type_90@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2F6A6A1C43CA4B00A25502 /* member_type_90@2x.png */; }; + B1D5F13D20BC06CB00983FB6 /* share_btn_inform@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D131A1C11865D00985AEB /* share_btn_inform@2x.png */; }; + B1D5F13E20BC06CB00983FB6 /* back_green_Nav@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8711F1EADF0FF003DACF0 /* back_green_Nav@3x.png */; }; + B1D5F13F20BC06CB00983FB6 /* README.textile in Resources */ = {isa = PBXBuildFile; fileRef = 8E64ED8919EE484A006E99DA /* README.textile */; }; + B1D5F14020BC06CB00983FB6 /* PR_del_reviewer@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CFE200EFEA400DEDF78 /* PR_del_reviewer@3x.png */; }; + B1D5F14120BC06CB00983FB6 /* search_icon_task@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E94D1E02911E00DE1BC6 /* search_icon_task@3x.png */; }; + B1D5F14220BC06CB00983FB6 /* task_activity_icon_remove_milestone@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4C320B2B250009427FC /* task_activity_icon_remove_milestone@2x.png */; }; + B1D5F14320BC06CB00983FB6 /* checkbox_unchecked@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8715A1EB182C7003DACF0 /* checkbox_unchecked@3x.png */; }; + B1D5F14420BC06CB00983FB6 /* coding_emoji_06@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE791A0C7E26006F9AD7 /* coding_emoji_06@2x.png */; }; + B1D5F14520BC06CB00983FB6 /* button_tip_close@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B12B64221FF33DFF00ACFDCC /* button_tip_close@3x.png */; }; + B1D5F14620BC06CB00983FB6 /* blankpage_image_ShopOrder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423CC1E69401B0095F1CD /* blankpage_image_ShopOrder@2x.png */; }; + B1D5F14720BC06CB00983FB6 /* coding_emoji_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E08497C1A918A7F00BD27F6 /* coding_emoji_40@2x.png */; }; + B1D5F14820BC06CB00983FB6 /* blankpage_image_Default@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C11E69401B0095F1CD /* blankpage_image_Default@3x.png */; }; + B1D5F14920BC06CB00983FB6 /* member_cell_edit_alias@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAECBBC1C44CB860096CA74 /* member_cell_edit_alias@2x.png */; }; + B1D5F14A20BC06CB00983FB6 /* messageRight_bg_img@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383B41B32640900D98648 /* messageRight_bg_img@2x.png */; }; + B1D5F14B20BC06CB00983FB6 /* project_item_taskboard@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED7A20945377004A6E8A /* project_item_taskboard@2x.png */; }; + B1D5F14C20BC06CB00983FB6 /* nav_page_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8718A1EB1E608003DACF0 /* nav_page_selected@3x.png */; }; + B1D5F14D20BC06CB00983FB6 /* terminal_more@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C94202953E40075A669 /* terminal_more@3x.png */; }; + B1D5F14E20BC06CB00983FB6 /* btn_setFrequent@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871871EB1E608003DACF0 /* btn_setFrequent@3x.png */; }; + B1D5F14F20BC06CB00983FB6 /* tweet_normal@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447DA1C02DB8900DC1C4B /* tweet_normal@3x.png */; }; + B1D5F15020BC06CB00983FB6 /* icon_search_clock@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8B3516541B6CF69E0049BC45 /* icon_search_clock@2x.png */; }; + B1D5F15120BC06CB00983FB6 /* taskPriority2@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E63839F1B3262D300D98648 /* taskPriority2@2x.png */; }; + B1D5F15220BC06CB00983FB6 /* file_activity_icon_upload_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE06BF1B7B51AF00179F4B /* file_activity_icon_upload_file@2x.png */; }; + B1D5F15320BC06CB00983FB6 /* tip_normal_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ECEF9F81D1D0B3D002A27D3 /* tip_normal_Nav@2x.png */; }; + B1D5F15420BC06CB00983FB6 /* search_icon_user@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9461E02911E00DE1BC6 /* search_icon_user@2x.png */; }; + B1D5F15520BC06CB00983FB6 /* button_file_denete_unable@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E66EE231A28226000DA1B3E /* button_file_denete_unable@2x.png */; }; + B1D5F15620BC06CB00983FB6 /* nav_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8718B1EB1E608003DACF0 /* nav_page_unselected@3x.png */; }; + B1D5F15720BC06CB00983FB6 /* EmojisList.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE491A0A2E11006F9AD7 /* EmojisList.plist */; }; + B1D5F15820BC06CB00983FB6 /* keyboard_topic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8BDF9AB01B7474990093BF2C /* keyboard_topic@2x.png */; }; + B1D5F15920BC06CB00983FB6 /* project_item_tag@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EF52069186E00E9BAD1 /* project_item_tag@3x.png */; }; + B1D5F15A20BC06CB00983FB6 /* add_user_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EBFBD171AA85B8500E4B10E /* add_user_icon@2x.png */; }; + B1D5F15B20BC06CB00983FB6 /* coding_emoji_11@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE7E1A0C7E26006F9AD7 /* coding_emoji_11@2x.png */; }; + B1D5F15C20BC06CB00983FB6 /* coding_emoji_gif_02@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB3401BA6AEB4002F27C4 /* coding_emoji_gif_02@2x.png */; }; + B1D5F15D20BC06CB00983FB6 /* n_sex_woman_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E996BFE1ABBF56A00C704F1 /* n_sex_woman_icon@2x.png */; }; + B1D5F15E20BC06CB00983FB6 /* vip_4_30@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689AD1EE100B200B01371 /* vip_4_30@3x.png */; }; + B1D5F15F20BC06CB00983FB6 /* taskPriority@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871401EADF1C1003DACF0 /* taskPriority@3x.png */; }; + B1D5F16020BC06CB00983FB6 /* tipIcon_TeamMember@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB862AC1CABB21E008074D1 /* tipIcon_TeamMember@2x.png */; }; + B1D5F16120BC06CB00983FB6 /* keyboard_emotion_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE5B1A0A3424006F9AD7 /* keyboard_emotion_delete@2x.png */; }; + B1D5F16220BC06CB00983FB6 /* nav_tweet_friend@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8219E240C40076D59C /* nav_tweet_friend@2x.png */; }; + B1D5F16320BC06CB00983FB6 /* nav_tweet_mine@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF8419E240C40076D59C /* nav_tweet_mine@2x.png */; }; + B1D5F16420BC06CB00983FB6 /* shortcut_2FA@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9281DFFF06E00DE1BC6 /* shortcut_2FA@3x.png */; }; + B1D5F16520BC06CB00983FB6 /* PR_add@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D161CA17A6400EE127C /* PR_add@3x.png */; }; + B1D5F16620BC06CB00983FB6 /* code_release_resource_Zip@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31820731FF10077C956 /* code_release_resource_Zip@3x.png */; }; + B1D5F16720BC06CB00983FB6 /* taskboard_add_page_unselected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8C209453F2004A6E8A /* taskboard_add_page_unselected@3x.png */; }; + B1D5F16820BC06CB00983FB6 /* blankpage_image_Activity@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423BF1E69401B0095F1CD /* blankpage_image_Activity@3x.png */; }; + B1D5F16920BC06CB00983FB6 /* pop_Tweet@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447CA1C02DB6700DC1C4B /* pop_Tweet@3x.png */; }; + B1D5F16A20BC06CB00983FB6 /* icon_code_image@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0811E55AC6E008AA957 /* icon_code_image@3x.png */; }; + B1D5F16B20BC06CB00983FB6 /* taskboard_normal_page_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED87209453F2004A6E8A /* taskboard_normal_page_selected@3x.png */; }; + B1D5F16D20BC06CB00983FB6 /* icon_file_txt_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8791FCD006C0098B87B /* icon_file_txt_big@2x.png */; }; + B1D5F16E20BC06CB00983FB6 /* git_icon_stared@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4D6AC91B2571B100FD2E49 /* git_icon_stared@2x.png */; }; + B1D5F16F20BC06CB00983FB6 /* search_icon_mr@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9441E02911E00DE1BC6 /* search_icon_mr@2x.png */; }; + B1D5F17020BC06CB00983FB6 /* button_download_cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED20A791AFCC43600C63498 /* button_download_cancel@2x.png */; }; + B1D5F17120BC06CB00983FB6 /* SVWebViewController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4E217EFA1A70EDC700F6DF88 /* SVWebViewController.bundle */; }; + B1D5F17220BC06CB00983FB6 /* register_step_ed@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC4800E1C2A909D005F1772 /* register_step_ed@3x.png */; }; + B1D5F17320BC06CB00983FB6 /* keyboard_emotion_emoji_code@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9DEEC51E30CA3C001B8D1B /* keyboard_emotion_emoji_code@2x.png */; }; + B1D5F17420BC06CB00983FB6 /* cell_arrow_left@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8714F1EADF48B003DACF0 /* cell_arrow_left@3x.png */; }; + B1D5F17520BC06CB00983FB6 /* vip_3_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689A61EE100B200B01371 /* vip_3_40@2x.png */; }; + B1D5F17620BC06CB00983FB6 /* icon_code_git_link@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD04F1E542B2D008AA957 /* icon_code_git_link@2x.png */; }; + B1D5F17720BC06CB00983FB6 /* icon_add_comment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4D6AC71B252F4800FD2E49 /* icon_add_comment@2x.png */; }; + B1D5F17920BC06CB00983FB6 /* icon_file_code_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8781FCD006C0098B87B /* icon_file_code_big@2x.png */; }; + B1D5F17A20BC06CB00983FB6 /* file_changeType_DELETE@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CEB200EFDC600DEDF78 /* file_changeType_DELETE@3x.png */; }; + B1D5F17B20BC06CB00983FB6 /* tweet_more_comment_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E872CFF19EFEFF7002C8F34 /* tweet_more_comment_icon@2x.png */; }; + B1D5F17C20BC06CB00983FB6 /* task_activity_icon_add_watcher@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E3DB53A1BFDD0F40062BA52 /* task_activity_icon_add_watcher@2x.png */; }; + B1D5F17D20BC06CB00983FB6 /* tipIcon_TweetLike@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFBB19E240C40076D59C /* tipIcon_TweetLike@2x.png */; }; + B1D5F17E20BC06CB00983FB6 /* blankpage_image_LoadFail@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423C41E69401B0095F1CD /* blankpage_image_LoadFail@2x.png */; }; + B1D5F17F20BC06CB00983FB6 /* gif_mark@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E72F8321B15B811001B6CE6 /* gif_mark@2x.png */; }; + B1D5F18020BC06CB00983FB6 /* icon_file_cell_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EC5AD8F1A258DF8006FA97C /* icon_file_cell_delete@2x.png */; }; + B1D5F18120BC06CB00983FB6 /* blankpage_image_Topic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D41E69401B0095F1CD /* blankpage_image_Topic@2x.png */; }; + B1D5F18220BC06CB00983FB6 /* MJPhotoBrowser.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6D06B19E240C40076D59C /* MJPhotoBrowser.bundle */; }; + B1D5F18320BC06CB00983FB6 /* icon_file_folder_share@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E1D99141DCAE67D00BAE585 /* icon_file_folder_share@2x.png */; }; + B1D5F18420BC06CB00983FB6 /* search_icon_pr@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9491E02911E00DE1BC6 /* search_icon_pr@3x.png */; }; + B1D5F18520BC06CB00983FB6 /* SVWebViewControllerActivityChrome@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E217F031A70EDC700F6DF88 /* SVWebViewControllerActivityChrome@2x.png */; }; + B1D5F18620BC06CB00983FB6 /* taskboard_add_page_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED8B209453F2004A6E8A /* taskboard_add_page_selected@3x.png */; }; + B1D5F18720BC06CB00983FB6 /* SVWebViewControllerActivitySafari@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E217F091A70EDC700F6DF88 /* SVWebViewControllerActivitySafari@2x.png */; }; + B1D5F18820BC06CB00983FB6 /* editBoardList@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BFC4B420B2ACED009427FC /* editBoardList@3x.png */; }; + B1D5F18A20BC06CB00983FB6 /* PR_add@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D151CA17A6400EE127C /* PR_add@2x.png */; }; + B1D5F18B20BC06CB00983FB6 /* tweet_btn_reward@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E5D13051C0ECB3400985AEB /* tweet_btn_reward@2x.png */; }; + B1D5F18C20BC06CB00983FB6 /* project_item_mr_pr@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383CD1B32665700D98648 /* project_item_mr_pr@2x.png */; }; + B1D5F18D20BC06CB00983FB6 /* user_info_point@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B47B1D82646000EED8C6 /* user_info_point@2x.png */; }; + B1D5F18E20BC06CB00983FB6 /* btn_fliter_down@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447B31C02B1DE00DC1C4B /* btn_fliter_down@2x.png */; }; + B1D5F18F20BC06CB00983FB6 /* nav_project_activity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF7D19E240C40076D59C /* nav_project_activity@2x.png */; }; + B1D5F19020BC06CB00983FB6 /* file_changeType_RENAME@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EFE8DAB1B394A0D004B7559 /* file_changeType_RENAME@2x.png */; }; + B1D5F19120BC06CB00983FB6 /* blankpage_image_Tip@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D31E69401B0095F1CD /* blankpage_image_Tip@3x.png */; }; + B1D5F19220BC06CB00983FB6 /* ProjectSetting.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B9A00D7E1ACA3A05008BA008 /* ProjectSetting.storyboard */; }; + B1D5F19320BC06CB00983FB6 /* icon_release_tag@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1817EFE2069197C00E9BAD1 /* icon_release_tag@3x.png */; }; + B1D5F19420BC06CB00983FB6 /* timeline_icon_unread@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFAC19E240C40076D59C /* timeline_icon_unread@2x.png */; }; + B1D5F19520BC06CB00983FB6 /* user_info_edit@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E54C2491D8FE19100A61023 /* user_info_edit@2x.png */; }; + B1D5F19620BC06CB00983FB6 /* AlipaySDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B19D4EF91F7247BA00C598F3 /* AlipaySDK.bundle */; }; + B1D5F19720BC06CB00983FB6 /* banner__page_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A6B1B69F920008DC439 /* banner__page_selected@2x.png */; }; + B1D5F19820BC06CB00983FB6 /* task_resource_reference_MergeRequestBean@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F551C7C5C4F00B5EBEA /* task_resource_reference_MergeRequestBean@3x.png */; }; + B1D5F19920BC06CB00983FB6 /* tipIcon_ProjectFileComment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E86FEE41BB556D6005E53F3 /* tipIcon_ProjectFileComment@2x.png */; }; + B1D5F19A20BC06CB00983FB6 /* SVWebViewControllerActivitySafari-iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E217F061A70EDC700F6DF88 /* SVWebViewControllerActivitySafari-iPad@2x.png */; }; + B1D5F19B20BC06CB00983FB6 /* icon_not_locationed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EF91F621B00B62A0021C951 /* icon_not_locationed@2x.png */; }; + B1D5F19C20BC06CB00983FB6 /* checkbox_unchecked@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383E81B32791600D98648 /* checkbox_unchecked@2x.png */; }; + B1D5F19D20BC06CB00983FB6 /* icon_file_psd_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8731FCD006B0098B87B /* icon_file_psd_big@2x.png */; }; + B1D5F19E20BC06CB00983FB6 /* timeline_icon_read@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFAB19E240C40076D59C /* timeline_icon_read@2x.png */; }; + B1D5F19F20BC06CB00983FB6 /* topic_add_watcher_btn@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B184166720513CA000207666 /* topic_add_watcher_btn@3x.png */; }; + B1D5F1A020BC06CB00983FB6 /* coding_emoji_27@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE8E1A0C7E26006F9AD7 /* coding_emoji_27@2x.png */; }; + B1D5F1A120BC06CB00983FB6 /* QBImagePicker.strings in Resources */ = {isa = PBXBuildFile; fileRef = B12B645A1FFB61AD00ACFDCC /* QBImagePicker.strings */; }; + B1D5F1A220BC06CB00983FB6 /* icon_file_zip_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8711FCD006B0098B87B /* icon_file_zip_big@2x.png */; }; + B1D5F1A320BC06CB00983FB6 /* messageProjectFollows@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871161EADF0B1003DACF0 /* messageProjectFollows@3x.png */; }; + B1D5F1A420BC06CB00983FB6 /* tipIcon_CommitLineNote@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E4972E11BB5395B00F3AC15 /* tipIcon_CommitLineNote@2x.png */; }; + B1D5F1A520BC06CB00983FB6 /* wiki_revert@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C232015D82600F52ABA /* wiki_revert@2x.png */; }; + B1D5F1A620BC06CB00983FB6 /* search_icon_tweet@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E93F1E02911E00DE1BC6 /* search_icon_tweet@3x.png */; }; + B1D5F1A720BC06CB00983FB6 /* taskPriority0_small@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8715B1EB182C7003DACF0 /* taskPriority0_small@3x.png */; }; + B1D5F1A820BC06CB00983FB6 /* coding_emoji_24@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE8B1A0C7E26006F9AD7 /* coding_emoji_24@2x.png */; }; + B1D5F1A920BC06CB00983FB6 /* PointLikeHead@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D291CA17A6400EE127C /* PointLikeHead@2x.png */; }; + B1D5F1AA20BC06CB00983FB6 /* coding_emoji_10@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE7D1A0C7E26006F9AD7 /* coding_emoji_10@2x.png */; }; + B1D5F1AB20BC06CB00983FB6 /* me_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447991C02A3C700DC1C4B /* me_normal@2x.png */; }; + B1D5F1AC20BC06CB00983FB6 /* taskPriority2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871601EB182C7003DACF0 /* taskPriority2@3x.png */; }; + B1D5F1AD20BC06CB00983FB6 /* blankpage_image_Activity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423BE1E69401B0095F1CD /* blankpage_image_Activity@2x.png */; }; + B1D5F1AE20BC06CB00983FB6 /* coding_emoji_33@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE941A0C7E26006F9AD7 /* coding_emoji_33@2x.png */; }; + B1D5F1AF20BC06CB00983FB6 /* coding_emoji_23@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE8A1A0C7E26006F9AD7 /* coding_emoji_23@2x.png */; }; + B1D5F1B020BC06CB00983FB6 /* taskPriority@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383DE1B32676600D98648 /* taskPriority@2x.png */; }; + B1D5F1B120BC06CB00983FB6 /* code_release_resource_ProjectFile@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC3232073212D0077C956 /* code_release_resource_ProjectFile@3x.png */; }; + B1D5F1B220BC06CB00983FB6 /* tipIcon_Task@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFB819E240C40076D59C /* tipIcon_Task@2x.png */; }; + B1D5F1B320BC06CB00983FB6 /* icon_code_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD04D1E542B2D008AA957 /* icon_code_file@2x.png */; }; + B1D5F1B420BC06CB00983FB6 /* task_activity_icon_update_description@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383F91B33C18700D98648 /* task_activity_icon_update_description@2x.png */; }; + B1D5F1B520BC06CB00983FB6 /* git_icon_star@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D09E6AC11BF84AC5009D37F8 /* git_icon_star@2x.png */; }; + B1D5F1B620BC06CB00983FB6 /* task_description_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E095A801B6B24DE008DC439 /* task_description_icon@2x.png */; }; + B1D5F1B720BC06CB00983FB6 /* tag_button_editColor@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F1A1C76BA3B00B5EBEA /* tag_button_editColor@3x.png */; }; + B1D5F1B820BC06CB00983FB6 /* moreBtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447EF1C02DCA200DC1C4B /* moreBtn_Nav@2x.png */; }; + B1D5F1BB20BC06CB00983FB6 /* coding_emoji_19@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE861A0C7E26006F9AD7 /* coding_emoji_19@2x.png */; }; + B1D5F1BC20BC06CB00983FB6 /* PR_review_undo@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 13FB5D311CA17A6400EE127C /* PR_review_undo@3x.png */; }; + B1D5F1BD20BC06CB00983FB6 /* taskPriority1@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8715E1EB182C7003DACF0 /* taskPriority1@3x.png */; }; + B1D5F1BE20BC06CB00983FB6 /* alipay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8961FCE93830098B87B /* alipay@3x.png */; }; + B1D5F1BF20BC06CB00983FB6 /* PR_more@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 134116EF1CB529E1005E6550 /* PR_more@3x.png */; }; + B1D5F1C020BC06CB00983FB6 /* share_btn_wxsession@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3CD1B96CDF800A5A0A8 /* share_btn_wxsession@2x.png */; }; + B1D5F1C120BC06CB00983FB6 /* task_activity_icon_MergeRequestBean@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E3DB53B1BFDD0F40062BA52 /* task_activity_icon_MergeRequestBean@2x.png */; }; + B1D5F1C220BC06CB00983FB6 /* icon_file_txt@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E96E7D51A1B537E0037C098 /* icon_file_txt@2x.png */; }; + B1D5F1C320BC06CB00983FB6 /* project_item_member@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C8712F1EADF155003DACF0 /* project_item_member@3x.png */; }; + B1D5F1C420BC06CB00983FB6 /* timeline_line_unread@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CFAE19E240C40076D59C /* timeline_line_unread@2x.png */; }; + B1D5F1C520BC06CB00983FB6 /* tip_2FA@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E94C4F01B4B75DB00EB668A /* tip_2FA@2x.png */; }; + B1D5F1C620BC06CB00983FB6 /* PR_add_label@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1280CF3200EFEA400DEDF78 /* PR_add_label@3x.png */; }; + B1D5F1C720BC06CB00983FB6 /* back_T_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871201EADF0FF003DACF0 /* back_T_Nav@2x.png */; }; + B1D5F1C820BC06CB00983FB6 /* checkbox_checked@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871591EB182C7003DACF0 /* checkbox_checked@3x.png */; }; + B1D5F1C920BC06CB00983FB6 /* coding_emoji_05@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE781A0C7E26006F9AD7 /* coding_emoji_05@2x.png */; }; + B1D5F1CA20BC06CB00983FB6 /* alipay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8951FCE93830098B87B /* alipay@2x.png */; }; + B1D5F1CC20BC06CB00983FB6 /* taskPriority0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E63839B1B3262D300D98648 /* taskPriority0@2x.png */; }; + B1D5F1CD20BC06CB00983FB6 /* task_activity_icon_update_label@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E0EF6EB1BF42E4B00F2FCC8 /* task_activity_icon_update_label@2x.png */; }; + B1D5F1CE20BC06CB00983FB6 /* wiki_menu_2@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C1F2015D82600F52ABA /* wiki_menu_2@3x.png */; }; + B1D5F1CF20BC06CB00983FB6 /* blankpage_image_Tip@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E9423D21E69401B0095F1CD /* blankpage_image_Tip@2x.png */; }; + B1D5F1D020BC06CB00983FB6 /* keyboard_add_camera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E97CE581A0A3424006F9AD7 /* keyboard_add_camera@2x.png */; }; + B1D5F1D120BC06CB00983FB6 /* btn_fliter_down@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447E81C02DBC200DC1C4B /* btn_fliter_down@3x.png */; }; + B1D5F1D220BC06CB00983FB6 /* topic-ios.html in Resources */ = {isa = PBXBuildFile; fileRef = B177F5C32060E6B1006709C2 /* topic-ios.html */; }; + B1D5F1D320BC06CB00983FB6 /* user_info_help@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B4791D82646000EED8C6 /* user_info_help@2x.png */; }; + B1D5F1D420BC06CB00983FB6 /* SVWebViewControllerActivitySafari-iPad.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E217F051A70EDC700F6DF88 /* SVWebViewControllerActivitySafari-iPad.png */; }; + B1D5F1D520BC06CB00983FB6 /* icon_triangle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD0591E544006008AA957 /* icon_triangle@2x.png */; }; + B1D5F1D620BC06CB00983FB6 /* comment_count_top_line@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EF6434F19FF4E1600F7EEB0 /* comment_count_top_line@2x.png */; }; + B1D5F1D720BC06CB00983FB6 /* keyboard_voice_record@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E335D9B1B6F5E94003D0F3D /* keyboard_voice_record@2x.png */; }; + B1D5F1D820BC06CB00983FB6 /* icon_file_music_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB87A1FCD006C0098B87B /* icon_file_music_big@2x.png */; }; + B1D5F1D920BC06CB00983FB6 /* password_unlook@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EB52F0D1C74691B00B5EBEA /* password_unlook@2x.png */; }; + B1D5F1DA20BC06CB00983FB6 /* coding_emoji_gif_03@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB3411BA6AEB4002F27C4 /* coding_emoji_gif_03@2x.png */; }; + B1D5F1DB20BC06CB00983FB6 /* mrpr_icon_arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAAD09B1E5D8558008AA957 /* mrpr_icon_arrow@2x.png */; }; + B1D5F1DC20BC06CB00983FB6 /* vip_3_45@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689A91EE100B200B01371 /* vip_3_45@3x.png */; }; + B1D5F1DD20BC06CB00983FB6 /* splitlineImg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9A19E240C40076D59C /* splitlineImg@2x.png */; }; + B1D5F1DE20BC06CB00983FB6 /* button_file_move_enable@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5CAE202D7D4F0075A669 /* button_file_move_enable@3x.png */; }; + B1D5F1DF20BC06CB00983FB6 /* wiki_menu_0@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1890C1E2015D82600F52ABA /* wiki_menu_0@2x.png */; }; + B1D5F1E020BC06CB00983FB6 /* icon_release_tag_blue@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B17CC31220731E900077C956 /* icon_release_tag_blue@3x.png */; }; + B1D5F1E120BC06CB00983FB6 /* search_icon_topic@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9401E02911E00DE1BC6 /* search_icon_topic@2x.png */; }; + B1D5F1E220BC06CB00983FB6 /* file_activity_icon_delete_history@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2BF3BB1B957D4F00A5A0A8 /* file_activity_icon_delete_history@2x.png */; }; + B1D5F1E320BC06CB00983FB6 /* icon_file_unknown_big@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1BCB8741FCD006B0098B87B /* icon_file_unknown_big@2x.png */; }; + B1D5F1E420BC06CB00983FB6 /* sex_woman_icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EA6CF9919E240C40076D59C /* sex_woman_icon@2x.png */; }; + B1D5F1E520BC06CB00983FB6 /* privatemessage_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D51C02DB8900DC1C4B /* privatemessage_selected@3x.png */; }; + B1D5F1E620BC06CB00983FB6 /* tipIcon_TaskComment@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8E7612F31A08B1EA005BE797 /* tipIcon_TaskComment@2x.png */; }; + B1D5F1E720BC06CB00983FB6 /* taskDeadline@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383DD1B32676600D98648 /* taskDeadline@2x.png */; }; + B1D5F1E820BC06CB00983FB6 /* AddReviewerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 136526881CAABA2E00C0341D /* AddReviewerViewController.xib */; }; + B1D5F1E920BC06CB00983FB6 /* shop_exchange_icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 927AFF491BFF6DAD00AAE593 /* shop_exchange_icon@3x.png */; }; + B1D5F1EA20BC06CB00983FB6 /* vip_3_40@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B14689A71EE100B200B01371 /* vip_3_40@3x.png */; }; + B1D5F1EC20BC06CB00983FB6 /* button_file_activity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE06A51B7B1AE100179F4B /* button_file_activity@2x.png */; }; + B1D5F1ED20BC06CB00983FB6 /* file_activity_icon_update_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EAE06BE1B7B51AF00179F4B /* file_activity_icon_update_file@2x.png */; }; + B1D5F1EE20BC06CB00983FB6 /* nav_project_code@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8EC911281A027A54009EAE99 /* nav_project_code@2x.png */; }; + B1D5F1EF20BC06CB00983FB6 /* user_info_project@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4ED4B47E1D82646000EED8C6 /* user_info_project@3x.png */; }; + B1D5F1F020BC06CB00983FB6 /* taskBoardList@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B152ED80209453E7004A6E8A /* taskBoardList@2x.png */; }; + B1D5F1F120BC06CB00983FB6 /* coding_emoji_gif_08@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E2DB33C1BA6A1FC002F27C4 /* coding_emoji_gif_08@2x.png */; }; + B1D5F1F220BC06CB00983FB6 /* icon_project_private@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D09E6AB91BF829A1009D37F8 /* icon_project_private@2x.png */; }; + B1D5F1F320BC06CB00983FB6 /* search_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447F01C02DCA200DC1C4B /* search_Nav@2x.png */; }; + B1D5F1F420BC06CB00983FB6 /* terminal_box_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1AB5C97202953E40075A669 /* terminal_box_selected@3x.png */; }; + B1D5F1F520BC06CB00983FB6 /* twoFABtn_Nav@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4EED9DD01B53BBCF000E5827 /* twoFABtn_Nav@2x.png */; }; + B1D5F1F620BC06CB00983FB6 /* project_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447D71C02DB8900DC1C4B /* project_selected@3x.png */; }; + B1D5F1F720BC06CB00983FB6 /* task_activity_icon_MergeRequestBean@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1C871971EB2D9E6003DACF0 /* task_activity_icon_MergeRequestBean@3x.png */; }; + B1D5F1F820BC06CB00983FB6 /* tweet_selected@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0C447DB1C02DB8900DC1C4B /* tweet_selected@3x.png */; }; + B1D5F1F920BC06CB00983FB6 /* taskPriority3@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E6383A11B3262D300D98648 /* taskPriority3@2x.png */; }; + B1D5F1FA20BC06CB00983FB6 /* search_icon_file@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E80E9421E02911E00DE1BC6 /* search_icon_file@2x.png */; }; + B1D5F1FB20BC06CB00983FB6 /* nav_page_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4E53EB581AFB090E0034FE1C /* nav_page_unselected@2x.png */; }; + B1D5F20A20BCF6A900983FB6 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4EFE8DB81B3A5727004B7559 /* Launch Screen.xib */; }; + B1D5F20E20BD3BF400983FB6 /* UINavigationController+FullscreenPopGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F20D20BD3BF300983FB6 /* UINavigationController+FullscreenPopGesture.m */; }; + B1D5F20F20BD3BF400983FB6 /* UINavigationController+FullscreenPopGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F20D20BD3BF300983FB6 /* UINavigationController+FullscreenPopGesture.m */; }; + B1D5F21620BD485D00983FB6 /* TeamPurchaseOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21220BD485B00983FB6 /* TeamPurchaseOrder.m */; }; + B1D5F21720BD485D00983FB6 /* TeamPurchaseOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21220BD485B00983FB6 /* TeamPurchaseOrder.m */; }; + B1D5F21820BD485D00983FB6 /* TeamPurchaseBilling.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21320BD485B00983FB6 /* TeamPurchaseBilling.m */; }; + B1D5F21920BD485D00983FB6 /* TeamPurchaseBilling.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21320BD485B00983FB6 /* TeamPurchaseBilling.m */; }; + B1D5F21A20BD485D00983FB6 /* TeamPurchaseBillingDetail.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21520BD485C00983FB6 /* TeamPurchaseBillingDetail.m */; }; + B1D5F21B20BD485D00983FB6 /* TeamPurchaseBillingDetail.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21520BD485C00983FB6 /* TeamPurchaseBillingDetail.m */; }; + B1D5F21E20BD50D000983FB6 /* ProjectRole.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21D20BD50D000983FB6 /* ProjectRole.m */; }; + B1D5F21F20BD50D000983FB6 /* ProjectRole.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F21D20BD50D000983FB6 /* ProjectRole.m */; }; + B1D5F22220BEA37600983FB6 /* MeRootCompanyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F22120BEA37500983FB6 /* MeRootCompanyCell.m */; }; + B1D5F22320BEA37600983FB6 /* MeRootCompanyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F22120BEA37500983FB6 /* MeRootCompanyCell.m */; }; + B1D5F23220BEADD200983FB6 /* TeamSupportCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F23020BEADD100983FB6 /* TeamSupportCell.m */; }; + B1D5F23320BEADD200983FB6 /* TeamSupportCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F23020BEADD100983FB6 /* TeamSupportCell.m */; }; + B1DFD0A120C67D3F00F75F2F /* btn_followed_yes@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD09D20C67D3D00F75F2F /* btn_followed_yes@3x.png */; }; + B1DFD0A220C67D3F00F75F2F /* btn_followed_yes@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD09D20C67D3D00F75F2F /* btn_followed_yes@3x.png */; }; + B1DFD0A320C67D3F00F75F2F /* btn_followed_not@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD09E20C67D3E00F75F2F /* btn_followed_not@3x.png */; }; + B1DFD0A420C67D3F00F75F2F /* btn_followed_not@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD09E20C67D3E00F75F2F /* btn_followed_not@3x.png */; }; + B1DFD0A520C67D3F00F75F2F /* btn_followed_both@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD09F20C67D3E00F75F2F /* btn_followed_both@3x.png */; }; + B1DFD0A620C67D3F00F75F2F /* btn_followed_both@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD09F20C67D3E00F75F2F /* btn_followed_both@3x.png */; }; + B1DFD0A720C67D3F00F75F2F /* btn_privateMsg_friend@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD0A020C67D3E00F75F2F /* btn_privateMsg_friend@3x.png */; }; + B1DFD0A820C67D3F00F75F2F /* btn_privateMsg_friend@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B1DFD0A020C67D3E00F75F2F /* btn_privateMsg_friend@3x.png */; }; B93D904B1ACBA3110057A6EE /* ProjectDeleteAlertControllerVisualStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = B93D904A1ACBA3110057A6EE /* ProjectDeleteAlertControllerVisualStyle.m */; }; B94C1B691AC945D30000C271 /* NewProjectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B94C1B681AC945D30000C271 /* NewProjectViewController.m */; }; - B94C1B6B1AC945FB0000C271 /* NewProject.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B94C1B6A1AC945FB0000C271 /* NewProject.storyboard */; }; B94C1B6E1AC98CCE0000C271 /* NewProjectTypeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B94C1B6D1AC98CCE0000C271 /* NewProjectTypeViewController.m */; }; B9A00D7F1ACA3A05008BA008 /* ProjectSetting.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B9A00D7E1ACA3A05008BA008 /* ProjectSetting.storyboard */; }; B9A00D821ACA3A17008BA008 /* ProjectSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9A00D811ACA3A17008BA008 /* ProjectSettingViewController.m */; }; @@ -1555,6 +3217,16 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; + B1D5F1FD20BC06CB00983FB6 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -1674,7 +3346,9 @@ 13FB5D351CA17A6400EE127C /* PR_grant@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "PR_grant@3x.png"; sourceTree = ""; }; 13FB5D571CA194D600EE127C /* MRReviewerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MRReviewerCell.h; path = Cell/MRReviewerCell.h; sourceTree = ""; }; 13FB5D581CA194D600EE127C /* MRReviewerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MRReviewerCell.m; path = Cell/MRReviewerCell.m; sourceTree = ""; }; + 22A08D8B77355DB8A773B8E2 /* Pods-Coding_iOS-Coding_Enterprise_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Coding_iOS-Coding_Enterprise_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Coding_iOS-Coding_Enterprise_iOS/Pods-Coding_iOS-Coding_Enterprise_iOS.release.xcconfig"; sourceTree = ""; }; 2FD5D8DD0689696D28A6D49E /* Pods-Coding_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Coding_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Coding_iOS/Pods-Coding_iOS.release.xcconfig"; sourceTree = ""; }; + 344214A4A1281EB0C9B3DE71 /* Pods-Coding_iOS-CodingEnterprise_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Coding_iOS-CodingEnterprise_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Coding_iOS-CodingEnterprise_iOS/Pods-Coding_iOS-CodingEnterprise_iOS.debug.xcconfig"; sourceTree = ""; }; 34E37865A7DAAE68AEF68258 /* Pods-Coding_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Coding_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Coding_iOS/Pods-Coding_iOS.debug.xcconfig"; sourceTree = ""; }; 3A3878351AE293D50078D5DE /* EditLabelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditLabelViewController.h; sourceTree = ""; }; 3A3878361AE293D50078D5DE /* EditLabelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EditLabelViewController.m; sourceTree = ""; }; @@ -1712,10 +3386,6 @@ 4E00229B1B735075005308DE /* EAIntroView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EAIntroView.m; sourceTree = ""; }; 4E00229E1B7360B1005308DE /* FunctionIntroManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FunctionIntroManager.h; sourceTree = ""; }; 4E00229F1B7360B1005308DE /* FunctionIntroManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FunctionIntroManager.m; sourceTree = ""; }; - 4E0022A21B7362EF005308DE /* intro_page0_ip4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip4@2x.png"; sourceTree = ""; }; - 4E0022A31B7362EF005308DE /* intro_page0_ip5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip5@2x.png"; sourceTree = ""; }; - 4E0022A41B7362EF005308DE /* intro_page0_ip6+@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip6+@3x.png"; sourceTree = ""; }; - 4E0022A51B7362EF005308DE /* intro_page0_ip6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip6@2x.png"; sourceTree = ""; }; 4E03AC991A5BDDF9002B000B /* STARTIMAGE.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = STARTIMAGE.jpg; sourceTree = ""; }; 4E03ACA41A5D2060002B000B /* UIVerticalAlignmentLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIVerticalAlignmentLabel.h; sourceTree = ""; }; 4E03ACA51A5D2060002B000B /* UIVerticalAlignmentLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIVerticalAlignmentLabel.m; sourceTree = ""; }; @@ -1725,17 +3395,12 @@ 4E07D30C1A4A9F45009EDDF2 /* btn_file_reDo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_file_reDo@2x.png"; sourceTree = ""; }; 4E07D30F1A4D1484009EDDF2 /* EaseStartView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EaseStartView.h; sourceTree = ""; }; 4E07D3101A4D1484009EDDF2 /* EaseStartView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EaseStartView.m; sourceTree = ""; }; - 4E07D3121A4D3CA6009EDDF2 /* icon_user_monkey@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey@2x.png"; sourceTree = ""; }; 4E08497A1A918A7F00BD27F6 /* coding_emoji_38@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "coding_emoji_38@2x.png"; sourceTree = ""; }; 4E08497B1A918A7F00BD27F6 /* coding_emoji_39@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "coding_emoji_39@2x.png"; sourceTree = ""; }; 4E08497C1A918A7F00BD27F6 /* coding_emoji_40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "coding_emoji_40@2x.png"; sourceTree = ""; }; 4E08497D1A918A7F00BD27F6 /* coding_emoji_41@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "coding_emoji_41@2x.png"; sourceTree = ""; }; 4E08497E1A918A7F00BD27F6 /* coding_emoji_42@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "coding_emoji_42@2x.png"; sourceTree = ""; }; 4E08497F1A918A7F00BD27F6 /* coding_emoji_43@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "coding_emoji_43@2x.png"; sourceTree = ""; }; - 4E095A111D9534CB00E63D9E /* intro_page_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_selected@2x.png"; sourceTree = ""; }; - 4E095A121D9534CB00E63D9E /* intro_page_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_selected@3x.png"; sourceTree = ""; }; - 4E095A131D9534CB00E63D9E /* intro_page_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_unselected@2x.png"; sourceTree = ""; }; - 4E095A141D9534CB00E63D9E /* intro_page_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_unselected@3x.png"; sourceTree = ""; }; 4E095A571B690494008DC439 /* CodingBanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodingBanner.h; sourceTree = ""; }; 4E095A581B690494008DC439 /* CodingBanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CodingBanner.m; sourceTree = ""; }; 4E095A5A1B6907AA008DC439 /* CodingBannersView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodingBannersView.h; sourceTree = ""; }; @@ -1796,8 +3461,6 @@ 4E15C7CF1A26D2F000FB8DAD /* FolderToMoveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FolderToMoveViewController.m; sourceTree = ""; }; 4E15C7D41A271A6300FB8DAD /* EaseToolBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EaseToolBar.h; sourceTree = ""; }; 4E15C7D51A271A6300FB8DAD /* EaseToolBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EaseToolBar.m; sourceTree = ""; }; - 4E19E7051BCE03CD00C66DC6 /* UIActionSheet+Front.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIActionSheet+Front.h"; sourceTree = ""; }; - 4E19E7061BCE03CD00C66DC6 /* UIActionSheet+Front.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIActionSheet+Front.m"; sourceTree = ""; }; 4E1A22801AB1729700CFC14F /* ProjectInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectInfoCell.h; sourceTree = ""; }; 4E1A22811AB1729700CFC14F /* ProjectInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectInfoCell.m; sourceTree = ""; }; 4E1A22831AB172C400CFC14F /* ProjectItemsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectItemsCell.h; sourceTree = ""; }; @@ -2227,8 +3890,6 @@ 4E8D5D721B454D5000B70936 /* OTPAuthClock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTPAuthClock.m; sourceTree = ""; }; 4E8D5D7B1B462ADB00B70936 /* OTPTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTPTableViewCell.h; sourceTree = ""; }; 4E8D5D7C1B462ADB00B70936 /* OTPTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTPTableViewCell.m; sourceTree = ""; }; - 4E8F92DB1B67BE3C00033D8F /* icon_user_monkey_i6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey_i6@2x.png"; sourceTree = ""; }; - 4E8F92DC1B67BE3C00033D8F /* icon_user_monkey_i6p@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey_i6p@3x.png"; sourceTree = ""; }; 4E91139E1A1C426000AC9431 /* ASPopUpView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASPopUpView.h; sourceTree = ""; }; 4E91139F1A1C426000AC9431 /* ASPopUpView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASPopUpView.m; sourceTree = ""; }; 4E9113A01A1C426000AC9431 /* ASProgressPopUpView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASProgressPopUpView.h; sourceTree = ""; }; @@ -2355,8 +4016,6 @@ 4EA679181A14BFA0001A0324 /* icon_file_folder_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_file_folder_normal@2x.png"; sourceTree = ""; }; 4EA6791B1A15A943001A0324 /* FileListFolderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileListFolderCell.h; sourceTree = ""; }; 4EA6791C1A15A943001A0324 /* FileListFolderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FileListFolderCell.m; sourceTree = ""; }; - 4EA6791E1A15AB9F001A0324 /* FileListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileListViewController.h; sourceTree = ""; }; - 4EA6791F1A15AB9F001A0324 /* FileListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FileListViewController.m; sourceTree = ""; }; 4EA7F1391A6D192B00A046BD /* NSData+ImageContentType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+ImageContentType.h"; sourceTree = ""; }; 4EA7F13A1A6D192B00A046BD /* NSData+ImageContentType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+ImageContentType.m"; sourceTree = ""; }; 4EA7F13B1A6D192B00A046BD /* SDImageCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDImageCache.h; sourceTree = ""; }; @@ -2511,8 +4170,6 @@ 4EBD7FB01CE482A400B3AF49 /* country_code.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = country_code.plist; sourceTree = ""; }; 4EBD7FB21CE4833D00B3AF49 /* CountryCodeCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CountryCodeCell.h; sourceTree = ""; }; 4EBD7FB31CE4833D00B3AF49 /* CountryCodeCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CountryCodeCell.m; sourceTree = ""; }; - 4EBDA87A1A6640340035ED96 /* UIActionSheet+Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIActionSheet+Common.h"; sourceTree = ""; }; - 4EBDA87B1A6640340035ED96 /* UIActionSheet+Common.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIActionSheet+Common.m"; sourceTree = ""; }; 4EBDC27A1BC501C00037EB66 /* tipIcon_ProjectPayment@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tipIcon_ProjectPayment@2x.png"; sourceTree = ""; }; 4EBED55A1D93C9F700E3684E /* Coding_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Coding_iOS.entitlements; sourceTree = ""; }; 4EBFBD171AA85B8500E4B10E /* add_user_icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "add_user_icon@2x.png"; sourceTree = ""; }; @@ -2678,8 +4335,6 @@ 4EE1A21C1B5D02CA004284F1 /* ProjectActivityListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectActivityListView.m; sourceTree = ""; }; 4EE1A21D1B5D02CA004284F1 /* ProjectCodeListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectCodeListView.h; sourceTree = ""; }; 4EE1A21E1B5D02CA004284F1 /* ProjectCodeListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectCodeListView.m; sourceTree = ""; }; - 4EE1A21F1B5D02CA004284F1 /* ProjectFolderListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectFolderListView.h; sourceTree = ""; }; - 4EE1A2201B5D02CA004284F1 /* ProjectFolderListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectFolderListView.m; sourceTree = ""; }; 4EE1A2211B5D02CA004284F1 /* ProjectListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectListView.h; sourceTree = ""; }; 4EE1A2221B5D02CA004284F1 /* ProjectListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectListView.m; sourceTree = ""; }; 4EE1A2231B5D02CA004284F1 /* ProjectTaskListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectTaskListView.h; sourceTree = ""; }; @@ -2705,36 +4360,6 @@ 4EED9DD01B53BBCF000E5827 /* twoFABtn_Nav@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "twoFABtn_Nav@2x.png"; sourceTree = ""; }; 4EF17E5D1B3AB10F003CDD2D /* IntroductionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntroductionViewController.h; sourceTree = ""; }; 4EF17E5E1B3AB10F003CDD2D /* IntroductionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IntroductionViewController.m; sourceTree = ""; }; - 4EF17EAD1B3C3112003CDD2D /* intro_dot_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_selected@2x.png"; sourceTree = ""; }; - 4EF17EAE1B3C3112003CDD2D /* intro_dot_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_selected@3x.png"; sourceTree = ""; }; - 4EF17EAF1B3C3112003CDD2D /* intro_dot_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_unselected@2x.png"; sourceTree = ""; }; - 4EF17EB01B3C3112003CDD2D /* intro_dot_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_unselected@3x.png"; sourceTree = ""; }; - 4EF17EB11B3C3112003CDD2D /* intro_icon_0@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_0@2x.png"; sourceTree = ""; }; - 4EF17EB21B3C3112003CDD2D /* intro_icon_0@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_0@3x.png"; sourceTree = ""; }; - 4EF17EB31B3C3112003CDD2D /* intro_icon_1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_1@2x.png"; sourceTree = ""; }; - 4EF17EB41B3C3112003CDD2D /* intro_icon_1@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_1@3x.png"; sourceTree = ""; }; - 4EF17EB51B3C3112003CDD2D /* intro_icon_2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_2@2x.png"; sourceTree = ""; }; - 4EF17EB61B3C3112003CDD2D /* intro_icon_2@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_2@3x.png"; sourceTree = ""; }; - 4EF17EB71B3C3112003CDD2D /* intro_icon_3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_3@2x.png"; sourceTree = ""; }; - 4EF17EB81B3C3112003CDD2D /* intro_icon_3@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_3@3x.png"; sourceTree = ""; }; - 4EF17EB91B3C3112003CDD2D /* intro_icon_4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_4@2x.png"; sourceTree = ""; }; - 4EF17EBA1B3C3112003CDD2D /* intro_icon_4@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_4@3x.png"; sourceTree = ""; }; - 4EF17EBB1B3C3112003CDD2D /* intro_icon_5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_5@2x.png"; sourceTree = ""; }; - 4EF17EBC1B3C3112003CDD2D /* intro_icon_5@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_5@3x.png"; sourceTree = ""; }; - 4EF17EBD1B3C3112003CDD2D /* intro_icon_6@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_6@3x.png"; sourceTree = ""; }; - 4EF17EBE1B3C3112003CDD2D /* intro_tip_0@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_0@2x.png"; sourceTree = ""; }; - 4EF17EBF1B3C3112003CDD2D /* intro_tip_0@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_0@3x.png"; sourceTree = ""; }; - 4EF17EC01B3C3112003CDD2D /* intro_tip_1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_1@2x.png"; sourceTree = ""; }; - 4EF17EC11B3C3112003CDD2D /* intro_tip_1@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_1@3x.png"; sourceTree = ""; }; - 4EF17EC21B3C3112003CDD2D /* intro_tip_2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_2@2x.png"; sourceTree = ""; }; - 4EF17EC31B3C3112003CDD2D /* intro_tip_2@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_2@3x.png"; sourceTree = ""; }; - 4EF17EC41B3C3112003CDD2D /* intro_tip_3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_3@2x.png"; sourceTree = ""; }; - 4EF17EC51B3C3112003CDD2D /* intro_tip_3@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_3@3x.png"; sourceTree = ""; }; - 4EF17EC61B3C3112003CDD2D /* intro_tip_4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_4@2x.png"; sourceTree = ""; }; - 4EF17EC71B3C3112003CDD2D /* intro_tip_4@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_4@3x.png"; sourceTree = ""; }; - 4EF17EC81B3C3112003CDD2D /* intro_tip_5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_5@2x.png"; sourceTree = ""; }; - 4EF17EC91B3C3112003CDD2D /* intro_tip_5@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_5@3x.png"; sourceTree = ""; }; - 4EF17ECA1B3C3112003CDD2D /* intro_icon_6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_6@2x.png"; sourceTree = ""; }; 4EF374141BB1254700DDA662 /* LocalFoldersViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalFoldersViewController.h; sourceTree = ""; }; 4EF374151BB1254700DDA662 /* LocalFoldersViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalFoldersViewController.m; sourceTree = ""; }; 4EF374171BB1255E00DDA662 /* LocalFilesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalFilesViewController.h; sourceTree = ""; }; @@ -2756,6 +4381,8 @@ 4EFE8DAE1B3960E6004B7559 /* logo_coding_top@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "logo_coding_top@2x.png"; sourceTree = ""; }; 4EFE8DB81B3A5727004B7559 /* Launch Screen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "Launch Screen.xib"; sourceTree = ""; }; 4EFF5A761E0AE54800683D03 /* libresolv.9.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.9.tbd; path = usr/lib/libresolv.9.tbd; sourceTree = SDKROOT; }; + 59EA81AF0F8C7610F675E1EB /* Pods-Coding_iOS-Coding_Enterprise_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Coding_iOS-Coding_Enterprise_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Coding_iOS-Coding_Enterprise_iOS/Pods-Coding_iOS-Coding_Enterprise_iOS.debug.xcconfig"; sourceTree = ""; }; + 627CA7E44F0D5A025A49E2F0 /* libPods-Coding_iOS-Coding_Enterprise_iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Coding_iOS-Coding_Enterprise_iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 645969FE6A8616A74543C249 /* libPods-Coding_iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Coding_iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 7E335D9A1B6F5E94003D0F3D /* keyboard_arrow_down@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "keyboard_arrow_down@2x.png"; sourceTree = ""; }; 7E335D9B1B6F5E94003D0F3D /* keyboard_voice_record@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "keyboard_voice_record@2x.png"; sourceTree = ""; }; @@ -2867,10 +4494,8 @@ 8E8F7B2219EF6306006BA8BD /* btn_followed_both@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_followed_both@2x.png"; sourceTree = ""; }; 8E8F7B2319EF6306006BA8BD /* btn_followed_not@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_followed_not@2x.png"; sourceTree = ""; }; 8E8F7B2419EF6306006BA8BD /* btn_followed_yes@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_followed_yes@2x.png"; sourceTree = ""; }; - 8E8F7B2519EF6306006BA8BD /* btn_privateMsg_black@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_privateMsg_black@2x.png"; sourceTree = ""; }; 8E8F7B2619EF6306006BA8BD /* btn_privateMsg_friend@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_privateMsg_friend@2x.png"; sourceTree = ""; }; 8E8F7B2719EF6306006BA8BD /* btn_privateMsg_stranger@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_privateMsg_stranger@2x.png"; sourceTree = ""; }; - 8E8F7B2819EF6306006BA8BD /* btn_privateMsg_white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_privateMsg_white@2x.png"; sourceTree = ""; }; 8E8F7B2919EF6306006BA8BD /* btn_project_add@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_project_add@2x.png"; sourceTree = ""; }; 8E8F7B2A19EF6306006BA8BD /* btn_project_added@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_project_added@2x.png"; sourceTree = ""; }; 8E8F7B2B19EF6306006BA8BD /* btn_project_quit@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_project_quit@2x.png"; sourceTree = ""; }; @@ -3352,6 +4977,8 @@ B14689B11EE100B200B01371 /* vip_4_45@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vip_4_45@3x.png"; sourceTree = ""; }; B14689B21EE100B200B01371 /* vip_4_75@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vip_4_75@2x.png"; sourceTree = ""; }; B14689B31EE100B200B01371 /* vip_4_75@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "vip_4_75@3x.png"; sourceTree = ""; }; + B14DE6DC20C914E60072ECEA /* AnimatedGIFImageSerialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimatedGIFImageSerialization.h; sourceTree = ""; }; + B14DE6DD20C914E60072ECEA /* AnimatedGIFImageSerialization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnimatedGIFImageSerialization.m; sourceTree = ""; }; B152ED4C2090B223004A6E8A /* ProjectSettingEntranceController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProjectSettingEntranceController.h; sourceTree = ""; }; B152ED4D2090B223004A6E8A /* ProjectSettingEntranceController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ProjectSettingEntranceController.m; sourceTree = ""; }; B152ED522091B7CB004A6E8A /* ProjectArchiveViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProjectArchiveViewController.h; sourceTree = ""; }; @@ -3381,6 +5008,124 @@ B152ED8C209453F2004A6E8A /* taskboard_add_page_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "taskboard_add_page_unselected@3x.png"; sourceTree = ""; }; B152ED8D209453F2004A6E8A /* taskboard_normal_page_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "taskboard_normal_page_unselected@3x.png"; sourceTree = ""; }; B152ED8E209453F2004A6E8A /* taskboard_normal_page_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "taskboard_normal_page_unselected@2x.png"; sourceTree = ""; }; + B15C98AE20D39CA100DDA425 /* project_icon_edit@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "project_icon_edit@2x.png"; sourceTree = ""; }; + B15C98AF20D39CA200DDA425 /* project_icon_edit@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "project_icon_edit@3x.png"; sourceTree = ""; }; + B16E6C9F20C0FDB50076026D /* logo_coding_top@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "logo_coding_top@3x.png"; sourceTree = ""; }; + B16E6CA220C0FFFF0076026D /* Coding_Enterprise_iOS.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Coding_Enterprise_iOS.entitlements; sourceTree = ""; }; + B16E6CA420C13BA10076026D /* btn_dismiss@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_dismiss@3x.png"; sourceTree = ""; }; + B16E6CA520C13BA10076026D /* btn_dismiss@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_dismiss@2x.png"; sourceTree = ""; }; + B16E6CAB20C13BF40076026D /* btn_next_unable@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_next_unable@2x.png"; sourceTree = ""; }; + B16E6CAC20C13BF40076026D /* btn_next_unable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_next_unable@3x.png"; sourceTree = ""; }; + B16E6CAD20C13BF40076026D /* btn_next_enable@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_next_enable@2x.png"; sourceTree = ""; }; + B16E6CAE20C13BF40076026D /* btn_next_enable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_next_enable@3x.png"; sourceTree = ""; }; + B16E6CB820C13F5E0076026D /* btn_project_add@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_project_add@3x.png"; sourceTree = ""; }; + B16E6CB920C13F5E0076026D /* btn_project_added@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_project_added@3x.png"; sourceTree = ""; }; + B16E6CBA20C13F5E0076026D /* btn_project_quit@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_project_quit@3x.png"; sourceTree = ""; }; + B16E6CBB20C13F5E0076026D /* btn_privateMsg_stranger@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_privateMsg_stranger@3x.png"; sourceTree = ""; }; + B16E6CC620C144910076026D /* done_Nav@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "done_Nav@2x.png"; sourceTree = ""; }; + B16E6CC720C144920076026D /* done_Nav@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "done_Nav@3x.png"; sourceTree = ""; }; + B16E6CC820C144920076026D /* done_un_Nav@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "done_un_Nav@2x.png"; sourceTree = ""; }; + B16E6CC920C144920076026D /* done_un_Nav@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "done_un_Nav@3x.png"; sourceTree = ""; }; + B16E6CD320C145BE0076026D /* quick_menu_icon_message@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_message@2x.png"; sourceTree = ""; }; + B16E6CD420C145BE0076026D /* quick_menu_icon_message@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_message@3x.png"; sourceTree = ""; }; + B16E6CD520C145BE0076026D /* quick_menu_icon_task@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_task@3x.png"; sourceTree = ""; }; + B16E6CD620C145BE0076026D /* quick_menu_icon_task@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_task@2x.png"; sourceTree = ""; }; + B16E6CD720C145BE0076026D /* quick_menu_icon_project@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_project@3x.png"; sourceTree = ""; }; + B16E6CD820C145BE0076026D /* quick_menu_icon_2fa@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_2fa@3x.png"; sourceTree = ""; }; + B16E6CD920C145BE0076026D /* quick_menu_icon_2fa@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_2fa@2x.png"; sourceTree = ""; }; + B16E6CDA20C145BE0076026D /* quick_menu_icon_project@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "quick_menu_icon_project@2x.png"; sourceTree = ""; }; + B16E6CEB20C147480076026D /* team_bg@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_bg@3x.png"; sourceTree = ""; }; + B16E6CEC20C147490076026D /* team_bg@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_bg@2x.png"; sourceTree = ""; }; + B16E6CF220C147760076026D /* team_info_pro@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_pro@3x.png"; sourceTree = ""; }; + B16E6CF320C147760076026D /* team_info_pro@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_pro@2x.png"; sourceTree = ""; }; + B16E6CF420C147760076026D /* team_info_order@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_order@2x.png"; sourceTree = ""; }; + B16E6CF520C147760076026D /* team_info_order@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_order@3x.png"; sourceTree = ""; }; + B16E6CF620C147760076026D /* team_info_sup@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_sup@2x.png"; sourceTree = ""; }; + B16E6CF720C147760076026D /* team_info_mem@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_mem@3x.png"; sourceTree = ""; }; + B16E6CF820C147760076026D /* team_info_mem@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_mem@2x.png"; sourceTree = ""; }; + B16E6CF920C147760076026D /* team_info_sup@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_info_sup@3x.png"; sourceTree = ""; }; + B16E6CFB20C147760076026D /* team_cell_edit_team@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_cell_edit_team@3x.png"; sourceTree = ""; }; + B16E6CFC20C147760076026D /* team_cell_edit_team@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_cell_edit_team@2x.png"; sourceTree = ""; }; + B16E6CFD20C147760076026D /* team_cell_edit_delete@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_cell_edit_delete@3x.png"; sourceTree = ""; }; + B16E6CFE20C147760076026D /* team_cell_edit_delete@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_cell_edit_delete@2x.png"; sourceTree = ""; }; + B16E6CFF20C147760076026D /* team_cell_edit_pro@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_cell_edit_pro@3x.png"; sourceTree = ""; }; + B16E6D0020C147760076026D /* team_cell_edit_pro@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "team_cell_edit_pro@2x.png"; sourceTree = ""; }; + B16E6D2020C148E50076026D /* intro_icon_4@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_4@3x.png"; sourceTree = ""; }; + B16E6D2120C148E50076026D /* intro_tip_2@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_2@3x.png"; sourceTree = ""; }; + B16E6D2220C148E50076026D /* intro_icon_6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_6@2x.png"; sourceTree = ""; }; + B16E6D2320C148E50076026D /* intro_tip_0@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_0@2x.png"; sourceTree = ""; }; + B16E6D2420C148E50076026D /* intro_tip_0@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_0@3x.png"; sourceTree = ""; }; + B16E6D2520C148E50076026D /* intro_icon_6@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_6@3x.png"; sourceTree = ""; }; + B16E6D2620C148E50076026D /* intro_tip_2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_2@2x.png"; sourceTree = ""; }; + B16E6D2720C148E50076026D /* intro_icon_4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_4@2x.png"; sourceTree = ""; }; + B16E6D2820C148E50076026D /* intro_icon_0@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_0@2x.png"; sourceTree = ""; }; + B16E6D2920C148E50076026D /* intro_icon_2@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_2@3x.png"; sourceTree = ""; }; + B16E6D2A20C148E50076026D /* intro_tip_4@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_4@3x.png"; sourceTree = ""; }; + B16E6D2B20C148E50076026D /* intro_tip_4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_4@2x.png"; sourceTree = ""; }; + B16E6D2C20C148E50076026D /* intro_icon_2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_2@2x.png"; sourceTree = ""; }; + B16E6D2D20C148E50076026D /* intro_icon_0@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_0@3x.png"; sourceTree = ""; }; + B16E6D2E20C148E50076026D /* intro_tip_1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_1@2x.png"; sourceTree = ""; }; + B16E6D2F20C148E50076026D /* intro_icon_5@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_5@3x.png"; sourceTree = ""; }; + B16E6D3020C148E50076026D /* intro_dot_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_unselected@2x.png"; sourceTree = ""; }; + B16E6D3120C148E50076026D /* intro_tip_3@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_3@3x.png"; sourceTree = ""; }; + B16E6D3220C148E50076026D /* intro_tip_3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_3@2x.png"; sourceTree = ""; }; + B16E6D3320C148E50076026D /* intro_icon_5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_5@2x.png"; sourceTree = ""; }; + B16E6D3420C148E50076026D /* intro_dot_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_unselected@3x.png"; sourceTree = ""; }; + B16E6D3520C148E50076026D /* intro_tip_1@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_1@3x.png"; sourceTree = ""; }; + B16E6D3620C148E50076026D /* intro_icon_3@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_3@3x.png"; sourceTree = ""; }; + B16E6D3720C148E50076026D /* intro_tip_5@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_5@3x.png"; sourceTree = ""; }; + B16E6D3820C148E50076026D /* intro_icon_1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_1@2x.png"; sourceTree = ""; }; + B16E6D3920C148E50076026D /* intro_dot_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_selected@2x.png"; sourceTree = ""; }; + B16E6D3A20C148E50076026D /* intro_dot_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_selected@3x.png"; sourceTree = ""; }; + B16E6D3B20C148E50076026D /* intro_icon_1@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_1@3x.png"; sourceTree = ""; }; + B16E6D3C20C148E50076026D /* intro_tip_5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_tip_5@2x.png"; sourceTree = ""; }; + B16E6D3D20C148E50076026D /* intro_icon_3@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_icon_3@2x.png"; sourceTree = ""; }; + B16E6D3F20C148E50076026D /* intro_page0_ip5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip5@2x.png"; sourceTree = ""; }; + B16E6D4020C148E50076026D /* intro_page_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_selected@2x.png"; sourceTree = ""; }; + B16E6D4120C148E50076026D /* intro_page_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_unselected@2x.png"; sourceTree = ""; }; + B16E6D4220C148E50076026D /* intro_page0_ip4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip4@2x.png"; sourceTree = ""; }; + B16E6D4320C148E50076026D /* intro_page_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_unselected@3x.png"; sourceTree = ""; }; + B16E6D4420C148E50076026D /* intro_page_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_selected@3x.png"; sourceTree = ""; }; + B16E6D4520C148E50076026D /* intro_page0_ip6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip6@2x.png"; sourceTree = ""; }; + B16E6D4620C148E50076026D /* intro_page0_ip6+@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip6+@3x.png"; sourceTree = ""; }; + B16E6D4720C148E50076026D /* intro_page0_ipX@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ipX@3x.png"; sourceTree = ""; }; + B16E6D4920C148E50076026D /* icon_user_monkey_i6p@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey_i6p@3x.png"; sourceTree = ""; }; + B16E6D4A20C148E50076026D /* icon_user_monkey_i6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey_i6@2x.png"; sourceTree = ""; }; + B16E6D4B20C148E50076026D /* icon_user_monkey@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey@2x.png"; sourceTree = ""; }; + B16E6D4F20C148E50076026D /* intro_dot_light_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_light_unselected@2x.png"; sourceTree = ""; }; + B16E6D5020C148E50076026D /* intro_dot_light_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_light_unselected@3x.png"; sourceTree = ""; }; + B16E6D5120C148E50076026D /* intro_dot_light_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_light_selected@3x.png"; sourceTree = ""; }; + B16E6D5220C148E50076026D /* intro_dot_light_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_light_selected@2x.png"; sourceTree = ""; }; + B16E6D5320C148E50076026D /* intro_icon_wiki_down.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_wiki_down.gif; sourceTree = ""; }; + B16E6D5520C148E50076026D /* intro_dot_dark_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_dark_unselected@3x.png"; sourceTree = ""; }; + B16E6D5620C148E50076026D /* intro_dot_dark_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_dark_selected@3x.png"; sourceTree = ""; }; + B16E6D5720C148E50076026D /* intro_dot_dark_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_dark_selected@2x.png"; sourceTree = ""; }; + B16E6D5820C148E50076026D /* intro_dot_dark_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_dot_dark_unselected@2x.png"; sourceTree = ""; }; + B16E6D5920C148E50076026D /* intro_icon_wiki_up.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_wiki_up.gif; sourceTree = ""; }; + B16E6D5A20C148E50076026D /* intro_icon_file_up.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_file_up.gif; sourceTree = ""; }; + B16E6D5B20C148E50076026D /* intro_icon_code_up.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_code_up.gif; sourceTree = ""; }; + B16E6D5C20C148E50076026D /* intro_icon_task_up.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_task_up.gif; sourceTree = ""; }; + B16E6D5D20C148E50076026D /* intro_icon_file_down.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_file_down.gif; sourceTree = ""; }; + B16E6D5E20C148E50076026D /* intro_icon_task_down.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_task_down.gif; sourceTree = ""; }; + B16E6D5F20C148E50076026D /* intro_icon_code_down.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = intro_icon_code_down.gif; sourceTree = ""; }; + B16E6D6120C148E50076026D /* intro_page0_ip5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip5@2x.png"; sourceTree = ""; }; + B16E6D6220C148E50076026D /* intro_page2_ip6+@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page2_ip6+@3x.png"; sourceTree = ""; }; + B16E6D6320C148E50076026D /* intro_page1_ip6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page1_ip6@2x.png"; sourceTree = ""; }; + B16E6D6420C148E50076026D /* intro_page1_ip4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page1_ip4@2x.png"; sourceTree = ""; }; + B16E6D6520C148E50076026D /* intro_page2_ip5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page2_ip5@2x.png"; sourceTree = ""; }; + B16E6D6620C148E50076026D /* intro_page1_ip6+@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page1_ip6+@3x.png"; sourceTree = ""; }; + B16E6D6720C148E50076026D /* intro_page_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_selected@2x.png"; sourceTree = ""; }; + B16E6D6820C148E50076026D /* intro_page_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_unselected@2x.png"; sourceTree = ""; }; + B16E6D6920C148E50076026D /* intro_page0_ip4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip4@2x.png"; sourceTree = ""; }; + B16E6D6A20C148E50076026D /* intro_page1_ip5@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page1_ip5@2x.png"; sourceTree = ""; }; + B16E6D6B20C148E50076026D /* intro_page_unselected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_unselected@3x.png"; sourceTree = ""; }; + B16E6D6C20C148E50076026D /* intro_page_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page_selected@3x.png"; sourceTree = ""; }; + B16E6D6D20C148E50076026D /* intro_page0_ip6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip6@2x.png"; sourceTree = ""; }; + B16E6D6E20C148E50076026D /* intro_page2_ip4@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page2_ip4@2x.png"; sourceTree = ""; }; + B16E6D6F20C148E50076026D /* intro_page0_ip6+@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ip6+@3x.png"; sourceTree = ""; }; + B16E6D7020C148E50076026D /* intro_page2_ip6@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page2_ip6@2x.png"; sourceTree = ""; }; + B16E6D7220C148E50076026D /* icon_user_monkey@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey@2x.png"; sourceTree = ""; }; + B16E6D7320C148E50076026D /* icon_user_monkey@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_user_monkey@3x.png"; sourceTree = ""; }; B16EEF06208DDBB5005ABFD5 /* timeline_icon_read@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "timeline_icon_read@3x.png"; sourceTree = ""; }; B16EEF07208DDBB6005ABFD5 /* timeline_icon_unread@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "timeline_icon_unread@3x.png"; sourceTree = ""; }; B16EEF11209080D7005ABFD5 /* TaskBoardsViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TaskBoardsViewController.h; sourceTree = ""; }; @@ -3445,6 +5190,8 @@ B1817F052069F67700E9BAD1 /* EAEditCodeReleaseViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EAEditCodeReleaseViewController.m; sourceTree = ""; }; B184166720513CA000207666 /* topic_add_watcher_btn@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "topic_add_watcher_btn@3x.png"; sourceTree = ""; }; B184166820513CA000207666 /* tweet_comment_btn@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tweet_comment_btn@3x.png"; sourceTree = ""; }; + B186AEAE20F462F600A6AF35 /* UIAlertController+Common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIAlertController+Common.h"; sourceTree = ""; }; + B186AEAF20F462F600A6AF35 /* UIAlertController+Common.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIAlertController+Common.m"; sourceTree = ""; }; B1890C1E2015D82600F52ABA /* wiki_menu_0@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wiki_menu_0@2x.png"; sourceTree = ""; }; B1890C1F2015D82600F52ABA /* wiki_menu_2@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wiki_menu_2@3x.png"; sourceTree = ""; }; B1890C202015D82600F52ABA /* wiki_menu_2@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wiki_menu_2@2x.png"; sourceTree = ""; }; @@ -3505,7 +5252,6 @@ B1AB5C97202953E40075A669 /* terminal_box_selected@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "terminal_box_selected@3x.png"; sourceTree = ""; }; B1AB5C98202953E40075A669 /* terminal_triangle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "terminal_triangle@2x.png"; sourceTree = ""; }; B1AB5C99202953E40075A669 /* terminal_box_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "terminal_box_selected@2x.png"; sourceTree = ""; }; - B1AB5CA42029849A0075A669 /* intro_page0_ipX@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "intro_page0_ipX@3x.png"; sourceTree = ""; }; B1AB5CA6202D7D4D0075A669 /* button_file_createFolder_enable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_file_createFolder_enable@3x.png"; sourceTree = ""; }; B1AB5CA7202D7D4E0075A669 /* button_file_denete_enable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_file_denete_enable@3x.png"; sourceTree = ""; }; B1AB5CA8202D7D4E0075A669 /* button_file_download_enable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_file_download_enable@3x.png"; sourceTree = ""; }; @@ -3517,6 +5263,8 @@ B1AB5CAE202D7D4F0075A669 /* button_file_move_enable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_file_move_enable@3x.png"; sourceTree = ""; }; B1AB5CAF202D7D4F0075A669 /* button_file_move_unable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_file_move_unable@3x.png"; sourceTree = ""; }; B1AB5CB0202D7D500075A669 /* button_file_createFolder_unable@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_file_createFolder_unable@3x.png"; sourceTree = ""; }; + B1ACFE0B20A975E2000BC41E /* EAMilestone.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EAMilestone.h; sourceTree = ""; }; + B1ACFE0C20A975E2000BC41E /* EAMilestone.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EAMilestone.m; sourceTree = ""; }; B1B2BDB01F79E74000645EAD /* net_route.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = net_route.h; sourceTree = ""; }; B1BCB8701FCD006A0098B87B /* icon_file_doc_big@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_file_doc_big@2x.png"; sourceTree = ""; }; B1BCB8711FCD006B0098B87B /* icon_file_zip_big@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon_file_zip_big@2x.png"; sourceTree = ""; }; @@ -3541,6 +5289,34 @@ B1BCB8961FCE93830098B87B /* alipay@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "alipay@3x.png"; sourceTree = ""; }; B1BCB8971FCE93830098B87B /* wechat@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wechat@2x.png"; sourceTree = ""; }; B1BCB8981FCE93830098B87B /* wechat@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wechat@3x.png"; sourceTree = ""; }; + B1BFC4B420B2ACED009427FC /* editBoardList@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "editBoardList@3x.png"; sourceTree = ""; }; + B1BFC4B520B2ACEE009427FC /* editBoardList@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "editBoardList@2x.png"; sourceTree = ""; }; + B1BFC4C020B2B24E009427FC /* task_activity_icon_add_milestone@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "task_activity_icon_add_milestone@2x.png"; sourceTree = ""; }; + B1BFC4C120B2B24E009427FC /* task_activity_icon_add_milestone@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "task_activity_icon_add_milestone@3x.png"; sourceTree = ""; }; + B1BFC4C220B2B24F009427FC /* task_activity_icon_remove_milestone@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "task_activity_icon_remove_milestone@3x.png"; sourceTree = ""; }; + B1BFC4C320B2B250009427FC /* task_activity_icon_remove_milestone@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "task_activity_icon_remove_milestone@2x.png"; sourceTree = ""; }; + B1C60C7820BFA2150073D3CA /* NProjectFileListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NProjectFileListView.h; sourceTree = ""; }; + B1C60C7920BFA2150073D3CA /* NProjectFileListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NProjectFileListView.m; sourceTree = ""; }; + B1C60C7C20BFCDBD0073D3CA /* EditMemberTypeProjectListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditMemberTypeProjectListViewController.h; sourceTree = ""; }; + B1C60C7D20BFCDBD0073D3CA /* EditMemberTypeProjectListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EditMemberTypeProjectListViewController.m; sourceTree = ""; }; + B1C60C8020BFCEFD0073D3CA /* NFileListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NFileListViewController.m; sourceTree = ""; }; + B1C60C8120BFCEFD0073D3CA /* NFileListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NFileListViewController.h; sourceTree = ""; }; + B1C60C8B20BFF7940073D3CA /* ProjectTypeExplanationViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ProjectTypeExplanationViewController.xib; sourceTree = ""; }; + B1C60C8C20BFF7950073D3CA /* ProjectTypeExplanationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectTypeExplanationViewController.h; sourceTree = ""; }; + B1C60C8D20BFF7950073D3CA /* ProjectTypeExplanationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectTypeExplanationViewController.m; sourceTree = ""; }; + B1C60C9220C004C70073D3CA /* TeamPurchaseBillingCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamPurchaseBillingCell.h; sourceTree = ""; }; + B1C60C9320C004C70073D3CA /* TeamPurchaseTopCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamPurchaseTopCell.m; sourceTree = ""; }; + B1C60C9420C004C70073D3CA /* TeamPurchaseBillingCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamPurchaseBillingCell.m; sourceTree = ""; }; + B1C60C9520C004C80073D3CA /* TeamPurchaseOrderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamPurchaseOrderCell.h; sourceTree = ""; }; + B1C60C9620C004C80073D3CA /* TeamPurchaseOrderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamPurchaseOrderCell.m; sourceTree = ""; }; + B1C60C9720C004C80073D3CA /* TeamPurchaseTopCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamPurchaseTopCell.h; sourceTree = ""; }; + B1C60C9E20C0DDF30073D3CA /* TeamSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamSettingViewController.h; sourceTree = ""; }; + B1C60C9F20C0DDF40073D3CA /* TeamPurchaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamPurchaseViewController.h; sourceTree = ""; }; + B1C60CA020C0DDF40073D3CA /* TeamSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamSettingViewController.m; sourceTree = ""; }; + B1C60CA120C0DDF40073D3CA /* TeamPurchaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamPurchaseViewController.m; sourceTree = ""; }; + B1C60CA220C0DDF50073D3CA /* TeamSupportViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamSupportViewController.h; sourceTree = ""; }; + B1C60CA320C0DDF50073D3CA /* TeamSupportViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamSupportViewController.m; sourceTree = ""; }; + B1C60CAA20C0FC750073D3CA /* Launch Screen_E.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "Launch Screen_E.xib"; sourceTree = ""; }; B1C871121EADAEE1003DACF0 /* loading_monkey@2x.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = "loading_monkey@2x.gif"; sourceTree = ""; }; B1C871141EADF0B1003DACF0 /* messageAT@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "messageAT@3x.png"; sourceTree = ""; }; B1C871151EADF0B1003DACF0 /* messageComment@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "messageComment@3x.png"; sourceTree = ""; }; @@ -3630,6 +5406,27 @@ B1C871BD1EB33B37003DACF0 /* task_icon_arrow@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "task_icon_arrow@3x.png"; sourceTree = ""; }; B1CB8DD02047F1D000872197 /* button_tip_notice@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_tip_notice@2x.png"; sourceTree = ""; }; B1CB8DD12047F1D100872197 /* button_tip_notice@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_tip_notice@3x.png"; sourceTree = ""; }; + B1D5F20220BC06CB00983FB6 /* Coding_Enterprise_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Coding_Enterprise_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + B1D5F20620BCF5F800983FB6 /* Coding_Enterprise_iOS-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Coding_Enterprise_iOS-Info.plist"; sourceTree = ""; }; + B1D5F20B20BCF72300983FB6 /* Coding_Enterprise_iOS-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Coding_Enterprise_iOS-Prefix.pch"; sourceTree = ""; }; + B1D5F20C20BD3BF300983FB6 /* UINavigationController+FullscreenPopGesture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UINavigationController+FullscreenPopGesture.h"; sourceTree = ""; }; + B1D5F20D20BD3BF300983FB6 /* UINavigationController+FullscreenPopGesture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UINavigationController+FullscreenPopGesture.m"; sourceTree = ""; }; + B1D5F21020BD485A00983FB6 /* TeamPurchaseOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamPurchaseOrder.h; sourceTree = ""; }; + B1D5F21120BD485A00983FB6 /* TeamPurchaseBillingDetail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamPurchaseBillingDetail.h; sourceTree = ""; }; + B1D5F21220BD485B00983FB6 /* TeamPurchaseOrder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamPurchaseOrder.m; sourceTree = ""; }; + B1D5F21320BD485B00983FB6 /* TeamPurchaseBilling.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamPurchaseBilling.m; sourceTree = ""; }; + B1D5F21420BD485C00983FB6 /* TeamPurchaseBilling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamPurchaseBilling.h; sourceTree = ""; }; + B1D5F21520BD485C00983FB6 /* TeamPurchaseBillingDetail.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamPurchaseBillingDetail.m; sourceTree = ""; }; + B1D5F21C20BD50D000983FB6 /* ProjectRole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectRole.h; sourceTree = ""; }; + B1D5F21D20BD50D000983FB6 /* ProjectRole.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectRole.m; sourceTree = ""; }; + B1D5F22020BEA37500983FB6 /* MeRootCompanyCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MeRootCompanyCell.h; sourceTree = ""; }; + B1D5F22120BEA37500983FB6 /* MeRootCompanyCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MeRootCompanyCell.m; sourceTree = ""; }; + B1D5F23020BEADD100983FB6 /* TeamSupportCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamSupportCell.m; sourceTree = ""; }; + B1D5F23120BEADD200983FB6 /* TeamSupportCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamSupportCell.h; sourceTree = ""; }; + B1DFD09D20C67D3D00F75F2F /* btn_followed_yes@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_followed_yes@3x.png"; sourceTree = ""; }; + B1DFD09E20C67D3E00F75F2F /* btn_followed_not@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_followed_not@3x.png"; sourceTree = ""; }; + B1DFD09F20C67D3E00F75F2F /* btn_followed_both@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_followed_both@3x.png"; sourceTree = ""; }; + B1DFD0A020C67D3E00F75F2F /* btn_privateMsg_friend@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_privateMsg_friend@3x.png"; sourceTree = ""; }; B93D90491ACBA3110057A6EE /* ProjectDeleteAlertControllerVisualStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectDeleteAlertControllerVisualStyle.h; sourceTree = ""; }; B93D904A1ACBA3110057A6EE /* ProjectDeleteAlertControllerVisualStyle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectDeleteAlertControllerVisualStyle.m; sourceTree = ""; }; B94C1B671AC945D30000C271 /* NewProjectViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewProjectViewController.h; sourceTree = ""; }; @@ -3642,6 +5439,7 @@ B9A00D811ACA3A17008BA008 /* ProjectSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectSettingViewController.m; sourceTree = ""; }; B9A00D831ACA3A55008BA008 /* ProjectAdvancedSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectAdvancedSettingViewController.h; sourceTree = ""; }; B9A00D841ACA3A55008BA008 /* ProjectAdvancedSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProjectAdvancedSettingViewController.m; sourceTree = ""; }; + BA1AE837BA26B375F43A9343 /* Pods-Coding_iOS-CodingEnterprise_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Coding_iOS-CodingEnterprise_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Coding_iOS-CodingEnterprise_iOS/Pods-Coding_iOS-CodingEnterprise_iOS.release.xcconfig"; sourceTree = ""; }; D000E0481BFC45CF00A33C2B /* CategorySearchBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CategorySearchBar.h; sourceTree = ""; }; D000E0491BFC45CF00A33C2B /* CategorySearchBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CategorySearchBar.m; sourceTree = ""; }; D02BE0AD1C0434DB008374C0 /* PRMRSearchCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PRMRSearchCell.h; sourceTree = ""; }; @@ -3773,6 +5571,40 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B1D5EE5A20BC06CB00983FB6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B1D5EE5B20BC06CB00983FB6 /* CoreMotion.framework in Frameworks */, + B1D5EE5C20BC06CB00983FB6 /* libresolv.9.tbd in Frameworks */, + B1D5EE5D20BC06CB00983FB6 /* AVFoundation.framework in Frameworks */, + B1D5EE5E20BC06CB00983FB6 /* MapKit.framework in Frameworks */, + B1D5EE5F20BC06CB00983FB6 /* CoreLocation.framework in Frameworks */, + B1D5EE6020BC06CB00983FB6 /* libsqlite3.0.dylib in Frameworks */, + B1D5EE6120BC06CB00983FB6 /* Security.framework in Frameworks */, + B1D5EE6220BC06CB00983FB6 /* CoreTelephony.framework in Frameworks */, + B1D5EE6320BC06CB00983FB6 /* SystemConfiguration.framework in Frameworks */, + B1D5EE6420BC06CB00983FB6 /* AlipaySDK.framework in Frameworks */, + B1D5EE6520BC06CB00983FB6 /* CFNetwork.framework in Frameworks */, + B1D5EE6620BC06CB00983FB6 /* QuickLook.framework in Frameworks */, + B1D5EE6720BC06CB00983FB6 /* libz.dylib in Frameworks */, + B1D5EE6820BC06CB00983FB6 /* libicucore.dylib in Frameworks */, + B1D5EE6920BC06CB00983FB6 /* libXG-SDK.a in Frameworks */, + B1D5EE6A20BC06CB00983FB6 /* libopencore-amrnb.a in Frameworks */, + B1D5EE6B20BC06CB00983FB6 /* AssetsLibrary.framework in Frameworks */, + B1D5EE6C20BC06CB00983FB6 /* libxml2.2.dylib in Frameworks */, + B1D5EE6D20BC06CB00983FB6 /* CoreText.framework in Frameworks */, + B1D5EE6E20BC06CB00983FB6 /* CoreGraphics.framework in Frameworks */, + B1D5EE6F20BC06CB00983FB6 /* libopencore-amrwb.a in Frameworks */, + B1D5EE7020BC06CB00983FB6 /* CoreData.framework in Frameworks */, + B1D5EE7120BC06CB00983FB6 /* UIKit.framework in Frameworks */, + B1D5EE7220BC06CB00983FB6 /* Foundation.framework in Frameworks */, + B1D5EE7320BC06CB00983FB6 /* WebP.framework in Frameworks */, + B1D5EE7420BC06CB00983FB6 /* libPods-Coding_iOS.a in Frameworks */, + 74BCC5B7B071C6418DBC18C7 /* libPods-Coding_iOS-Coding_Enterprise_iOS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -3895,22 +5727,6 @@ path = EAIntroView; sourceTree = ""; }; - 4E0022A11B7362EF005308DE /* intro_pages */ = { - isa = PBXGroup; - children = ( - 4E095A111D9534CB00E63D9E /* intro_page_selected@2x.png */, - 4E095A121D9534CB00E63D9E /* intro_page_selected@3x.png */, - 4E095A131D9534CB00E63D9E /* intro_page_unselected@2x.png */, - 4E095A141D9534CB00E63D9E /* intro_page_unselected@3x.png */, - 4E0022A21B7362EF005308DE /* intro_page0_ip4@2x.png */, - 4E0022A31B7362EF005308DE /* intro_page0_ip5@2x.png */, - 4E0022A41B7362EF005308DE /* intro_page0_ip6+@3x.png */, - 4E0022A51B7362EF005308DE /* intro_page0_ip6@2x.png */, - B1AB5CA42029849A0075A669 /* intro_page0_ipX@3x.png */, - ); - path = intro_pages; - sourceTree = ""; - }; 4E095A5D1B6909F9008DC439 /* AutoSlideScrollView */ = { isa = PBXGroup; children = ( @@ -4321,6 +6137,10 @@ 4E6383F31B33C18700D98648 /* task_activity_icon */ = { isa = PBXGroup; children = ( + B1BFC4C020B2B24E009427FC /* task_activity_icon_add_milestone@2x.png */, + B1BFC4C120B2B24E009427FC /* task_activity_icon_add_milestone@3x.png */, + B1BFC4C320B2B250009427FC /* task_activity_icon_remove_milestone@2x.png */, + B1BFC4C220B2B24F009427FC /* task_activity_icon_remove_milestone@3x.png */, B1C871931EB2D9E6003DACF0 /* task_activity_icon_add_watcher@3x.png */, B1C871941EB2D9E6003DACF0 /* task_activity_icon_commit_refer@3x.png */, B1C871951EB2D9E6003DACF0 /* task_activity_icon_create@3x.png */, @@ -5037,10 +6857,6 @@ 4ECE8AD41A3943E80021E29C /* UIView+Common.m */, 4ECE8AD51A3943E80021E29C /* UIViewController+Swizzle.h */, 4ECE8AD61A3943E80021E29C /* UIViewController+Swizzle.m */, - 4EBDA87A1A6640340035ED96 /* UIActionSheet+Common.h */, - 4EBDA87B1A6640340035ED96 /* UIActionSheet+Common.m */, - 4E19E7051BCE03CD00C66DC6 /* UIActionSheet+Front.h */, - 4E19E7061BCE03CD00C66DC6 /* UIActionSheet+Front.m */, 4EB0C1FE1A807ED00042FC4F /* NSURL+Common.h */, 4EB0C1FF1A807ED00042FC4F /* NSURL+Common.m */, 4EE5481C1AE7B7CA00A92306 /* UISearchBar+Common.h */, @@ -5057,10 +6873,14 @@ D09AA5BF1BFDEDD1008CA9EB /* NSString+Attribute.m */, 4E2527181C327FAE0032A7F4 /* UIViewController+BackButtonHandler.h */, 4E2527191C327FAE0032A7F4 /* UIViewController+BackButtonHandler.m */, + B1D5F20C20BD3BF300983FB6 /* UINavigationController+FullscreenPopGesture.h */, + B1D5F20D20BD3BF300983FB6 /* UINavigationController+FullscreenPopGesture.m */, B12B64801FFC73A900ACFDCC /* PHAsset+Common.h */, B12B64811FFC73A900ACFDCC /* PHAsset+Common.m */, B1890C4C2019B29800F52ABA /* UINavigationBar+Common.h */, B1890C4B2019B29800F52ABA /* UINavigationBar+Common.m */, + B186AEAE20F462F600A6AF35 /* UIAlertController+Common.h */, + B186AEAF20F462F600A6AF35 /* UIAlertController+Common.m */, ); path = OC_Category; sourceTree = ""; @@ -5146,8 +6966,8 @@ 4EE1A21C1B5D02CA004284F1 /* ProjectActivityListView.m */, 4EE1A21D1B5D02CA004284F1 /* ProjectCodeListView.h */, 4EE1A21E1B5D02CA004284F1 /* ProjectCodeListView.m */, - 4EE1A21F1B5D02CA004284F1 /* ProjectFolderListView.h */, - 4EE1A2201B5D02CA004284F1 /* ProjectFolderListView.m */, + B1C60C7820BFA2150073D3CA /* NProjectFileListView.h */, + B1C60C7920BFA2150073D3CA /* NProjectFileListView.m */, 4EE1A2211B5D02CA004284F1 /* ProjectListView.h */, 4EE1A2221B5D02CA004284F1 /* ProjectListView.m */, 4EE1A2231B5D02CA004284F1 /* ProjectTaskListView.h */, @@ -5175,43 +6995,6 @@ path = TableListView; sourceTree = ""; }; - 4EF17E761B3BF320003CDD2D /* introduction */ = { - isa = PBXGroup; - children = ( - 4EF17EAD1B3C3112003CDD2D /* intro_dot_selected@2x.png */, - 4EF17EAE1B3C3112003CDD2D /* intro_dot_selected@3x.png */, - 4EF17EAF1B3C3112003CDD2D /* intro_dot_unselected@2x.png */, - 4EF17EB01B3C3112003CDD2D /* intro_dot_unselected@3x.png */, - 4EF17EB11B3C3112003CDD2D /* intro_icon_0@2x.png */, - 4EF17EB21B3C3112003CDD2D /* intro_icon_0@3x.png */, - 4EF17EB31B3C3112003CDD2D /* intro_icon_1@2x.png */, - 4EF17EB41B3C3112003CDD2D /* intro_icon_1@3x.png */, - 4EF17EB51B3C3112003CDD2D /* intro_icon_2@2x.png */, - 4EF17EB61B3C3112003CDD2D /* intro_icon_2@3x.png */, - 4EF17EB71B3C3112003CDD2D /* intro_icon_3@2x.png */, - 4EF17EB81B3C3112003CDD2D /* intro_icon_3@3x.png */, - 4EF17EB91B3C3112003CDD2D /* intro_icon_4@2x.png */, - 4EF17EBA1B3C3112003CDD2D /* intro_icon_4@3x.png */, - 4EF17EBB1B3C3112003CDD2D /* intro_icon_5@2x.png */, - 4EF17EBC1B3C3112003CDD2D /* intro_icon_5@3x.png */, - 4EF17ECA1B3C3112003CDD2D /* intro_icon_6@2x.png */, - 4EF17EBD1B3C3112003CDD2D /* intro_icon_6@3x.png */, - 4EF17EBE1B3C3112003CDD2D /* intro_tip_0@2x.png */, - 4EF17EBF1B3C3112003CDD2D /* intro_tip_0@3x.png */, - 4EF17EC01B3C3112003CDD2D /* intro_tip_1@2x.png */, - 4EF17EC11B3C3112003CDD2D /* intro_tip_1@3x.png */, - 4EF17EC21B3C3112003CDD2D /* intro_tip_2@2x.png */, - 4EF17EC31B3C3112003CDD2D /* intro_tip_2@3x.png */, - 4EF17EC41B3C3112003CDD2D /* intro_tip_3@2x.png */, - 4EF17EC51B3C3112003CDD2D /* intro_tip_3@3x.png */, - 4EF17EC61B3C3112003CDD2D /* intro_tip_4@2x.png */, - 4EF17EC71B3C3112003CDD2D /* intro_tip_4@3x.png */, - 4EF17EC81B3C3112003CDD2D /* intro_tip_5@2x.png */, - 4EF17EC91B3C3112003CDD2D /* intro_tip_5@3x.png */, - ); - path = introduction; - sourceTree = ""; - }; 7E8E59781B6F91C40083CA02 /* bubble */ = { isa = PBXGroup; children = ( @@ -5366,6 +7149,7 @@ isa = PBXGroup; children = ( 8E477010198770E700997D05 /* Coding_iOS.app */, + B1D5F20220BC06CB00983FB6 /* Coding_Enterprise_iOS.app */, ); name = Products; sourceTree = ""; @@ -5398,6 +7182,7 @@ 8E477019198770E700997D05 /* CoreData.framework */, 8E477031198770E700997D05 /* XCTest.framework */, 645969FE6A8616A74543C249 /* libPods-Coding_iOS.a */, + 627CA7E44F0D5A025A49E2F0 /* libPods-Coding_iOS-Coding_Enterprise_iOS.a */, ); name = Frameworks; sourceTree = ""; @@ -5462,13 +7247,19 @@ 8E8F7B2119EF6306006BA8BD /* cell_right_plain_btn_image */ = { isa = PBXGroup; children = ( + B1DFD09F20C67D3E00F75F2F /* btn_followed_both@3x.png */, + B1DFD09E20C67D3E00F75F2F /* btn_followed_not@3x.png */, + B1DFD09D20C67D3D00F75F2F /* btn_followed_yes@3x.png */, + B1DFD0A020C67D3E00F75F2F /* btn_privateMsg_friend@3x.png */, + B16E6CBB20C13F5E0076026D /* btn_privateMsg_stranger@3x.png */, + B16E6CB820C13F5E0076026D /* btn_project_add@3x.png */, + B16E6CB920C13F5E0076026D /* btn_project_added@3x.png */, + B16E6CBA20C13F5E0076026D /* btn_project_quit@3x.png */, 8E8F7B2219EF6306006BA8BD /* btn_followed_both@2x.png */, 8E8F7B2319EF6306006BA8BD /* btn_followed_not@2x.png */, 8E8F7B2419EF6306006BA8BD /* btn_followed_yes@2x.png */, - 8E8F7B2519EF6306006BA8BD /* btn_privateMsg_black@2x.png */, 8E8F7B2619EF6306006BA8BD /* btn_privateMsg_friend@2x.png */, 8E8F7B2719EF6306006BA8BD /* btn_privateMsg_stranger@2x.png */, - 8E8F7B2819EF6306006BA8BD /* btn_privateMsg_white@2x.png */, 8E8F7B2919EF6306006BA8BD /* btn_project_add@2x.png */, 8E8F7B2A19EF6306006BA8BD /* btn_project_added@2x.png */, 8E8F7B2B19EF6306006BA8BD /* btn_project_quit@2x.png */, @@ -5492,6 +7283,10 @@ 8E97CE4B1A0A3410006F9AD7 /* nav_button */ = { isa = PBXGroup; children = ( + B16E6CC620C144910076026D /* done_Nav@2x.png */, + B16E6CC720C144920076026D /* done_Nav@3x.png */, + B16E6CC820C144920076026D /* done_un_Nav@2x.png */, + B16E6CC920C144920076026D /* done_un_Nav@3x.png */, B1C8711C1EADF0FF003DACF0 /* addBtn_Artboard@2x.png */, B1C8711D1EADF0FF003DACF0 /* addBtn_Artboard@3x.png */, B1C8711E1EADF0FF003DACF0 /* back_green_Nav@2x.png */, @@ -5615,12 +7410,16 @@ isa = PBXGroup; children = ( 4EBED55A1D93C9F700E3684E /* Coding_iOS.entitlements */, + B16E6CA220C0FFFF0076026D /* Coding_Enterprise_iOS.entitlements */, 8EA6CFC619E240C40076D59C /* main.m */, - 8EA6CF1519E240C40076D59C /* AppDelegate.h */, 8EA6CF1619E240C40076D59C /* AppDelegate.m */, + 8EA6CF1519E240C40076D59C /* AppDelegate.h */, 4EFE8DB81B3A5727004B7559 /* Launch Screen.xib */, + B1C60CAA20C0FC750073D3CA /* Launch Screen_E.xib */, 8EA6CF1719E240C40076D59C /* Coding_iOS-Info.plist */, + B1D5F20620BCF5F800983FB6 /* Coding_Enterprise_iOS-Info.plist */, 4E8C51AE1AC0177600B4C51F /* Coding_iOS-Prefix.pch */, + B1D5F20B20BCF72300983FB6 /* Coding_Enterprise_iOS-Prefix.pch */, 8EA6CF1919E240C40076D59C /* Coding_iOS.xcdatamodeld */, 8EA6CFC519E240C40076D59C /* Images.xcassets */, 8EA6CF5B19E240C40076D59C /* InfoPlist.strings */, @@ -5629,6 +7428,7 @@ 8EA6CF1B19E240C40076D59C /* Controllers */, 8EA6CFFC19E240C40076D59C /* Util */, 8EA6CF5D19E240C40076D59C /* Images */, + B16E6D1D20C148E50076026D /* images_diff */, 8EA6CFFA19E240C40076D59C /* Resources */, 8EA6D03E19E240C40076D59C /* Vendor */, 4E8D5D3D1B451E9100B70936 /* Ease_2FA */, @@ -5705,8 +7505,6 @@ 8E59F10C1A02188D009A905F /* CodeViewController.m */, 4E2F6A551C437D1D00A25502 /* EditCodeViewController.h */, 4E2F6A561C437D1D00A25502 /* EditCodeViewController.m */, - 4EA6791E1A15AB9F001A0324 /* FileListViewController.h */, - 4EA6791F1A15AB9F001A0324 /* FileListViewController.m */, 4E15C7CE1A26D2F000FB8DAD /* FolderToMoveViewController.h */, 4E15C7CF1A26D2F000FB8DAD /* FolderToMoveViewController.m */, 4E35A99D1A3EC47E00CE35F1 /* FileViewController.h */, @@ -5814,6 +7612,19 @@ B16EEF12209080D7005ABFD5 /* TaskBoardsViewController.m */, B152ED66209420CD004A6E8A /* RATaskBoardListListViewController.h */, B152ED67209420CD004A6E8A /* RATaskBoardListListViewController.m */, + B1C60C7C20BFCDBD0073D3CA /* EditMemberTypeProjectListViewController.h */, + B1C60C7D20BFCDBD0073D3CA /* EditMemberTypeProjectListViewController.m */, + B1C60C8120BFCEFD0073D3CA /* NFileListViewController.h */, + B1C60C8020BFCEFD0073D3CA /* NFileListViewController.m */, + B1C60C8C20BFF7950073D3CA /* ProjectTypeExplanationViewController.h */, + B1C60C8D20BFF7950073D3CA /* ProjectTypeExplanationViewController.m */, + B1C60C8B20BFF7940073D3CA /* ProjectTypeExplanationViewController.xib */, + B1C60C9F20C0DDF40073D3CA /* TeamPurchaseViewController.h */, + B1C60CA120C0DDF40073D3CA /* TeamPurchaseViewController.m */, + B1C60C9E20C0DDF30073D3CA /* TeamSettingViewController.h */, + B1C60CA020C0DDF40073D3CA /* TeamSettingViewController.m */, + B1C60CA220C0DDF50073D3CA /* TeamSupportViewController.h */, + B1C60CA320C0DDF50073D3CA /* TeamSupportViewController.m */, ); path = Controllers; sourceTree = ""; @@ -5865,6 +7676,10 @@ 8EA6CF5D19E240C40076D59C /* Images */ = { isa = PBXGroup; children = ( + B16E6CFA20C147760076026D /* team_cell_edit */, + B16E6CF120C147760076026D /* team_info */, + B16E6CD220C145BE0076026D /* quick_menu_icon */, + B16E6CAA20C13BF40076026D /* btn_next */, B152ED86209453F2004A6E8A /* taskboard_page */, B17CC31620731FF10077C956 /* code_release_resource_icon */, B1AB5C8F202953E40075A669 /* terminal_icon */, @@ -5890,11 +7705,9 @@ 4E2BF3BD1B95B97A00A5A0A8 /* tweet_btn */, 4E93F2341B84356500017916 /* file_menu_icon */, 4EAE06BB1B7B51AF00179F4B /* file_activity_icon */, - 4E0022A11B7362EF005308DE /* intro_pages */, 4E095A751B6B1E40008DC439 /* deadline_calendar */, 4E095A6A1B69F920008DC439 /* banner */, 4E94C5021B4D334B00EB668A /* pop_icon */, - 4EF17E761B3BF320003CDD2D /* introduction */, 4EC461AE1B39360F00D08970 /* file_changeType */, 4E6383F31B33C18700D98648 /* task_activity_icon */, 4E6383C81B32665700D98648 /* nproject_item */, @@ -5967,8 +7780,8 @@ 4E1D991B1DCAE69600BAE585 /* icon_file_share_logo@3x.png */, 4E07D30B1A4A9F45009EDDF2 /* btn_file_cancel@2x.png */, 4E07D30C1A4A9F45009EDDF2 /* btn_file_reDo@2x.png */, - 4E07D3121A4D3CA6009EDDF2 /* icon_user_monkey@2x.png */, 4EFE8DAE1B3960E6004B7559 /* logo_coding_top@2x.png */, + B16E6C9F20C0FDB50076026D /* logo_coding_top@3x.png */, 4E76D4DD1A5A7B4A0094A35E /* text_clear_btn@2x.png */, 4E03AC991A5BDDF9002B000B /* STARTIMAGE.jpg */, 4E6B07151BA4045E007D6027 /* MIDAUTUMNIMAGE.jpg */, @@ -5993,8 +7806,6 @@ 4EE1A23B1B5F3834004284F1 /* project_tag_btn@2x.png */, 4EE1A23C1B5F3834004284F1 /* project_tag_icon@2x.png */, 8EA6CF7419E240C40076D59C /* logo_about@2x.png */, - 4E8F92DB1B67BE3C00033D8F /* icon_user_monkey_i6@2x.png */, - 4E8F92DC1B67BE3C00033D8F /* icon_user_monkey_i6p@3x.png */, 4E095A801B6B24DE008DC439 /* task_description_icon@2x.png */, 4E095A811B6B24DE008DC439 /* time_clock_icon@2x.png */, 4E095A821B6B24DE008DC439 /* topic_comment_icon@2x.png */, @@ -6045,6 +7856,14 @@ B1817EFE2069197C00E9BAD1 /* icon_release_tag@3x.png */, B17CC31320731E910077C956 /* icon_release_tag_blue@2x.png */, B17CC31220731E900077C956 /* icon_release_tag_blue@3x.png */, + B1BFC4B520B2ACEE009427FC /* editBoardList@2x.png */, + B1BFC4B420B2ACED009427FC /* editBoardList@3x.png */, + B16E6CA520C13BA10076026D /* btn_dismiss@2x.png */, + B16E6CA420C13BA10076026D /* btn_dismiss@3x.png */, + B16E6CEC20C147490076026D /* team_bg@2x.png */, + B16E6CEB20C147480076026D /* team_bg@3x.png */, + B15C98AE20D39CA100DDA425 /* project_icon_edit@2x.png */, + B15C98AF20D39CA200DDA425 /* project_icon_edit@3x.png */, ); path = Images; sourceTree = ""; @@ -6314,12 +8133,22 @@ 4E6CBE5B1D8FC7A500644086 /* ProjectServiceInfo.m */, 4ED4B4951D82939700EED8C6 /* Team.h */, 4ED4B4961D82939700EED8C6 /* Team.m */, + B1D5F21420BD485C00983FB6 /* TeamPurchaseBilling.h */, + B1D5F21320BD485B00983FB6 /* TeamPurchaseBilling.m */, + B1D5F21120BD485A00983FB6 /* TeamPurchaseBillingDetail.h */, + B1D5F21520BD485C00983FB6 /* TeamPurchaseBillingDetail.m */, + B1D5F21020BD485A00983FB6 /* TeamPurchaseOrder.h */, + B1D5F21220BD485B00983FB6 /* TeamPurchaseOrder.m */, B19D4EEC1F6FCEAC00C598F3 /* CodingSkill.h */, B19D4EED1F6FCEAC00C598F3 /* CodingSkill.m */, B1890C332015D87800F52ABA /* EAWiki.h */, B1890C342015D87800F52ABA /* EAWiki.m */, B152ED582092BF46004A6E8A /* EABoardTaskList.h */, B152ED592092BF46004A6E8A /* EABoardTaskList.m */, + B1ACFE0B20A975E2000BC41E /* EAMilestone.h */, + B1ACFE0C20A975E2000BC41E /* EAMilestone.m */, + B1D5F21C20BD50D000983FB6 /* ProjectRole.h */, + B1D5F21D20BD50D000983FB6 /* ProjectRole.m */, ); path = Models; sourceTree = ""; @@ -6397,6 +8226,7 @@ 8EA6D03E19E240C40076D59C /* Vendor */ = { isa = PBXGroup; children = ( + B14DE6DB20C914E60072ECEA /* AnimatedGIFImageSerialization */, B12B64561FFB61AD00ACFDCC /* QBImagePickerController */, B12B63FA1FE900D400ACFDCC /* AMPopTip */, B12B63F41FE8A77200ACFDCC /* SinaSDK */, @@ -6847,6 +8677,16 @@ B1944149206BB8BB00147158 /* EALocalCodeListCell.m */, B152ED5B2092D51E004A6E8A /* EATaskBoardListTaskCell.h */, B152ED5C2092D51E004A6E8A /* EATaskBoardListTaskCell.m */, + B1D5F22020BEA37500983FB6 /* MeRootCompanyCell.h */, + B1D5F22120BEA37500983FB6 /* MeRootCompanyCell.m */, + B1C60C9220C004C70073D3CA /* TeamPurchaseBillingCell.h */, + B1C60C9420C004C70073D3CA /* TeamPurchaseBillingCell.m */, + B1C60C9520C004C80073D3CA /* TeamPurchaseOrderCell.h */, + B1C60C9620C004C80073D3CA /* TeamPurchaseOrderCell.m */, + B1C60C9720C004C80073D3CA /* TeamPurchaseTopCell.h */, + B1C60C9320C004C70073D3CA /* TeamPurchaseTopCell.m */, + B1D5F23120BEADD200983FB6 /* TeamSupportCell.h */, + B1D5F23020BEADD100983FB6 /* TeamSupportCell.m */, ); path = Cell; sourceTree = ""; @@ -6993,6 +8833,15 @@ path = vip; sourceTree = ""; }; + B14DE6DB20C914E60072ECEA /* AnimatedGIFImageSerialization */ = { + isa = PBXGroup; + children = ( + B14DE6DC20C914E60072ECEA /* AnimatedGIFImageSerialization.h */, + B14DE6DD20C914E60072ECEA /* AnimatedGIFImageSerialization.m */, + ); + path = AnimatedGIFImageSerialization; + sourceTree = ""; + }; B152ED86209453F2004A6E8A /* taskboard_page */ = { isa = PBXGroup; children = ( @@ -7008,6 +8857,223 @@ path = taskboard_page; sourceTree = ""; }; + B16E6CAA20C13BF40076026D /* btn_next */ = { + isa = PBXGroup; + children = ( + B16E6CAB20C13BF40076026D /* btn_next_unable@2x.png */, + B16E6CAC20C13BF40076026D /* btn_next_unable@3x.png */, + B16E6CAD20C13BF40076026D /* btn_next_enable@2x.png */, + B16E6CAE20C13BF40076026D /* btn_next_enable@3x.png */, + ); + path = btn_next; + sourceTree = ""; + }; + B16E6CD220C145BE0076026D /* quick_menu_icon */ = { + isa = PBXGroup; + children = ( + B16E6CD320C145BE0076026D /* quick_menu_icon_message@2x.png */, + B16E6CD420C145BE0076026D /* quick_menu_icon_message@3x.png */, + B16E6CD520C145BE0076026D /* quick_menu_icon_task@3x.png */, + B16E6CD620C145BE0076026D /* quick_menu_icon_task@2x.png */, + B16E6CD720C145BE0076026D /* quick_menu_icon_project@3x.png */, + B16E6CD820C145BE0076026D /* quick_menu_icon_2fa@3x.png */, + B16E6CD920C145BE0076026D /* quick_menu_icon_2fa@2x.png */, + B16E6CDA20C145BE0076026D /* quick_menu_icon_project@2x.png */, + ); + path = quick_menu_icon; + sourceTree = ""; + }; + B16E6CF120C147760076026D /* team_info */ = { + isa = PBXGroup; + children = ( + B16E6CF220C147760076026D /* team_info_pro@3x.png */, + B16E6CF320C147760076026D /* team_info_pro@2x.png */, + B16E6CF420C147760076026D /* team_info_order@2x.png */, + B16E6CF520C147760076026D /* team_info_order@3x.png */, + B16E6CF620C147760076026D /* team_info_sup@2x.png */, + B16E6CF720C147760076026D /* team_info_mem@3x.png */, + B16E6CF820C147760076026D /* team_info_mem@2x.png */, + B16E6CF920C147760076026D /* team_info_sup@3x.png */, + ); + path = team_info; + sourceTree = ""; + }; + B16E6CFA20C147760076026D /* team_cell_edit */ = { + isa = PBXGroup; + children = ( + B16E6CFB20C147760076026D /* team_cell_edit_team@3x.png */, + B16E6CFC20C147760076026D /* team_cell_edit_team@2x.png */, + B16E6CFD20C147760076026D /* team_cell_edit_delete@3x.png */, + B16E6CFE20C147760076026D /* team_cell_edit_delete@2x.png */, + B16E6CFF20C147760076026D /* team_cell_edit_pro@3x.png */, + B16E6D0020C147760076026D /* team_cell_edit_pro@2x.png */, + ); + path = team_cell_edit; + sourceTree = ""; + }; + B16E6D1D20C148E50076026D /* images_diff */ = { + isa = PBXGroup; + children = ( + B16E6D1E20C148E50076026D /* personal */, + B16E6D4C20C148E50076026D /* enterprise */, + ); + path = images_diff; + sourceTree = ""; + }; + B16E6D1E20C148E50076026D /* personal */ = { + isa = PBXGroup; + children = ( + B16E6D1F20C148E50076026D /* introduction */, + B16E6D3E20C148E50076026D /* intro_pages */, + B16E6D4820C148E50076026D /* icon_user_monkey */, + ); + path = personal; + sourceTree = ""; + }; + B16E6D1F20C148E50076026D /* introduction */ = { + isa = PBXGroup; + children = ( + B16E6D2020C148E50076026D /* intro_icon_4@3x.png */, + B16E6D2120C148E50076026D /* intro_tip_2@3x.png */, + B16E6D2220C148E50076026D /* intro_icon_6@2x.png */, + B16E6D2320C148E50076026D /* intro_tip_0@2x.png */, + B16E6D2420C148E50076026D /* intro_tip_0@3x.png */, + B16E6D2520C148E50076026D /* intro_icon_6@3x.png */, + B16E6D2620C148E50076026D /* intro_tip_2@2x.png */, + B16E6D2720C148E50076026D /* intro_icon_4@2x.png */, + B16E6D2820C148E50076026D /* intro_icon_0@2x.png */, + B16E6D2920C148E50076026D /* intro_icon_2@3x.png */, + B16E6D2A20C148E50076026D /* intro_tip_4@3x.png */, + B16E6D2B20C148E50076026D /* intro_tip_4@2x.png */, + B16E6D2C20C148E50076026D /* intro_icon_2@2x.png */, + B16E6D2D20C148E50076026D /* intro_icon_0@3x.png */, + B16E6D2E20C148E50076026D /* intro_tip_1@2x.png */, + B16E6D2F20C148E50076026D /* intro_icon_5@3x.png */, + B16E6D3020C148E50076026D /* intro_dot_unselected@2x.png */, + B16E6D3120C148E50076026D /* intro_tip_3@3x.png */, + B16E6D3220C148E50076026D /* intro_tip_3@2x.png */, + B16E6D3320C148E50076026D /* intro_icon_5@2x.png */, + B16E6D3420C148E50076026D /* intro_dot_unselected@3x.png */, + B16E6D3520C148E50076026D /* intro_tip_1@3x.png */, + B16E6D3620C148E50076026D /* intro_icon_3@3x.png */, + B16E6D3720C148E50076026D /* intro_tip_5@3x.png */, + B16E6D3820C148E50076026D /* intro_icon_1@2x.png */, + B16E6D3920C148E50076026D /* intro_dot_selected@2x.png */, + B16E6D3A20C148E50076026D /* intro_dot_selected@3x.png */, + B16E6D3B20C148E50076026D /* intro_icon_1@3x.png */, + B16E6D3C20C148E50076026D /* intro_tip_5@2x.png */, + B16E6D3D20C148E50076026D /* intro_icon_3@2x.png */, + ); + path = introduction; + sourceTree = ""; + }; + B16E6D3E20C148E50076026D /* intro_pages */ = { + isa = PBXGroup; + children = ( + B16E6D3F20C148E50076026D /* intro_page0_ip5@2x.png */, + B16E6D4020C148E50076026D /* intro_page_selected@2x.png */, + B16E6D4120C148E50076026D /* intro_page_unselected@2x.png */, + B16E6D4220C148E50076026D /* intro_page0_ip4@2x.png */, + B16E6D4320C148E50076026D /* intro_page_unselected@3x.png */, + B16E6D4420C148E50076026D /* intro_page_selected@3x.png */, + B16E6D4520C148E50076026D /* intro_page0_ip6@2x.png */, + B16E6D4620C148E50076026D /* intro_page0_ip6+@3x.png */, + B16E6D4720C148E50076026D /* intro_page0_ipX@3x.png */, + ); + path = intro_pages; + sourceTree = ""; + }; + B16E6D4820C148E50076026D /* icon_user_monkey */ = { + isa = PBXGroup; + children = ( + B16E6D4920C148E50076026D /* icon_user_monkey_i6p@3x.png */, + B16E6D4A20C148E50076026D /* icon_user_monkey_i6@2x.png */, + B16E6D4B20C148E50076026D /* icon_user_monkey@2x.png */, + ); + path = icon_user_monkey; + sourceTree = ""; + }; + B16E6D4C20C148E50076026D /* enterprise */ = { + isa = PBXGroup; + children = ( + B16E6D4D20C148E50076026D /* introduction */, + B16E6D6020C148E50076026D /* intro_pages */, + B16E6D7120C148E50076026D /* icon_user_monkey */, + ); + path = enterprise; + sourceTree = ""; + }; + B16E6D4D20C148E50076026D /* introduction */ = { + isa = PBXGroup; + children = ( + B16E6D5420C148E50076026D /* dot_dark */, + B16E6D4E20C148E50076026D /* dot_light */, + B16E6D5320C148E50076026D /* intro_icon_wiki_down.gif */, + B16E6D5920C148E50076026D /* intro_icon_wiki_up.gif */, + B16E6D5A20C148E50076026D /* intro_icon_file_up.gif */, + B16E6D5B20C148E50076026D /* intro_icon_code_up.gif */, + B16E6D5C20C148E50076026D /* intro_icon_task_up.gif */, + B16E6D5D20C148E50076026D /* intro_icon_file_down.gif */, + B16E6D5E20C148E50076026D /* intro_icon_task_down.gif */, + B16E6D5F20C148E50076026D /* intro_icon_code_down.gif */, + ); + path = introduction; + sourceTree = ""; + }; + B16E6D4E20C148E50076026D /* dot_light */ = { + isa = PBXGroup; + children = ( + B16E6D4F20C148E50076026D /* intro_dot_light_unselected@2x.png */, + B16E6D5020C148E50076026D /* intro_dot_light_unselected@3x.png */, + B16E6D5120C148E50076026D /* intro_dot_light_selected@3x.png */, + B16E6D5220C148E50076026D /* intro_dot_light_selected@2x.png */, + ); + path = dot_light; + sourceTree = ""; + }; + B16E6D5420C148E50076026D /* dot_dark */ = { + isa = PBXGroup; + children = ( + B16E6D5520C148E50076026D /* intro_dot_dark_unselected@3x.png */, + B16E6D5620C148E50076026D /* intro_dot_dark_selected@3x.png */, + B16E6D5720C148E50076026D /* intro_dot_dark_selected@2x.png */, + B16E6D5820C148E50076026D /* intro_dot_dark_unselected@2x.png */, + ); + path = dot_dark; + sourceTree = ""; + }; + B16E6D6020C148E50076026D /* intro_pages */ = { + isa = PBXGroup; + children = ( + B16E6D6120C148E50076026D /* intro_page0_ip5@2x.png */, + B16E6D6220C148E50076026D /* intro_page2_ip6+@3x.png */, + B16E6D6320C148E50076026D /* intro_page1_ip6@2x.png */, + B16E6D6420C148E50076026D /* intro_page1_ip4@2x.png */, + B16E6D6520C148E50076026D /* intro_page2_ip5@2x.png */, + B16E6D6620C148E50076026D /* intro_page1_ip6+@3x.png */, + B16E6D6720C148E50076026D /* intro_page_selected@2x.png */, + B16E6D6820C148E50076026D /* intro_page_unselected@2x.png */, + B16E6D6920C148E50076026D /* intro_page0_ip4@2x.png */, + B16E6D6A20C148E50076026D /* intro_page1_ip5@2x.png */, + B16E6D6B20C148E50076026D /* intro_page_unselected@3x.png */, + B16E6D6C20C148E50076026D /* intro_page_selected@3x.png */, + B16E6D6D20C148E50076026D /* intro_page0_ip6@2x.png */, + B16E6D6E20C148E50076026D /* intro_page2_ip4@2x.png */, + B16E6D6F20C148E50076026D /* intro_page0_ip6+@3x.png */, + B16E6D7020C148E50076026D /* intro_page2_ip6@2x.png */, + ); + path = intro_pages; + sourceTree = ""; + }; + B16E6D7120C148E50076026D /* icon_user_monkey */ = { + isa = PBXGroup; + children = ( + B16E6D7220C148E50076026D /* icon_user_monkey@2x.png */, + B16E6D7320C148E50076026D /* icon_user_monkey@3x.png */, + ); + path = icon_user_monkey; + sourceTree = ""; + }; B177F5BF2060E6B1006709C2 /* modules */ = { isa = PBXGroup; children = ( @@ -7137,6 +9203,10 @@ children = ( 34E37865A7DAAE68AEF68258 /* Pods-Coding_iOS.debug.xcconfig */, 2FD5D8DD0689696D28A6D49E /* Pods-Coding_iOS.release.xcconfig */, + 344214A4A1281EB0C9B3DE71 /* Pods-Coding_iOS-CodingEnterprise_iOS.debug.xcconfig */, + BA1AE837BA26B375F43A9343 /* Pods-Coding_iOS-CodingEnterprise_iOS.release.xcconfig */, + 59EA81AF0F8C7610F675E1EB /* Pods-Coding_iOS-Coding_Enterprise_iOS.debug.xcconfig */, + 22A08D8B77355DB8A773B8E2 /* Pods-Coding_iOS-Coding_Enterprise_iOS.release.xcconfig */, ); name = Pods; sourceTree = ""; @@ -7174,13 +9244,34 @@ productReference = 8E477010198770E700997D05 /* Coding_iOS.app */; productType = "com.apple.product-type.application"; }; + B1D5EBF120BC06CB00983FB6 /* Coding_Enterprise_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = B1D5F1FF20BC06CB00983FB6 /* Build configuration list for PBXNativeTarget "Coding_Enterprise_iOS" */; + buildPhases = ( + B1D5EBF220BC06CB00983FB6 /* [CP] Check Pods Manifest.lock */, + B1D5EBF320BC06CB00983FB6 /* Sources */, + B1D5EE5A20BC06CB00983FB6 /* Frameworks */, + B1D5EE7520BC06CB00983FB6 /* Resources */, + B1D5F1FC20BC06CB00983FB6 /* [CP] Copy Pods Resources */, + B1D5F1FD20BC06CB00983FB6 /* Embed Frameworks */, + B1D5F1FE20BC06CB00983FB6 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Coding_Enterprise_iOS; + productName = CodiOS; + productReference = B1D5F20220BC06CB00983FB6 /* Coding_Enterprise_iOS.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 8E477008198770E700997D05 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0940; ORGANIZATIONNAME = Coding; TargetAttributes = { 8E47700F198770E700997D05 = { @@ -7198,6 +9289,14 @@ }; }; }; + B1D5EBF120BC06CB00983FB6 = { + DevelopmentTeam = QN5Z87S3LH; + SystemCapabilities = { + com.apple.SafariKeychain = { + enabled = 0; + }; + }; + }; }; }; buildConfigurationList = 8E47700B198770E700997D05 /* Build configuration list for PBXProject "Coding_iOS" */; @@ -7217,6 +9316,7 @@ projectRoot = ""; targets = ( 8E47700F198770E700997D05 /* Coding_iOS */, + B1D5EBF120BC06CB00983FB6 /* Coding_Enterprise_iOS */, ); }; /* End PBXProject section */ @@ -7240,6 +9340,7 @@ B1890C312015D82600F52ABA /* wiki_menu_icon_share@2x.png in Resources */, 8EA6D14A19E240C40076D59C /* InfoPlist.strings in Resources */, 4E6383C31B3265DC00D98648 /* mrpr_icon_accepted@2x.png in Resources */, + B1DFD0A720C67D3F00F75F2F /* btn_privateMsg_friend@3x.png in Resources */, 4EAAD0271E540551008AA957 /* mrpr_icon_status_refused@2x.png in Resources */, D0C447DE1C02DB8900DC1C4B /* privatemessage_normal@3x.png in Resources */, 8E8F7B3419EF6306006BA8BD /* btn_project_added@2x.png in Resources */, @@ -7249,9 +9350,10 @@ B1C871B61EB2D9F0003DACF0 /* file_activity_icon_upload_file@3x.png in Resources */, B12B64791FFB61AD00ACFDCC /* QBImagePicker.storyboard in Resources */, 4EED9DCD1B539366000E5827 /* taskProject@2x.png in Resources */, - 4EF17ED91B3C3112003CDD2D /* intro_icon_5@2x.png in Resources */, B1AB5CB4202D7D500075A669 /* button_file_upload_enable@3x.png in Resources */, 4EB52F221C76BA3B00B5EBEA /* tag_button_randomColor@3x.png in Resources */, + B16E6D7420C148E50076026D /* intro_icon_4@3x.png in Resources */, + B16E6D8A20C148E50076026D /* intro_icon_3@3x.png in Resources */, 4ED4B48A1D82646100EED8C6 /* user_info_help@3x.png in Resources */, 4E6383B81B32640900D98648 /* messageComment@2x.png in Resources */, B12B642A1FF33E0100ACFDCC /* upgrade_success@3x.png in Resources */, @@ -7263,11 +9365,12 @@ D0C447CC1C02DB6700DC1C4B /* pop_2FA@3x.png in Resources */, B17CC31D20731FF10077C956 /* code_release_resource_Zip@2x.png in Resources */, 4E59D3311D409C8C008C914B /* topic_add_watcher_btn@2x.png in Resources */, + B16E6D1120C147770076026D /* team_cell_edit_team@3x.png in Resources */, 7E8E59831B6F91C40083CA02 /* bubble_right_play_1@2x.png in Resources */, + B16E6D0520C147770076026D /* team_info_order@2x.png in Resources */, 8B3516511B6CE9460049BC45 /* search_tweet_colck@2x.png in Resources */, 8E97CE6A1A0A3424006F9AD7 /* keyboard_page_unselected@2x.png in Resources */, 4E9423E61E69401B0095F1CD /* blankpage_image_Project@2x.png in Resources */, - 4E095A161D9534CB00E63D9E /* intro_page_selected@3x.png in Resources */, 134116F01CB529E1005E6550 /* PR_more@2x.png in Resources */, 4E54C24C1D8FE19100A61023 /* user_info_edit@3x.png in Resources */, B1280CF1200EFDC600DEDF78 /* file_changeType_MODIFY@3x.png in Resources */, @@ -7276,19 +9379,26 @@ 4E6383BB1B32640900D98648 /* messageSystem@2x.png in Resources */, B1280D02200EFEA400DEDF78 /* PR_del_watcher@2x.png in Resources */, 4ED618251C3CB1AF0017946C /* taskWatchers@3x.png in Resources */, + B16E6D8220C148E50076026D /* intro_tip_1@2x.png in Resources */, 4EAAD0241E540551008AA957 /* mrpr_icon_status_canmerge@3x.png in Resources */, + B16E6CBE20C13F5F0076026D /* btn_project_add@3x.png in Resources */, 4E095A851B6B24DE008DC439 /* topic_comment_icon@2x.png in Resources */, B1C871351EADF155003DACF0 /* project_item_activity@3x.png in Resources */, 4E2F6A6F1C43CA4B00A25502 /* member_type_75@3x.png in Resources */, + B16E6D8E20C148E50076026D /* intro_dot_selected@3x.png in Resources */, 7E8E59841B6F91C40083CA02 /* bubble_right_play_2@2x.png in Resources */, 4E2BF3CF1B96CDF800A5A0A8 /* share_btn_coding@2x.png in Resources */, 8EA6D15019E240C40076D59C /* commentOrLikeBeginImg@2x.png in Resources */, + B16E6CED20C147490076026D /* team_bg@3x.png in Resources */, 4EB52F5F1C7C5C4F00B5EBEA /* task_resource_reference_ProjectFile@3x.png in Resources */, 13FB5D481CA17A6400EE127C /* PR_mergeChanges@3x.png in Resources */, B19D4EF61F7210C300C598F3 /* user_info_shop@2x.png in Resources */, + B16E6CA020C0FDB50076026D /* logo_coding_top@3x.png in Resources */, 134E1B9B1CA41217002A3E0D /* ReviewCell.xib in Resources */, 8EA6D15E19E240C40076D59C /* login_suffix@2x.png in Resources */, + B16E6D9A20C148E50076026D /* intro_page0_ipX@3x.png in Resources */, 4EB52F101C74691B00B5EBEA /* password_look@3x.png in Resources */, + B16E6CDB20C145BF0076026D /* quick_menu_icon_message@2x.png in Resources */, 8E97CE721A0B8C6C006F9AD7 /* emotion_list.plist in Resources */, B1890C302015D82600F52ABA /* wiki_menu_1@3x.png in Resources */, 4EC461B21B39360F00D08970 /* file_changeType_ADD@2x.png in Resources */, @@ -7301,6 +9411,7 @@ 8E97CE681A0A3424006F9AD7 /* keyboard_keyboard@2x.png in Resources */, B1817F012069197D00E9BAD1 /* icon_release_tag@2x.png in Resources */, 8EA6D17919E240C40076D59C /* placeholder_monkey_round_48@2x.png in Resources */, + B1C60C8620BFE8220073D3CA /* NewProject.storyboard in Resources */, 4EAAD0A51E5D8D90008AA957 /* PR_plus@2x.png in Resources */, 8EA6D1A819E240C40076D59C /* xtsegment_bordor_left@2x.png in Resources */, 4EB52F5C1C7C5C4F00B5EBEA /* task_resource_reference_MergeRequestBean@2x.png in Resources */, @@ -7319,6 +9430,7 @@ B1280D00200EFEA400DEDF78 /* PR_add_watcher@2x.png in Resources */, 4E93F23A1B84356500017916 /* file_menu_icon_delete@2x.png in Resources */, B12B64261FF33E0100ACFDCC /* button_red_close@3x.png in Resources */, + B16E6D8F20C148E50076026D /* intro_icon_1@3x.png in Resources */, 1319D10C1CA81FE100729F82 /* PR_merge@3x.png in Resources */, 8E97CEB01A0C7E26006F9AD7 /* coding_emoji_25@2x.png in Resources */, 7E335D9D1B6F5E94003D0F3D /* keyboard_arrow_down@2x.png in Resources */, @@ -7329,17 +9441,16 @@ B152ED90209453F3004A6E8A /* taskboard_normal_page_selected@2x.png in Resources */, 4ED4B4851D82646100EED8C6 /* user_info_about@2x.png in Resources */, B1817EFC206918D200E9BAD1 /* icon_branch_protected@3x.png in Resources */, - 4EF17ED71B3C3112003CDD2D /* intro_icon_4@2x.png in Resources */, 4E6384031B33C8E900D98648 /* task_activity_icon_create@2x.png in Resources */, 4EACB4401A2C448F0097ABB3 /* button_file_download_unable@2x.png in Resources */, D09E6AC01BF82DC6009D37F8 /* btn_setFrequent@2x.png in Resources */, B1C871A61EB2D9E6003DACF0 /* task_activity_icon_remove_watcher@3x.png in Resources */, + B16E6D9920C148E50076026D /* intro_page0_ip6+@3x.png in Resources */, B177F5C72060E6B1006709C2 /* markdown.html in Resources */, B17CC32C2073212E0077C956 /* code_release_resource_ProjectTopic@3x.png in Resources */, 4ECEF9F71D1BB7FB002A27D3 /* diff-ios.html in Resources */, 4EAC8B6A1BA01F190060B0FC /* little_phone_icon@2x.png in Resources */, 4E2BF3D41B96CDF800A5A0A8 /* share_btn_sina@2x.png in Resources */, - 8E8F7B2F19EF6306006BA8BD /* btn_privateMsg_black@2x.png in Resources */, 4E96E7E01A1B537E0037C098 /* icon_file_pdf@2x.png in Resources */, 4E4972DC1BB52A8300F3AC15 /* tipIcon_TweetComment@2x.png in Resources */, 4E9423E11E69401B0095F1CD /* blankpage_image_LoadFail@3x.png in Resources */, @@ -7347,8 +9458,10 @@ 13FB5D431CA17A6400EE127C /* PR_grant_undo@2x.png in Resources */, B1C871261EADF0FF003DACF0 /* back_green_Nav@2x.png in Resources */, 4EFE8DAC1B394A0D004B7559 /* file_changeType_COPY@2x.png in Resources */, + B16E6D7620C148E50076026D /* intro_icon_6@2x.png in Resources */, 927AFF501BFF6DAD00AAE593 /* shop_exchange_icon@2x.png in Resources */, D0C448101C02DCAC00DC1C4B /* timeBtn_Nav@3x.png in Resources */, + B16E6D7520C148E50076026D /* intro_tip_2@3x.png in Resources */, 13FB5D381CA17A6400EE127C /* close@2x.png in Resources */, 13FB5D3D1CA17A6400EE127C /* PR_update_content@3x.png in Resources */, 4E996C071ABBF56A00C704F1 /* user_info_detail@2x.png in Resources */, @@ -7373,15 +9486,17 @@ B1C871371EADF155003DACF0 /* project_item_file@3x.png in Resources */, 8E8F7B2E19EF6306006BA8BD /* btn_followed_yes@2x.png in Resources */, 8E8F7B3319EF6306006BA8BD /* btn_project_add@2x.png in Resources */, + B16E6D8920C148E50076026D /* intro_tip_1@3x.png in Resources */, 4E6383D11B32665700D98648 /* project_item_activity@2x.png in Resources */, 4E4972E91BB5446900F3AC15 /* tips_menu_icon_status@2x.png in Resources */, + B16E6D7B20C148E50076026D /* intro_icon_4@2x.png in Resources */, + B16E6D1920C147770076026D /* team_cell_edit_pro@3x.png in Resources */, D0C447AA1C02A3C700DC1C4B /* task_selected@2x.png in Resources */, B1C871361EADF155003DACF0 /* project_item_code@3x.png in Resources */, B1AB5C9A202953E50075A669 /* terminal_tail@2x.png in Resources */, B1280D04200EFEA400DEDF78 /* PR_add_reviewer@2x.png in Resources */, 13FB5D3B1CA17A6400EE127C /* PR_push@3x.png in Resources */, 927AFF4F1BFF6DAD00AAE593 /* shop_coding_coin_icon@3x.png in Resources */, - 4EF17EDA1B3C3112003CDD2D /* intro_icon_5@3x.png in Resources */, B1C871BC1EB338FD003DACF0 /* project_tag_icon@3x.png in Resources */, B1944154206CBE8C00147158 /* code_lang.plist in Resources */, B10341292024633900853447 /* logo_coding@2x.png in Resources */, @@ -7392,6 +9507,7 @@ 8E97CE671A0A3424006F9AD7 /* keyboard_emotion_monkey@2x.png in Resources */, B1BCB8891FCD006C0098B87B /* icon_file_ppt_big@2x.png in Resources */, B1C8717F1EB18599003DACF0 /* calendar_0xA1CF64@2x.png in Resources */, + B16E6D7820C148E50076026D /* intro_tip_0@3x.png in Resources */, 4E9423DF1E69401B0095F1CD /* blankpage_image_File@3x.png in Resources */, 4E217F0F1A70EDC700F6DF88 /* SVWebViewControllerActivityChrome-iPad.png in Resources */, B1C8712B1EADF0FF003DACF0 /* settingBtn_Nav@3x.png in Resources */, @@ -7403,12 +9519,14 @@ B152ED96209453F3004A6E8A /* taskboard_normal_page_unselected@2x.png in Resources */, B1C871131EADAEE1003DACF0 /* loading_monkey@2x.gif in Resources */, 4E80E9511E02911E00DE1BC6 /* search_icon_topic@3x.png in Resources */, + B16E6CB320C13BF50076026D /* btn_next_enable@2x.png in Resources */, D0C447D11C02DB6700DC1C4B /* pop_User@3x.png in Resources */, B1C871691EB182C7003DACF0 /* taskPriority2_small@3x.png in Resources */, B1C871BB1EB338FD003DACF0 /* project_tag_btn@3x.png in Resources */, 4EB52F621C7C5C4F00B5EBEA /* task_resource_reference_Task@2x.png in Resources */, 4E4972E81BB5446900F3AC15 /* tips_menu_icon_mkread@2x.png in Resources */, 8E97CEA61A0C7E26006F9AD7 /* coding_emoji_15@2x.png in Resources */, + B16E6D8420C148E50076026D /* intro_dot_unselected@2x.png in Resources */, 4E80E92F1DFFF06E00DE1BC6 /* shortcut_task@2x.png in Resources */, B1AB5CA2202953E50075A669 /* terminal_triangle@2x.png in Resources */, B1C871711EB1832B003DACF0 /* topic_comment_icon@3x.png in Resources */, @@ -7419,6 +9537,8 @@ 8EA6D15C19E240C40076D59C /* login_email@2x.png in Resources */, D0C448111C02DCAC00DC1C4B /* tweetBtn_Nav@3x.png in Resources */, 4EAAD0281E540551008AA957 /* mrpr_icon_status_refused@3x.png in Resources */, + B16E6D0D20C147770076026D /* team_info_mem@2x.png in Resources */, + B1DFD0A520C67D3F00F75F2F /* btn_followed_both@3x.png in Resources */, B12B640E1FECB59000ACFDCC /* login_wechat@3x.png in Resources */, 4EDD8F521A36F42300E9E232 /* ReleaseNotes.txt in Resources */, 13FB5D3C1CA17A6400EE127C /* PR_update_content@2x.png in Resources */, @@ -7442,6 +9562,8 @@ 4EC5AD931A258DF8006FA97C /* icon_file_cell_move@2x.png in Resources */, 4EAAD0261E540551008AA957 /* mrpr_icon_status_cannotmerge@3x.png in Resources */, 4EAECBC31C44CB860096CA74 /* member_cell_edit_alias@3x.png in Resources */, + B16E6D1720C147770076026D /* team_cell_edit_delete@2x.png in Resources */, + B16E6D1520C147770076026D /* team_cell_edit_delete@3x.png in Resources */, 4EC5AD941A258DF8006FA97C /* icon_file_cell_rename@2x.png in Resources */, 13FB5D561CA17A6400EE127C /* PR_grant@3x.png in Resources */, 8E97CE9A1A0C7E26006F9AD7 /* coding_emoji_03@2x.png in Resources */, @@ -7459,6 +9581,7 @@ 4E6B07161BA4045E007D6027 /* MIDAUTUMNIMAGE.jpg in Resources */, B1C871811EB18599003DACF0 /* calendar_0xA9B3BE@2x.png in Resources */, B1C871561EAE003A003DACF0 /* project_item_topic@3x.png in Resources */, + B16E6D0720C147770076026D /* team_info_order@3x.png in Resources */, 4EE083DC1ADB736800CA342E /* service_terms.html in Resources */, 4E6384011B33C18700D98648 /* task_activity_icon_update_priority@2x.png in Resources */, D0C448151C02F76600DC1C4B /* icon_search_searchbar@3x.png in Resources */, @@ -7466,7 +9589,6 @@ 4E80E95B1E02911E00DE1BC6 /* search_icon_project@3x.png in Resources */, 4E5D13191C0EF48200985AEB /* button_close@3x.png in Resources */, 8E8F7B2D19EF6306006BA8BD /* btn_followed_not@2x.png in Resources */, - 4EF17EE11B3C3112003CDD2D /* intro_tip_2@3x.png in Resources */, 4E6383DC1B3266C200D98648 /* mrpr_icon_fileChange@2x.png in Resources */, 4E6383FB1B33C18700D98648 /* task_activity_icon_finish@2x.png in Resources */, B14689BE1EE100B200B01371 /* vip_4_40@2x.png in Resources */, @@ -7487,26 +9609,27 @@ 4E5D130C1C0ECB3400985AEB /* tweet_btn_like@3x.png in Resources */, 4EE548281AE9166B00A92306 /* icon_project_cell_nopin@2x.png in Resources */, 4E0849811A918A7F00BD27F6 /* coding_emoji_39@2x.png in Resources */, - 4EF17EDD1B3C3112003CDD2D /* intro_tip_0@3x.png in Resources */, 8E97CE9F1A0C7E26006F9AD7 /* coding_emoji_08@2x.png in Resources */, 4E5D130D1C0ECB3400985AEB /* tweet_btn_liked@2x.png in Resources */, 4E93F2451B85C4C300017916 /* FileInfoViewController.xib in Resources */, 4EC480141C2A909D005F1772 /* register_step_un@3x.png in Resources */, 4E9423EB1E69401B0095F1CD /* blankpage_image_Task@3x.png in Resources */, 0A782FDE1AB5B78B00E96661 /* TweetSendCreateLocationCell.xib in Resources */, - 8E8F7B3219EF6306006BA8BD /* btn_privateMsg_white@2x.png in Resources */, + B16E6D8820C148E50076026D /* intro_dot_unselected@3x.png in Resources */, 8E97CEBB1A0C7E26006F9AD7 /* coding_emoji_36@2x.png in Resources */, 4E996C041ABBF56A00C704F1 /* n_btn_followed_yes@2x.png in Resources */, 4EAE06901B784E9200179F4B /* store_icon@2x.png in Resources */, B14689C31EE100B200B01371 /* vip_4_75@3x.png in Resources */, B1CB8DD22047F1D200872197 /* button_tip_notice@2x.png in Resources */, 4EF818161B049C89005F974B /* addPictureBgImage@2x.png in Resources */, + B16E6D0B20C147770076026D /* team_info_mem@3x.png in Resources */, 13FB5D501CA17A6400EE127C /* PRReviewer@3x.png in Resources */, B1CB8DD32047F1D200872197 /* button_tip_notice@3x.png in Resources */, 4EB52F0F1C74691B00B5EBEA /* password_look@2x.png in Resources */, 4ED673281A8E12F900DF2D1A /* SVWebViewControllerActivityReport-iPad@2x.png in Resources */, 13FB5D4B1CA17A6400EE127C /* PointLikeHead@3x.png in Resources */, 4E07D30E1A4A9F45009EDDF2 /* btn_file_reDo@2x.png in Resources */, + B1DFD0A320C67D3F00F75F2F /* btn_followed_not@3x.png in Resources */, B14689BC1EE100B200B01371 /* vip_4_30@2x.png in Resources */, B1C8714D1EADF3AC003DACF0 /* mrpr_icon_fileChange@3x.png in Resources */, B131E2112074D2EE00D84FAA /* project_item_reading@3x.png in Resources */, @@ -7517,20 +9640,22 @@ 4E6383A81B3262D300D98648 /* taskPriority1@2x.png in Resources */, 4E80E9581E02911E00DE1BC6 /* search_icon_pr@2x.png in Resources */, 8EA6D15F19E240C40076D59C /* logo_about@2x.png in Resources */, + B16E6CA620C13BA20076026D /* btn_dismiss@3x.png in Resources */, 4E66EE2A1A28226000DA1B3E /* button_file_upload_enable@2x.png in Resources */, + B16E6CE720C145BF0076026D /* quick_menu_icon_2fa@2x.png in Resources */, 4E2BF3D21B96CDF800A5A0A8 /* share_btn_qq@2x.png in Resources */, + B16E6D0120C147770076026D /* team_info_pro@3x.png in Resources */, 13FB5D4C1CA17A6400EE127C /* PR_review@2x.png in Resources */, D0C447C11C02DB5400DC1C4B /* pop_Message@2x.png in Resources */, B1AB5CA3202953E50075A669 /* terminal_box_selected@2x.png in Resources */, D09E6AC41BF84AE5009D37F8 /* git_icon_watch@2x.png in Resources */, B1BCB87F1FCD006C0098B87B /* icon_file_pdf_big@2x.png in Resources */, - 4E07D3151A4D3CA6009EDDF2 /* icon_user_monkey@2x.png in Resources */, 8EA6D17519E240C40076D59C /* placeholder_coding_square_80@2x.png in Resources */, 4EAAD0251E540551008AA957 /* mrpr_icon_status_cannotmerge@2x.png in Resources */, - B94C1B6B1AC945FB0000C271 /* NewProject.storyboard in Resources */, 8ED2AAFA19F60D5200607A1D /* loading_loop@2x.png in Resources */, B17CC32220731FF10077C956 /* code_release_resource_Task@3x.png in Resources */, 13FB5D411CA17A6400EE127C /* PR_refuse@2x.png in Resources */, + B16E6CCC20C144930076026D /* done_Nav@3x.png in Resources */, 8B3516501B6CE9460049BC45 /* icon_topic_hotTop@2x.png in Resources */, B1890C2D2015D82600F52ABA /* wiki_revert@3x.png in Resources */, 4E2BF3D31B96CDF800A5A0A8 /* share_btn_qzone@2x.png in Resources */, @@ -7544,9 +9669,9 @@ 4ED4B4881D82646100EED8C6 /* user_info_file@3x.png in Resources */, 927AFF4E1BFF6DAD00AAE593 /* shop_coding_coin_icon@2x.png in Resources */, 4E80E9301DFFF06E00DE1BC6 /* shortcut_task@3x.png in Resources */, - 4EF17ECD1B3C3112003CDD2D /* intro_dot_unselected@2x.png in Resources */, B1C871671EB182C7003DACF0 /* taskPriority1_small@3x.png in Resources */, B1C871921EB1E608003DACF0 /* tasks_all@3x.png in Resources */, + B16E6CA820C13BA20076026D /* btn_dismiss@2x.png in Resources */, 8E97CEA01A0C7E26006F9AD7 /* coding_emoji_09@2x.png in Resources */, 0A06C2531AB9E57900AB3B03 /* map_annotation@2x.png in Resources */, B17CC32D2073212E0077C956 /* code_release_resource_MergeRequestBean@2x.png in Resources */, @@ -7565,14 +9690,16 @@ 8E97CEA91A0C7E26006F9AD7 /* coding_emoji_18@2x.png in Resources */, 4ED4B4861D82646100EED8C6 /* user_info_about@3x.png in Resources */, B12B63F61FE8A77200ACFDCC /* WeiboSDK.bundle in Resources */, + B16E6D9B20C148E50076026D /* icon_user_monkey_i6p@3x.png in Resources */, B1BCB8901FCE61D60098B87B /* EAPayViewController.xib in Resources */, + B16E6D0F20C147770076026D /* team_info_sup@3x.png in Resources */, B1C871801EB18599003DACF0 /* calendar_0xA1CF64@3x.png in Resources */, 4ED4B4871D82646100EED8C6 /* user_info_file@2x.png in Resources */, B19D4EF31F710EF900C598F3 /* ShopSwitchCell.xib in Resources */, B1C871501EADF48B003DACF0 /* cell_arrow_left@2x.png in Resources */, B12B64731FFB61AD00ACFDCC /* LICENSE in Resources */, 4E2F6A711C43CA4B00A25502 /* member_type_90@3x.png in Resources */, - 4EF17ECB1B3C3112003CDD2D /* intro_dot_selected@2x.png in Resources */, + B16E6D8D20C148E50076026D /* intro_dot_selected@2x.png in Resources */, 0A6E6BBB1AB168B0004C0107 /* location_checkmark@2x.png in Resources */, 4EAAD0531E542B2D008AA957 /* icon_code_tree@2x.png in Resources */, 8EA6D16919E240C40076D59C /* nav_project_task@2x.png in Resources */, @@ -7582,7 +9709,6 @@ 13FB5D3A1CA17A6400EE127C /* PR_push@2x.png in Resources */, B14689C11EE100B200B01371 /* vip_4_45@3x.png in Resources */, 4E54C24E1D90E05400A61023 /* tipIcon_ProjectTopicCommentVote@2x.png in Resources */, - 4EF17EE41B3C3112003CDD2D /* intro_tip_4@2x.png in Resources */, 4E1D991D1DCAE69600BAE585 /* icon_file_share_logo@3x.png in Resources */, B1C871861EB18599003DACF0 /* calendar_0xF68435@3x.png in Resources */, 4EAE06C01B7B51AF00179F4B /* file_activity_icon_create@2x.png in Resources */, @@ -7598,7 +9724,6 @@ 4E96E7E51A1B537E0037C098 /* icon_file_zip@2x.png in Resources */, D0C447DC1C02DB8900DC1C4B /* me_normal@3x.png in Resources */, D0C447C21C02DB5400DC1C4B /* pop_Project@2x.png in Resources */, - 4EF17EDF1B3C3112003CDD2D /* intro_tip_1@3x.png in Resources */, 4EFE8DAF1B3960E6004B7559 /* logo_coding_top@2x.png in Resources */, 4E4972E01BB535B400F3AC15 /* tipIcon_ProjectTweetComment@2x.png in Resources */, 4E66EE261A28226000DA1B3E /* button_file_createFolder_enable@2x.png in Resources */, @@ -7610,6 +9735,7 @@ 4E095A841B6B24DE008DC439 /* time_clock_icon@2x.png in Resources */, 4EB52F211C76BA3B00B5EBEA /* tag_button_randomColor@2x.png in Resources */, 4E9423E51E69401B0095F1CD /* blankpage_image_Notice@3x.png in Resources */, + B16E6CC220C13F5F0076026D /* btn_project_quit@3x.png in Resources */, B1C871391EADF155003DACF0 /* project_item_mr_pr@3x.png in Resources */, B12B642B1FF33E0100ACFDCC /* button_tip_close@2x.png in Resources */, 4E6383FC1B33C18700D98648 /* task_activity_icon_reassign@2x.png in Resources */, @@ -7617,22 +9743,24 @@ 4E6383B71B32640900D98648 /* messageAT@2x.png in Resources */, D0C447AC1C02A3C700DC1C4B /* tweet_selected@2x.png in Resources */, 4E96E7DB1A1B537E0037C098 /* icon_file_code@2x.png in Resources */, - 4EF17ED51B3C3112003CDD2D /* intro_icon_3@2x.png in Resources */, B1C871291EADF0FF003DACF0 /* back_T_Nav@3x.png in Resources */, D0C447A41C02A3C700DC1C4B /* me_selected@2x.png in Resources */, 8EA6D19B19E240C40076D59C /* tipIcon_PullRequestComment@2x.png in Resources */, + B16E6CC420C13F5F0076026D /* btn_privateMsg_stranger@3x.png in Resources */, 4E4972E41BB543A900F3AC15 /* tipIcon_Depot@2x.png in Resources */, 8EF6434119FE696B00F7EEB0 /* cell_checkmark@2x.png in Resources */, + B16E6D8020C148E50076026D /* intro_icon_2@2x.png in Resources */, B1280D08200EFEA400DEDF78 /* PR_add_label@2x.png in Resources */, - 4EF17ED61B3C3112003CDD2D /* intro_icon_3@3x.png in Resources */, B103412A2024633900853447 /* logo_coding@3x.png in Resources */, B1280D09200EFEA400DEDF78 /* PR_del_reviewer@2x.png in Resources */, B1C871A51EB2D9E6003DACF0 /* task_activity_icon_reassign@3x.png in Resources */, + B16E6D8B20C148E50076026D /* intro_tip_5@3x.png in Resources */, 8EA6D17319E240C40076D59C /* placeholder_coding_square_150@2x.png in Resources */, + B1C60C8E20BFF7950073D3CA /* ProjectTypeExplanationViewController.xib in Resources */, 4EAECBC41C44CB860096CA74 /* member_cell_edit_remove@2x.png in Resources */, - 4E095A181D9534CB00E63D9E /* intro_page_unselected@3x.png in Resources */, 134116F41CB54AF8005E6550 /* PR_TaskResource@2x.png in Resources */, 4E1D991C1DCAE69600BAE585 /* icon_file_share_logo@2x.png in Resources */, + B16E6D9620C148E50076026D /* intro_page_unselected@3x.png in Resources */, 4E9423E41E69401B0095F1CD /* blankpage_image_Notice@2x.png in Resources */, 8EA6D17619E240C40076D59C /* placeholder_monkey_round_25@2x.png in Resources */, 4E2DB34A1BA6AEB4002F27C4 /* coding_emoji_gif_05@2x.png in Resources */, @@ -7654,7 +9782,6 @@ 4EB52F1E1C76BA3B00B5EBEA /* tag_button_add@3x.png in Resources */, B1C871461EADF1C1003DACF0 /* taskProgress@3x.png in Resources */, B152ED85209453E8004A6E8A /* taskboard_blankpage@3x.png in Resources */, - 4EF17EE31B3C3112003CDD2D /* intro_tip_3@3x.png in Resources */, 4E9423EA1E69401B0095F1CD /* blankpage_image_Task@2x.png in Resources */, B1C871AA1EB2D9E6003DACF0 /* task_activity_icon_update_label@3x.png in Resources */, 4E80E9551E02911E00DE1BC6 /* search_icon_mr@3x.png in Resources */, @@ -7668,6 +9795,7 @@ 4E217F101A70EDC700F6DF88 /* SVWebViewControllerActivityChrome-iPad@2x.png in Resources */, 13FB5D551CA17A6400EE127C /* PR_grant@2x.png in Resources */, B1C8712A1EADF0FF003DACF0 /* settingBtn_Nav@2x.png in Resources */, + B16E6D9220C148E50076026D /* intro_page0_ip5@2x.png in Resources */, 4ED4B4911D82646100EED8C6 /* user_info_topic@2x.png in Resources */, 4E6383EC1B32A2C300D98648 /* project_item_file@2x.png in Resources */, 8B35164F1B6CE9460049BC45 /* icon_arrow_searchHistory@2x.png in Resources */, @@ -7677,6 +9805,8 @@ 4E9423E21E69401B0095F1CD /* blankpage_image_MessageList@2x.png in Resources */, 4EB52F121C74691B00B5EBEA /* password_unlook@3x.png in Resources */, B16EEF09208DDBB6005ABFD5 /* timeline_icon_unread@3x.png in Resources */, + B1BFC4C520B2B250009427FC /* task_activity_icon_add_milestone@3x.png in Resources */, + B16E6D8320C148E50076026D /* intro_icon_5@3x.png in Resources */, D0C447CD1C02DB6700DC1C4B /* pop_Message@3x.png in Resources */, B152ED6520935594004A6E8A /* EABoardTaskListBlankView.xib in Resources */, 4E63840B1B33F9B400D98648 /* comment_bg@2x.png in Resources */, @@ -7685,12 +9815,11 @@ 4E59D32B1D3E106D008C914B /* tweetsBtn_Nav@2x.png in Resources */, 8E97CEA31A0C7E26006F9AD7 /* coding_emoji_12@2x.png in Resources */, B1AB5C9C202953E50075A669 /* terminal_box_unselected@3x.png in Resources */, - 4EF17EE81B3C3112003CDD2D /* intro_icon_6@2x.png in Resources */, - 4EF17ED11B3C3112003CDD2D /* intro_icon_1@2x.png in Resources */, B1AB5C9D202953E50075A669 /* terminal_tail@3x.png in Resources */, D0C447E21C02DB8900DC1C4B /* task_normal@3x.png in Resources */, B14689BA1EE100B200B01371 /* vip_3_75@2x.png in Resources */, 4E0BD8841B6C7F0A0061CAA6 /* mock_hotTopiclist.geojson in Resources */, + B16E6D9D20C148E50076026D /* icon_user_monkey@2x.png in Resources */, 4EE548291AE9166B00A92306 /* icon_project_cell_pin@2x.png in Resources */, D0C447C01C02DB5400DC1C4B /* pop_2FA@2x.png in Resources */, B1280D03200EFEA400DEDF78 /* PR_add_reviewer@3x.png in Resources */, @@ -7703,27 +9832,31 @@ 8E97CE9E1A0C7E26006F9AD7 /* coding_emoji_07@2x.png in Resources */, B152ED7D20945378004A6E8A /* project_item_taskboard@3x.png in Resources */, 13FB5D461CA17A6400EE127C /* merge-request coding@3x.png in Resources */, - 4EF17ECF1B3C3112003CDD2D /* intro_icon_0@2x.png in Resources */, 4E9423ED1E69401B0095F1CD /* blankpage_image_Team@3x.png in Resources */, 4EAAD0231E540551008AA957 /* mrpr_icon_status_canmerge@2x.png in Resources */, 4E9423E31E69401B0095F1CD /* blankpage_image_MessageList@3x.png in Resources */, 4E6383A91B3262D300D98648 /* taskPriority1_small@2x.png in Resources */, D0C447DD1C02DB8900DC1C4B /* me_selected@3x.png in Resources */, + B16E6D7A20C148E50076026D /* intro_tip_2@2x.png in Resources */, D0C447FC1C02DCA200DC1C4B /* timeBtn_Nav@2x.png in Resources */, 7E8E59821B6F91C40083CA02 /* bubble_right_play_0@2x.png in Resources */, + B16E6D9420C148E50076026D /* intro_page_unselected@2x.png in Resources */, 4ED6181D1C3A72CF0017946C /* ShopMutileValueCell.xib in Resources */, B1C871AB1EB2D9E6003DACF0 /* task_activity_icon_update_priority@3x.png in Resources */, + B16E6D9120C148E50076026D /* intro_icon_3@2x.png in Resources */, 4E96E7DD1A1B537E0037C098 /* icon_file_movie@2x.png in Resources */, 4E93F23D1B84356500017916 /* file_menu_icon_open@2x.png in Resources */, D0C447F41C02DCA200DC1C4B /* addBtn_Nav@2x.png in Resources */, + B16E6D7D20C148E50076026D /* intro_icon_2@3x.png in Resources */, + B1DFD0A120C67D3F00F75F2F /* btn_followed_yes@3x.png in Resources */, B1C871181EADF0B1003DACF0 /* messageAT@3x.png in Resources */, 4E80E9531E02911E00DE1BC6 /* search_icon_file@3x.png in Resources */, - 4EF17EE51B3C3112003CDD2D /* intro_tip_4@3x.png in Resources */, 13FB5D4D1CA17A6400EE127C /* PR_review@3x.png in Resources */, 4E2DB33F1BA6A2FE002F27C4 /* keyboard_emotion_monkey_gif@2x.png in Resources */, 8E97CEB41A0C7E26006F9AD7 /* coding_emoji_29@2x.png in Resources */, 4EAE06C11B7B51AF00179F4B /* file_activity_icon_move_file@2x.png in Resources */, D0C448081C02DCAC00DC1C4B /* addBtn_Nav@3x.png in Resources */, + B16E6D1320C147770076026D /* team_cell_edit_team@2x.png in Resources */, B14689BB1EE100B200B01371 /* vip_3_75@3x.png in Resources */, D0C4480C1C02DCAC00DC1C4B /* info_Nav@3x.png in Resources */, B1AB5C9F202953E50075A669 /* terminal_more@2x.png in Resources */, @@ -7742,13 +9875,12 @@ B17CC32020731FF10077C956 /* code_release_resource__Default@2x.png in Resources */, 4E5D13181C0EF48200985AEB /* button_close@2x.png in Resources */, 134116F51CB54AF8005E6550 /* PR_TaskResource@3x.png in Resources */, - 4EF17EDC1B3C3112003CDD2D /* intro_tip_0@2x.png in Resources */, 8EA6D19719E240C40076D59C /* tipIcon_Project@2x.png in Resources */, 4EAAD0541E542B2D008AA957 /* icon_code_tree@3x.png in Resources */, D0C447CF1C02DB6700DC1C4B /* pop_Task@3x.png in Resources */, 4EB52F1F1C76BA3B00B5EBEA /* tag_button_editColor@2x.png in Resources */, 4E6CBE551D8EA9D100644086 /* icon_best_answer@3x.png in Resources */, - 4EF17ED31B3C3112003CDD2D /* intro_icon_2@2x.png in Resources */, + B16E6CB520C13BF50076026D /* btn_next_enable@3x.png in Resources */, 4ECEFA031D1D0B4B002A27D3 /* tip_bg@3x.png in Resources */, D0C448091C02DCAC00DC1C4B /* addUserBtn_Nav@3x.png in Resources */, B1C871441EADF1C1003DACF0 /* taskOwner@3x.png in Resources */, @@ -7756,15 +9888,13 @@ 4EAAD0221E540551008AA957 /* mrpr_icon_status_accepted@3x.png in Resources */, 4E5D13101C0ECB3400985AEB /* tweet_btn_reward@3x.png in Resources */, 4EAECBC51C44CB860096CA74 /* member_cell_edit_remove@3x.png in Resources */, - 4EF17EE71B3C3112003CDD2D /* intro_tip_5@3x.png in Resources */, + B16E6D9320C148E50076026D /* intro_page_selected@2x.png in Resources */, 4E80E9321DFFF06E00DE1BC6 /* shortcut_tweet@3x.png in Resources */, 8E97CEB91A0C7E26006F9AD7 /* coding_emoji_34@2x.png in Resources */, B1C871701EB1832B003DACF0 /* task_description_icon@3x.png in Resources */, - 4EF17ED81B3C3112003CDD2D /* intro_icon_4@3x.png in Resources */, 4EAE06921B7880BA00179F4B /* me_info_arrow_left@2x.png in Resources */, 4E5F39071ACBFDCD0010515D /* keyboard_photo@2x.png in Resources */, B1BCB89C1FCE93830098B87B /* wechat@3x.png in Resources */, - 4E0022A91B7362EF005308DE /* intro_page0_ip6@2x.png in Resources */, 4E76D4DE1A5A7B4A0094A35E /* text_clear_btn@2x.png in Resources */, D0C447A91C02A3C700DC1C4B /* task_normal@2x.png in Resources */, 4E96E7E41A1B537E0037C098 /* icon_file_xls@2x.png in Resources */, @@ -7773,7 +9903,9 @@ 927AFF531BFF6DAD00AAE593 /* shop_nar_history_icon@3x.png in Resources */, 4EC461B41B39360F00D08970 /* file_changeType_MODIFY@2x.png in Resources */, D0C447A71C02A3C700DC1C4B /* project_normal@2x.png in Resources */, + B16E6D7E20C148E50076026D /* intro_tip_4@3x.png in Resources */, 4E80E9381E01218300DE1BC6 /* reward_tip_logo@2x.png in Resources */, + B16E6CDF20C145BF0076026D /* quick_menu_icon_task@3x.png in Resources */, B1C871471EADF1C1003DACF0 /* taskProject@3x.png in Resources */, 4ED4B48C1D82646100EED8C6 /* user_info_point@3x.png in Resources */, 4EA679191A14BFA0001A0324 /* icon_file_folder_default@2x.png in Resources */, @@ -7782,13 +9914,13 @@ B1817EEF2068C7A100E9BAD1 /* EACodeBranchListCell.xib in Resources */, B17CC31F20731FF10077C956 /* code_release_resource_Default@3x.png in Resources */, D0C447F81C02DCA200DC1C4B /* info_Nav@2x.png in Resources */, - 4EF17ECE1B3C3112003CDD2D /* intro_dot_unselected@3x.png in Resources */, B1C871B51EB2D9F0003DACF0 /* file_activity_icon_update_file@3x.png in Resources */, B177F5C62060E6B1006709C2 /* bubble.html in Resources */, 4E2DB34B1BA6AEB4002F27C4 /* coding_emoji_gif_06@2x.png in Resources */, - 4EF17EDB1B3C3112003CDD2D /* intro_icon_6@3x.png in Resources */, + B16E6CCA20C144930076026D /* done_Nav@2x.png in Resources */, 4E6383D41B32665700D98648 /* project_item_member@2x.png in Resources */, 8EA6D19E19E240C40076D59C /* tipIcon_Tweet@2x.png in Resources */, + B16E6CD020C144930076026D /* done_un_Nav@3x.png in Resources */, 8E97CE9B1A0C7E26006F9AD7 /* coding_emoji_04@2x.png in Resources */, 8EA6D16D19E240C40076D59C /* nav_tweet_hot@2x.png in Resources */, 4E6383D81B32665700D98648 /* project_item_topic@2x.png in Resources */, @@ -7804,22 +9936,26 @@ B1C871BE1EB33B37003DACF0 /* task_icon_arrow@3x.png in Resources */, 4E996C031ABBF56A00C704F1 /* n_btn_followed_not@2x.png in Resources */, 8EA6D17F19E240C40076D59C /* section_btn_open@2x.png in Resources */, - 4E095A151D9534CB00E63D9E /* intro_page_selected@2x.png in Resources */, 4EB52F611C7C5C4F00B5EBEA /* task_resource_reference_ProjectTopic@3x.png in Resources */, B12B64191FF0E4CB00ACFDCC /* skill_delete@3x.png in Resources */, - B1AB5CA52029849B0075A669 /* intro_page0_ipX@3x.png in Resources */, 4EACB4411A2C448F0097ABB3 /* button_file_move_unable@2x.png in Resources */, 4E0BD8851B6C7F0A0061CAA6 /* mock_topicAdlist.geojson in Resources */, 8EA6D17419E240C40076D59C /* placeholder_coding_square_55@2x.png in Resources */, D0C447CE1C02DB6700DC1C4B /* pop_Project@3x.png in Resources */, + B1BFC4C620B2B250009427FC /* task_activity_icon_remove_milestone@3x.png in Resources */, + B16E6CA320C102B60076026D /* Images.xcassets in Resources */, B1AB5CB8202D7D500075A669 /* button_file_download_unable@3x.png in Resources */, 4E80E95C1E02911E00DE1BC6 /* search_icon_task@2x.png in Resources */, B17CC32120731FF10077C956 /* code_release_resource_Task@2x.png in Resources */, D0C4480D1C02DCAC00DC1C4B /* moreBtn_Nav@3x.png in Resources */, B184166A20513CA100207666 /* tweet_comment_btn@3x.png in Resources */, + B16E6D7920C148E50076026D /* intro_icon_6@3x.png in Resources */, B14689B41EE100B200B01371 /* vip_3_30@2x.png in Resources */, B1280D01200EFEA400DEDF78 /* PR_del_label@3x.png in Resources */, 4E9423EC1E69401B0095F1CD /* blankpage_image_Team@2x.png in Resources */, + B15C98B220D39CA200DDA425 /* project_icon_edit@3x.png in Resources */, + B16E6D8520C148E50076026D /* intro_tip_3@3x.png in Resources */, + B16E6D0920C147770076026D /* team_info_sup@2x.png in Resources */, B17CC31520731E950077C956 /* icon_release_tag_blue@2x.png in Resources */, 8E8F7B3119EF6306006BA8BD /* btn_privateMsg_stranger@2x.png in Resources */, B1C8713D1EADF155003DACF0 /* project_item_wiki@3x.png in Resources */, @@ -7832,23 +9968,21 @@ B1280D06200EFEA400DEDF78 /* PR_del_label@2x.png in Resources */, 4E217F1A1A71007800F6DF88 /* SVWebViewController.strings in Resources */, 4E9423F11E69401B0095F1CD /* blankpage_image_Topic@3x.png in Resources */, - 4EF17ED01B3C3112003CDD2D /* intro_icon_0@3x.png in Resources */, 8EA6D17719E240C40076D59C /* placeholder_monkey_round_33@2x.png in Resources */, 8E97CEB51A0C7E26006F9AD7 /* coding_emoji_30@2x.png in Resources */, 4E6383D21B32665700D98648 /* project_item_code@2x.png in Resources */, 4E80E9571E02911E00DE1BC6 /* search_icon_user@3x.png in Resources */, B17CC32A2073212E0077C956 /* code_release_resource_MergeRequestBean@3x.png in Resources */, - 4EF17ED21B3C3112003CDD2D /* intro_icon_1@3x.png in Resources */, 4E9423DC1E69401B0095F1CD /* blankpage_image_Default@2x.png in Resources */, B1817EF62069186E00E9BAD1 /* project_item_tag@2x.png in Resources */, 13FB5D4F1CA17A6400EE127C /* PRReviewer@2x.png in Resources */, B12B640F1FECB59000ACFDCC /* login_wechat@2x.png in Resources */, B1C871A31EB2D9E6003DACF0 /* task_activity_icon_finish@3x.png in Resources */, B152ED95209453F3004A6E8A /* taskboard_normal_page_unselected@3x.png in Resources */, - 4E0022A61B7362EF005308DE /* intro_page0_ip4@2x.png in Resources */, 4E53EB591AFB090E0034FE1C /* nav_page_selected@2x.png in Resources */, + B16E6CCE20C144930076026D /* done_un_Nav@2x.png in Resources */, + B16E6CE520C145BF0076026D /* quick_menu_icon_2fa@3x.png in Resources */, 8E97CEB31A0C7E26006F9AD7 /* coding_emoji_28@2x.png in Resources */, - 4EF17EE61B3C3112003CDD2D /* intro_tip_5@2x.png in Resources */, 8EA6D17A19E240C40076D59C /* placeholder_monkey_round_50@2x.png in Resources */, B14689B81EE100B200B01371 /* vip_3_45@2x.png in Resources */, 4E996C051ABBF56A00C704F1 /* n_sex_man_icon@2x.png in Resources */, @@ -7862,8 +9996,8 @@ 8E97CEA71A0C7E26006F9AD7 /* coding_emoji_16@2x.png in Resources */, 4EAAD05C1E544006008AA957 /* icon_triangle@3x.png in Resources */, 4EAAD09E1E5D8558008AA957 /* mrpr_icon_arrow@3x.png in Resources */, + B16E6CEF20C147490076026D /* team_bg@2x.png in Resources */, B1C871BA1EB338FD003DACF0 /* comment_bg@3x.png in Resources */, - 4E0022A81B7362EF005308DE /* intro_page0_ip6+@3x.png in Resources */, 8E8F7B2C19EF6306006BA8BD /* btn_followed_both@2x.png in Resources */, 13FB5D421CA17A6400EE127C /* PR_refuse@3x.png in Resources */, 4E80E9311DFFF06E00DE1BC6 /* shortcut_tweet@2x.png in Resources */, @@ -7873,14 +10007,19 @@ 4ED4B48F1D82646100EED8C6 /* user_info_setup@2x.png in Resources */, B1C871841EB18599003DACF0 /* calendar_0xF56061@3x.png in Resources */, 4E9423DE1E69401B0095F1CD /* blankpage_image_File@2x.png in Resources */, + B16E6D9C20C148E50076026D /* icon_user_monkey_i6@2x.png in Resources */, + B16E6D8C20C148E50076026D /* intro_icon_1@2x.png in Resources */, B1C8718F1EB1E608003DACF0 /* icon_add_comment@3x.png in Resources */, 4EACB4431A2C45300097ABB3 /* button_file_download_enable@2x.png in Resources */, 8E97CE691A0A3424006F9AD7 /* keyboard_page_selected@2x.png in Resources */, + B15C98B020D39CA200DDA425 /* project_icon_edit@2x.png in Resources */, B1C8716C1EB182C7003DACF0 /* taskPriority3@3x.png in Resources */, B177F5C92060E6B1006709C2 /* code.html in Resources */, B16EEF08208DDBB6005ABFD5 /* timeline_icon_read@3x.png in Resources */, B1C871B31EB2D9F0003DACF0 /* file_activity_icon_delete_history@3x.png in Resources */, 4E6383DB1B3266C200D98648 /* mrpr_icon_commit@2x.png in Resources */, + B1BFC4B720B2ACEE009427FC /* editBoardList@2x.png in Resources */, + B16E6D8720C148E50076026D /* intro_icon_5@2x.png in Resources */, D0C447C51C02DB5400DC1C4B /* pop_User@2x.png in Resources */, 8E97CE611A0A3424006F9AD7 /* keyboard_add_photo@2x.png in Resources */, 4EAECBC61C44CB860096CA74 /* member_cell_edit_type@2x.png in Resources */, @@ -7891,14 +10030,18 @@ 4E80E9391E01218300DE1BC6 /* reward_tip_logo@3x.png in Resources */, B17CC32B2073212E0077C956 /* code_release_resource_ProjectFile@2x.png in Resources */, 4E09DCAA1C15662E001C9392 /* share_Nav@3x.png in Resources */, + B16E6D9520C148E50076026D /* intro_page0_ip4@2x.png in Resources */, + B1BFC4C420B2B250009427FC /* task_activity_icon_add_milestone@2x.png in Resources */, 4E2BF3D01B96CDF800A5A0A8 /* share_btn_copylink@2x.png in Resources */, B1817EF82069186E00E9BAD1 /* project_item_branch@3x.png in Resources */, - 4EF17ED41B3C3112003CDD2D /* intro_icon_2@3x.png in Resources */, 7E8E597F1B6F91C40083CA02 /* bubble_left_play_0@2x.png in Resources */, B1C871581EB0884A003DACF0 /* little_phone_icon@3x.png in Resources */, + B16E6D9720C148E50076026D /* intro_page_selected@3x.png in Resources */, + B16E6D7720C148E50076026D /* intro_tip_0@2x.png in Resources */, 4E96E7E11A1B537E0037C098 /* icon_file_ppt@2x.png in Resources */, 4E2F6A6E1C43CA4B00A25502 /* member_type_75@2x.png in Resources */, D0C448141C02F76600DC1C4B /* icon_search_searchbar@2x.png in Resources */, + B16E6CE920C145BF0076026D /* quick_menu_icon_project@2x.png in Resources */, 4EC480111C2A909D005F1772 /* register_step_ed@2x.png in Resources */, D0C447E01C02DB8900DC1C4B /* project_normal@3x.png in Resources */, B11DC7C020245728004E76A9 /* button_terminal@2x.png in Resources */, @@ -7912,11 +10055,13 @@ 4EAAD02B1E5405B4008AA957 /* mrpr_icon_status_cancel@2x.png in Resources */, 4EAAD02C1E5405B4008AA957 /* mrpr_icon_status_cancel@3x.png in Resources */, B1AB5CB1202D7D500075A669 /* button_file_createFolder_enable@3x.png in Resources */, + B16E6CAF20C13BF50076026D /* btn_next_unable@2x.png in Resources */, 13FB5D471CA17A6400EE127C /* PR_mergeChanges@2x.png in Resources */, + B16E6CB120C13BF50076026D /* btn_next_unable@3x.png in Resources */, 8E97CEAB1A0C7E26006F9AD7 /* coding_emoji_20@2x.png in Resources */, - 8EA6D1AA19E240C40076D59C /* Images.xcassets in Resources */, 4E63840F1B34124000D98648 /* task_icon_arrow@2x.png in Resources */, 4E6383C71B3265DC00D98648 /* mrpr_icon_refaused@2x.png in Resources */, + B16E6D8620C148E50076026D /* intro_tip_3@2x.png in Resources */, 8ED2AAFB19F60D5200607A1D /* loading_monkey@2x.png in Resources */, 8E97CE981A0C7E26006F9AD7 /* coding_emoji_01@2x.png in Resources */, B1C871661EB182C7003DACF0 /* taskPriority0@3x.png in Resources */, @@ -7924,26 +10069,28 @@ 4EB52F3B1C7C45E700B5EBEA /* taskResourceReference@2x.png in Resources */, 8EA6D19519E240C40076D59C /* tipIcon_MergeRequestBean@2x.png in Resources */, 4E66EE271A28226000DA1B3E /* button_file_denete_enable@2x.png in Resources */, - 4EF17EE01B3C3112003CDD2D /* intro_tip_2@2x.png in Resources */, 4E2719C71AB07ED6006AE214 /* dot_line@2x.png in Resources */, 13FB5D441CA17A6400EE127C /* PR_grant_undo@3x.png in Resources */, B1280D07200EFEA400DEDF78 /* PR_add_watcher@3x.png in Resources */, 4E2DB34D1BA6AEB4002F27C4 /* coding_emoji_gif_01@2x.png in Resources */, B1C871241EADF0FF003DACF0 /* addBtn_Artboard@2x.png in Resources */, - 4E8F92DF1B67BE3C00033D8F /* icon_user_monkey_i6p@3x.png in Resources */, B1C8713C1EADF155003DACF0 /* project_item_wiki@2x.png in Resources */, 4E2F6A701C43CA4B00A25502 /* member_type_90@2x.png in Resources */, 4E5D131B1C11865D00985AEB /* share_btn_inform@2x.png in Resources */, B1C871271EADF0FF003DACF0 /* back_green_Nav@3x.png in Resources */, 8E64ED8B19EE484A006E99DA /* README.textile in Resources */, B1280D0A200EFEA400DEDF78 /* PR_del_reviewer@3x.png in Resources */, + B16E6D0320C147770076026D /* team_info_pro@2x.png in Resources */, + B16E6D9820C148E50076026D /* intro_page0_ip6@2x.png in Resources */, 4E80E95D1E02911E00DE1BC6 /* search_icon_task@3x.png in Resources */, + B1BFC4C720B2B250009427FC /* task_activity_icon_remove_milestone@2x.png in Resources */, B1C871641EB182C7003DACF0 /* checkbox_unchecked@3x.png in Resources */, 8E97CE9D1A0C7E26006F9AD7 /* coding_emoji_06@2x.png in Resources */, B12B64281FF33E0100ACFDCC /* button_tip_close@3x.png in Resources */, 4E9423E81E69401B0095F1CD /* blankpage_image_ShopOrder@2x.png in Resources */, 4E0849821A918A7F00BD27F6 /* coding_emoji_40@2x.png in Resources */, 4E9423DD1E69401B0095F1CD /* blankpage_image_Default@3x.png in Resources */, + B1C60CAB20C0FC750073D3CA /* Launch Screen_E.xib in Resources */, 4EAECBC21C44CB860096CA74 /* member_cell_edit_alias@2x.png in Resources */, 4E6383BA1B32640900D98648 /* messageRight_bg_img@2x.png in Resources */, B152ED7C20945378004A6E8A /* project_item_taskboard@2x.png in Resources */, @@ -7964,6 +10111,7 @@ 4EBFBD181AA85B8500E4B10E /* add_user_icon@2x.png in Resources */, 8E97CEA21A0C7E26006F9AD7 /* coding_emoji_11@2x.png in Resources */, 4E2DB3471BA6AEB4002F27C4 /* coding_emoji_gif_02@2x.png in Resources */, + B16E6D7F20C148E50076026D /* intro_tip_4@2x.png in Resources */, 4E996C061ABBF56A00C704F1 /* n_sex_woman_icon@2x.png in Resources */, B14689BD1EE100B200B01371 /* vip_4_30@3x.png in Resources */, B1C871451EADF1C1003DACF0 /* taskPriority@3x.png in Resources */, @@ -7979,7 +10127,7 @@ D0C447D01C02DB6700DC1C4B /* pop_Tweet@3x.png in Resources */, 4EAAD0831E55AC6E008AA957 /* icon_code_image@3x.png in Resources */, B152ED8F209453F3004A6E8A /* taskboard_normal_page_selected@3x.png in Resources */, - 4EF17EDE1B3C3112003CDD2D /* intro_tip_1@2x.png in Resources */, + B16E6D9020C148E50076026D /* intro_tip_5@2x.png in Resources */, B1BCB8861FCD006C0098B87B /* icon_file_txt_big@2x.png in Resources */, 4E4D6ACB1B2571B100FD2E49 /* git_icon_stared@2x.png in Resources */, 4E80E9541E02911E00DE1BC6 /* search_icon_mr@2x.png in Resources */, @@ -7991,7 +10139,6 @@ B14689B61EE100B200B01371 /* vip_3_40@2x.png in Resources */, 4EAAD0571E542B2D008AA957 /* icon_code_git_link@2x.png in Resources */, 4E4D6AC81B252F4800FD2E49 /* icon_add_comment@2x.png in Resources */, - 4E0022A71B7362EF005308DE /* intro_page0_ip5@2x.png in Resources */, B1BCB8851FCD006C0098B87B /* icon_file_code_big@2x.png in Resources */, B1280CF0200EFDC600DEDF78 /* file_changeType_DELETE@3x.png in Resources */, 8E872D0019EFEFF7002C8F34 /* tweet_more_comment_icon@2x.png in Resources */, @@ -8007,7 +10154,7 @@ 4E217F121A70EDC700F6DF88 /* SVWebViewControllerActivityChrome@2x.png in Resources */, B152ED93209453F3004A6E8A /* taskboard_add_page_selected@3x.png in Resources */, 4E217F161A70EDC700F6DF88 /* SVWebViewControllerActivitySafari@2x.png in Resources */, - 4EF17EE21B3C3112003CDD2D /* intro_tip_3@2x.png in Resources */, + B1BFC4B620B2ACEE009427FC /* editBoardList@3x.png in Resources */, 13FB5D361CA17A6400EE127C /* PR_add@2x.png in Resources */, 4E5D130F1C0ECB3400985AEB /* tweet_btn_reward@2x.png in Resources */, 4E6383D51B32665700D98648 /* project_item_mr_pr@2x.png in Resources */, @@ -8016,6 +10163,8 @@ 8EA6D16719E240C40076D59C /* nav_project_activity@2x.png in Resources */, 4EFE8DAD1B394A0D004B7559 /* file_changeType_RENAME@2x.png in Resources */, 4E9423EF1E69401B0095F1CD /* blankpage_image_Tip@3x.png in Resources */, + B16E6CC020C13F5F0076026D /* btn_project_added@3x.png in Resources */, + B16E6CE320C145BF0076026D /* quick_menu_icon_project@3x.png in Resources */, B9A00D7F1ACA3A05008BA008 /* ProjectSetting.storyboard in Resources */, B1817F002069197D00E9BAD1 /* icon_release_tag@3x.png in Resources */, 8EA6D19219E240C40076D59C /* timeline_icon_unread@2x.png in Resources */, @@ -8045,6 +10194,7 @@ B1C8716A1EB182C7003DACF0 /* taskPriority2@3x.png in Resources */, 4E9423DA1E69401B0095F1CD /* blankpage_image_Activity@2x.png in Resources */, 8E97CEB81A0C7E26006F9AD7 /* coding_emoji_33@2x.png in Resources */, + B16E6D7C20C148E50076026D /* intro_icon_0@2x.png in Resources */, 8E97CEAE1A0C7E26006F9AD7 /* coding_emoji_23@2x.png in Resources */, 4E6383E11B32676600D98648 /* taskPriority@2x.png in Resources */, B17CC3292073212E0077C956 /* code_release_resource_ProjectFile@3x.png in Resources */, @@ -8056,8 +10206,8 @@ 4EB52F201C76BA3B00B5EBEA /* tag_button_editColor@3x.png in Resources */, D0C447F91C02DCA200DC1C4B /* moreBtn_Nav@2x.png in Resources */, 4EFE8DB91B3A5727004B7559 /* Launch Screen.xib in Resources */, - 4EF17ECC1B3C3112003CDD2D /* intro_dot_selected@3x.png in Resources */, 8E97CEAA1A0C7E26006F9AD7 /* coding_emoji_19@2x.png in Resources */, + B16E6D1B20C147770076026D /* team_cell_edit_pro@2x.png in Resources */, 13FB5D521CA17A6400EE127C /* PR_review_undo@3x.png in Resources */, B1C871681EB182C7003DACF0 /* taskPriority1@3x.png in Resources */, B1BCB89A1FCE93830098B87B /* alipay@3x.png in Resources */, @@ -8073,7 +10223,6 @@ B1C871631EB182C7003DACF0 /* checkbox_checked@3x.png in Resources */, 8E97CE9C1A0C7E26006F9AD7 /* coding_emoji_05@2x.png in Resources */, B1BCB8991FCE93830098B87B /* alipay@2x.png in Resources */, - 4E095A171D9534CB00E63D9E /* intro_page_unselected@2x.png in Resources */, 4E6383A61B3262D300D98648 /* taskPriority0@2x.png in Resources */, 4E0EF6EC1BF42E4B00F2FCC8 /* task_activity_icon_update_label@2x.png in Resources */, B1890C2A2015D82600F52ABA /* wiki_menu_2@3x.png in Resources */, @@ -8096,16 +10245,17 @@ B1890C292015D82600F52ABA /* wiki_menu_0@2x.png in Resources */, B17CC31420731E950077C956 /* icon_release_tag_blue@3x.png in Resources */, 4E80E9501E02911E00DE1BC6 /* search_icon_topic@2x.png in Resources */, + B16E6D8120C148E50076026D /* intro_icon_0@3x.png in Resources */, 4E2BF3BC1B957D4F00A5A0A8 /* file_activity_icon_delete_history@2x.png in Resources */, B1BCB8811FCD006C0098B87B /* icon_file_unknown_big@2x.png in Resources */, 8EA6D18119E240C40076D59C /* sex_woman_icon@2x.png in Resources */, D0C447DF1C02DB8900DC1C4B /* privatemessage_selected@3x.png in Resources */, + B16E6CE120C145BF0076026D /* quick_menu_icon_task@2x.png in Resources */, 8E7612F41A08B1EA005BE797 /* tipIcon_TaskComment@2x.png in Resources */, 4E6383E01B32676600D98648 /* taskDeadline@2x.png in Resources */, 136526891CAABA2E00C0341D /* AddReviewerViewController.xib in Resources */, 927AFF511BFF6DAD00AAE593 /* shop_exchange_icon@3x.png in Resources */, B14689B71EE100B200B01371 /* vip_3_40@3x.png in Resources */, - 4E8F92DE1B67BE3C00033D8F /* icon_user_monkey_i6@2x.png in Resources */, 4EAE06A71B7B1AE100179F4B /* button_file_activity@2x.png in Resources */, 4EAE06C21B7B51AF00179F4B /* file_activity_icon_update_file@2x.png in Resources */, 8EC911291A027A54009EAE99 /* nav_project_code@2x.png in Resources */, @@ -8116,6 +10266,7 @@ D0C447FA1C02DCA200DC1C4B /* search_Nav@2x.png in Resources */, B1AB5CA1202953E50075A669 /* terminal_box_selected@3x.png in Resources */, 4EED9DD11B53BBCF000E5827 /* twoFABtn_Nav@2x.png in Resources */, + B16E6CDD20C145BF0076026D /* quick_menu_icon_message@3x.png in Resources */, D0C447E11C02DB8900DC1C4B /* project_selected@3x.png in Resources */, B1C871A41EB2D9E6003DACF0 /* task_activity_icon_MergeRequestBean@3x.png in Resources */, D0C447E51C02DB8900DC1C4B /* tweet_selected@3x.png in Resources */, @@ -8125,6 +10276,952 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B1D5EE7520BC06CB00983FB6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B1D5EE7620BC06CB00983FB6 /* hot_topic_Nav@2x.png in Resources */, + B1D5EE7720BC06CB00983FB6 /* keyboard_add@2x.png in Resources */, + B1D5EE7820BC06CB00983FB6 /* register_step_un@2x.png in Resources */, + B1D5EE7920BC06CB00983FB6 /* task_activity_icon_restore@2x.png in Resources */, + B1D5EE7A20BC06CB00983FB6 /* tipIcon_tweetReward@2x.png in Resources */, + B1D5EE7B20BC06CB00983FB6 /* icon_file_folder_normal@2x.png in Resources */, + B1D5EE7C20BC06CB00983FB6 /* taskboard_add_page_selected@2x.png in Resources */, + B1D5EE7D20BC06CB00983FB6 /* time_clock_icon@3x.png in Resources */, + B1D5EE7E20BC06CB00983FB6 /* task_activity_icon_add_watcher@3x.png in Resources */, + B1D5EE7F20BC06CB00983FB6 /* tipIcon_ProjectTopic@2x.png in Resources */, + B1D5EE8020BC06CB00983FB6 /* SVWebViewControllerActivityReport@2x.png in Resources */, + B16E6DD920C149440076026D /* intro_page1_ip5@2x.png in Resources */, + B1D5EE8120BC06CB00983FB6 /* wiki_menu_icon_share@2x.png in Resources */, + B16E6DDA20C149440076026D /* intro_page_unselected@3x.png in Resources */, + B1D5EE8220BC06CB00983FB6 /* InfoPlist.strings in Resources */, + B1D5EE8320BC06CB00983FB6 /* mrpr_icon_accepted@2x.png in Resources */, + B1D5EE8420BC06CB00983FB6 /* mrpr_icon_status_refused@2x.png in Resources */, + B1D5EE8520BC06CB00983FB6 /* privatemessage_normal@3x.png in Resources */, + B16E6DD420C149440076026D /* intro_page2_ip5@2x.png in Resources */, + B1D5EE8620BC06CB00983FB6 /* btn_project_added@2x.png in Resources */, + B1D5EE8720BC06CB00983FB6 /* nav_tweet_all@2x.png in Resources */, + B1D5EE8820BC06CB00983FB6 /* button_file_createFolder_unable@2x.png in Resources */, + B1D5EE8920BC06CB00983FB6 /* button_file_denete_unable@3x.png in Resources */, + B1D5EE8A20BC06CB00983FB6 /* file_activity_icon_upload_file@3x.png in Resources */, + B1D5EE8B20BC06CB00983FB6 /* QBImagePicker.storyboard in Resources */, + B16E6CBF20C13F5F0076026D /* btn_project_add@3x.png in Resources */, + B1D5EE8C20BC06CB00983FB6 /* taskProject@2x.png in Resources */, + B1D5EE8E20BC06CB00983FB6 /* button_file_upload_enable@3x.png in Resources */, + B1D5EE8F20BC06CB00983FB6 /* tag_button_randomColor@3x.png in Resources */, + B1D5EE9020BC06CB00983FB6 /* user_info_help@3x.png in Resources */, + B1D5EE9120BC06CB00983FB6 /* messageComment@2x.png in Resources */, + B1D5EE9220BC06CB00983FB6 /* upgrade_success@3x.png in Resources */, + B1D5EE9320BC06CB00983FB6 /* tweet_comment_btn@2x.png in Resources */, + B1D5EE9420BC06CB00983FB6 /* fliter_square@2x.png in Resources */, + B1D5EE9520BC06CB00983FB6 /* PR_create@2x.png in Resources */, + B1D5EE9620BC06CB00983FB6 /* user_info_tweet@3x.png in Resources */, + B1D5EE9720BC06CB00983FB6 /* taskPriority2_small@2x.png in Resources */, + B1D5EE9820BC06CB00983FB6 /* pop_2FA@3x.png in Resources */, + B1D5EE9920BC06CB00983FB6 /* code_release_resource_Zip@2x.png in Resources */, + B1D5EE9A20BC06CB00983FB6 /* topic_add_watcher_btn@2x.png in Resources */, + B1D5EE9B20BC06CB00983FB6 /* bubble_right_play_1@2x.png in Resources */, + B1D5EE9C20BC06CB00983FB6 /* search_tweet_colck@2x.png in Resources */, + B1D5EE9D20BC06CB00983FB6 /* keyboard_page_unselected@2x.png in Resources */, + B16E6DC820C1493A0076026D /* intro_icon_wiki_down.gif in Resources */, + B1D5EE9E20BC06CB00983FB6 /* blankpage_image_Project@2x.png in Resources */, + B1D5EEA020BC06CB00983FB6 /* PR_more@2x.png in Resources */, + B1D5EEA120BC06CB00983FB6 /* user_info_edit@3x.png in Resources */, + B1D5EEA220BC06CB00983FB6 /* file_changeType_MODIFY@3x.png in Resources */, + B1D5EEA320BC06CB00983FB6 /* icon_file_apk@2x.png in Resources */, + B1D5EEA420BC06CB00983FB6 /* n_btn_followed_both@2x.png in Resources */, + B15C98AD20D39C4B00DDA425 /* NewProject.storyboard in Resources */, + B1D5EEA520BC06CB00983FB6 /* messageSystem@2x.png in Resources */, + B1D5EEA620BC06CB00983FB6 /* PR_del_watcher@2x.png in Resources */, + B1D5EEA720BC06CB00983FB6 /* taskWatchers@3x.png in Resources */, + B1D5EEA820BC06CB00983FB6 /* mrpr_icon_status_canmerge@3x.png in Resources */, + B1D5EEA920BC06CB00983FB6 /* topic_comment_icon@2x.png in Resources */, + B1D5EEAA20BC06CB00983FB6 /* project_item_activity@3x.png in Resources */, + B1D5EEAB20BC06CB00983FB6 /* member_type_75@3x.png in Resources */, + B1D5EEAC20BC06CB00983FB6 /* bubble_right_play_2@2x.png in Resources */, + B1D5EEAD20BC06CB00983FB6 /* share_btn_coding@2x.png in Resources */, + B1D5EEAE20BC06CB00983FB6 /* commentOrLikeBeginImg@2x.png in Resources */, + B1D5EEAF20BC06CB00983FB6 /* task_resource_reference_ProjectFile@3x.png in Resources */, + B1D5EEB020BC06CB00983FB6 /* PR_mergeChanges@3x.png in Resources */, + B1D5EEB120BC06CB00983FB6 /* user_info_shop@2x.png in Resources */, + B1D5EEB220BC06CB00983FB6 /* ReviewCell.xib in Resources */, + B1D5EEB320BC06CB00983FB6 /* login_suffix@2x.png in Resources */, + B1D5EEB420BC06CB00983FB6 /* password_look@3x.png in Resources */, + B1D5EEB520BC06CB00983FB6 /* emotion_list.plist in Resources */, + B1D5EEB620BC06CB00983FB6 /* wiki_menu_1@3x.png in Resources */, + B1D5EEB720BC06CB00983FB6 /* file_changeType_ADD@2x.png in Resources */, + B16E6DD220C149440076026D /* intro_page1_ip6@2x.png in Resources */, + B16E6DC120C1492F0076026D /* intro_dot_dark_selected@3x.png in Resources */, + B1D5EEB820BC06CB00983FB6 /* icon_best_answer@2x.png in Resources */, + B16E6DCC20C1493A0076026D /* intro_icon_task_up.gif in Resources */, + B1D5EEB920BC06CB00983FB6 /* git_icon_watched@2x.png in Resources */, + B1D5EEBA20BC06CB00983FB6 /* coding_emoji_26@2x.png in Resources */, + B1D5EEBB20BC06CB00983FB6 /* coding_emoji_35@2x.png in Resources */, + B1D5EEBC20BC06CB00983FB6 /* task_activity_icon_update_description@3x.png in Resources */, + B1D5EEBD20BC06CB00983FB6 /* vip_4_40@3x.png in Resources */, + B1D5EEBE20BC06CB00983FB6 /* keyboard_keyboard@2x.png in Resources */, + B1D5EEBF20BC06CB00983FB6 /* icon_release_tag@2x.png in Resources */, + B1D5EEC020BC06CB00983FB6 /* placeholder_monkey_round_48@2x.png in Resources */, + B1D5EEC120BC06CB00983FB6 /* PR_plus@2x.png in Resources */, + B1D5EEC220BC06CB00983FB6 /* xtsegment_bordor_left@2x.png in Resources */, + B1D5EEC320BC06CB00983FB6 /* task_resource_reference_MergeRequestBean@2x.png in Resources */, + B1D5EEC420BC06CB00983FB6 /* icon_file_folder_out@2x.png in Resources */, + B1D5EEC520BC06CB00983FB6 /* messageProjectFollows@2x.png in Resources */, + B1D5EEC620BC06CB00983FB6 /* tweet_btn_comment@2x.png in Resources */, + B1D5EEC720BC06CB00983FB6 /* blankpage_image_ShopOrder@3x.png in Resources */, + B1D5EEC820BC06CB00983FB6 /* banner__page_unselected@2x.png in Resources */, + B1D5EEC920BC06CB00983FB6 /* mrpr_icon_status_accepted@2x.png in Resources */, + B1D5EECA20BC06CB00983FB6 /* icon_file_ai@2x.png in Resources */, + B1D5EECB20BC06CB00983FB6 /* PR_plus@3x.png in Resources */, + B16E6DC420C149350076026D /* intro_dot_light_unselected@2x.png in Resources */, + B1D5EECC20BC06CB00983FB6 /* user_info_tweet@2x.png in Resources */, + B1D5EECD20BC06CB00983FB6 /* coding_emoji_21@2x.png in Resources */, + B1D5EECE20BC06CB00983FB6 /* bubble_left_play_2@2x.png in Resources */, + B1D5EECF20BC06CB00983FB6 /* task_resource_reference_Task@3x.png in Resources */, + B1D5EED020BC06CB00983FB6 /* PR_add_watcher@2x.png in Resources */, + B1D5EED120BC06CB00983FB6 /* file_menu_icon_delete@2x.png in Resources */, + B1D5EED220BC06CB00983FB6 /* button_red_close@3x.png in Resources */, + B1D5EED320BC06CB00983FB6 /* PR_merge@3x.png in Resources */, + B16E6DD320C149440076026D /* intro_page1_ip4@2x.png in Resources */, + B1D5EED420BC06CB00983FB6 /* coding_emoji_25@2x.png in Resources */, + B1D5EED520BC06CB00983FB6 /* keyboard_arrow_down@2x.png in Resources */, + B1D5EED620BC06CB00983FB6 /* taskResourceReference@3x.png in Resources */, + B1D5EED720BC06CB00983FB6 /* tag_button_add@2x.png in Resources */, + B16E6CC120C13F5F0076026D /* btn_project_added@3x.png in Resources */, + B1D5EED820BC06CB00983FB6 /* tweetsBtn_Nav@3x.png in Resources */, + B1D5EED920BC06CB00983FB6 /* icon_branch_protected@2x.png in Resources */, + B1D5EEDA20BC06CB00983FB6 /* taskboard_normal_page_selected@2x.png in Resources */, + B1D5EEDB20BC06CB00983FB6 /* user_info_about@2x.png in Resources */, + B1D5EEDC20BC06CB00983FB6 /* icon_branch_protected@3x.png in Resources */, + B1D5EEDE20BC06CB00983FB6 /* task_activity_icon_create@2x.png in Resources */, + B1D5EEDF20BC06CB00983FB6 /* button_file_download_unable@2x.png in Resources */, + B1D5EEE020BC06CB00983FB6 /* btn_setFrequent@2x.png in Resources */, + B1D5EEE120BC06CB00983FB6 /* task_activity_icon_remove_watcher@3x.png in Resources */, + B1D5EEE220BC06CB00983FB6 /* markdown.html in Resources */, + B1D5EEE320BC06CB00983FB6 /* code_release_resource_ProjectTopic@3x.png in Resources */, + B1D5EEE420BC06CB00983FB6 /* diff-ios.html in Resources */, + B1D5EEE520BC06CB00983FB6 /* little_phone_icon@2x.png in Resources */, + B1D5EEE620BC06CB00983FB6 /* share_btn_sina@2x.png in Resources */, + B1D5EEE820BC06CB00983FB6 /* icon_file_pdf@2x.png in Resources */, + B16E6DD120C149440076026D /* intro_page2_ip6+@3x.png in Resources */, + B1D5EEE920BC06CB00983FB6 /* tipIcon_TweetComment@2x.png in Resources */, + B1D5EEEA20BC06CB00983FB6 /* blankpage_image_LoadFail@3x.png in Resources */, + B1D5EEEB20BC06CB00983FB6 /* taskboard_add_page_unselected@2x.png in Resources */, + B1D5EEEC20BC06CB00983FB6 /* PR_grant_undo@2x.png in Resources */, + B1D5EEED20BC06CB00983FB6 /* back_green_Nav@2x.png in Resources */, + B1D5EEEE20BC06CB00983FB6 /* file_changeType_COPY@2x.png in Resources */, + B16E6CF020C147490076026D /* team_bg@2x.png in Resources */, + B1D5EEEF20BC06CB00983FB6 /* shop_exchange_icon@2x.png in Resources */, + B1D5EEF020BC06CB00983FB6 /* timeBtn_Nav@3x.png in Resources */, + B1D5EEF120BC06CB00983FB6 /* close@2x.png in Resources */, + B1D5EEF220BC06CB00983FB6 /* PR_update_content@3x.png in Resources */, + B1D5EEF320BC06CB00983FB6 /* user_info_detail@2x.png in Resources */, + B1D5EEF420BC06CB00983FB6 /* vip_4_45@2x.png in Resources */, + B1D5EEF520BC06CB00983FB6 /* icon_recommended@2x.png in Resources */, + B1D5EEF620BC06CB00983FB6 /* icon_file_doc@2x.png in Resources */, + B1D5EEF720BC06CB00983FB6 /* hot_topic_Nav@3x.png in Resources */, + B1D5EEF820BC06CB00983FB6 /* EACodeReleaseListCell.xib in Resources */, + B1D5EEF920BC06CB00983FB6 /* user_info_setup@3x.png in Resources */, + B1D5EEFA20BC06CB00983FB6 /* tipIcon_ProjectTweet@2x.png in Resources */, + B16E6D1420C147770076026D /* team_cell_edit_team@2x.png in Resources */, + B1D5EEFB20BC06CB00983FB6 /* share_Nav@2x.png in Resources */, + B1D5EEFC20BC06CB00983FB6 /* tipIcon_User@2x.png in Resources */, + B1D5EEFD20BC06CB00983FB6 /* taskPriority0_small@2x.png in Resources */, + B1D5EEFE20BC06CB00983FB6 /* file_changeType_COPY@3x.png in Resources */, + B1D5EEFF20BC06CB00983FB6 /* btn_project_quit@2x.png in Resources */, + B1D5EF0020BC06CB00983FB6 /* member_type_100@2x.png in Resources */, + B1D5EF0120BC06CB00983FB6 /* dismissBtn_Nav@2x.png in Resources */, + B1D5EF0220BC06CB00983FB6 /* coding_emoji_38@2x.png in Resources */, + B1D5EF0320BC06CB00983FB6 /* keyboard_emotion_emoji@2x.png in Resources */, + B1D5EF0420BC06CB00983FB6 /* taskOwner@2x.png in Resources */, + B1D5EF0520BC06CB00983FB6 /* task_activity_icon_commit_refer@2x.png in Resources */, + B1D5EF0620BC06CB00983FB6 /* project_item_file@3x.png in Resources */, + B1D5EF0720BC06CB00983FB6 /* btn_followed_yes@2x.png in Resources */, + B1D5EF0820BC06CB00983FB6 /* btn_project_add@2x.png in Resources */, + B1D5EF0920BC06CB00983FB6 /* project_item_activity@2x.png in Resources */, + B1D5EF0A20BC06CB00983FB6 /* tips_menu_icon_status@2x.png in Resources */, + B1D5EF0B20BC06CB00983FB6 /* task_selected@2x.png in Resources */, + B1D5EF0C20BC06CB00983FB6 /* project_item_code@3x.png in Resources */, + B1D5EF0D20BC06CB00983FB6 /* terminal_tail@2x.png in Resources */, + B1D5EF0E20BC06CB00983FB6 /* PR_add_reviewer@2x.png in Resources */, + B16E6CDE20C145BF0076026D /* quick_menu_icon_message@3x.png in Resources */, + B1D5EF0F20BC06CB00983FB6 /* PR_push@3x.png in Resources */, + B1D5EF1020BC06CB00983FB6 /* shop_coding_coin_icon@3x.png in Resources */, + B1D5EF1220BC06CB00983FB6 /* project_tag_icon@3x.png in Resources */, + B1D5EF1320BC06CB00983FB6 /* code_lang.plist in Resources */, + B1D5EF1420BC06CB00983FB6 /* logo_coding@2x.png in Resources */, + B1D5EF1520BC06CB00983FB6 /* user_info_project@2x.png in Resources */, + B1D5EF1620BC06CB00983FB6 /* button_file_createFolder_unable@3x.png in Resources */, + B1D5EF1720BC06CB00983FB6 /* icon_project_cell_setNormal@2x.png in Resources */, + B1D5EF1820BC06CB00983FB6 /* search_Nav@3x.png in Resources */, + B1D5EF1920BC06CB00983FB6 /* keyboard_emotion_monkey@2x.png in Resources */, + B1D5EF1A20BC06CB00983FB6 /* icon_file_ppt_big@2x.png in Resources */, + B1D5EF1B20BC06CB00983FB6 /* calendar_0xA1CF64@2x.png in Resources */, + B1DFD0A620C67D3F00F75F2F /* btn_followed_both@3x.png in Resources */, + B1D5EF1C20BC06CB00983FB6 /* blankpage_image_File@3x.png in Resources */, + B1D5EF1D20BC06CB00983FB6 /* SVWebViewControllerActivityChrome-iPad.png in Resources */, + B1D5EF1E20BC06CB00983FB6 /* settingBtn_Nav@3x.png in Resources */, + B1D5EF1F20BC06CB00983FB6 /* PR_del_watcher@3x.png in Resources */, + B1D5EF2020BC06CB00983FB6 /* tweet_btn_comment@3x.png in Resources */, + B1D5EF2120BC06CB00983FB6 /* task_activity_icon_update_deadline@3x.png in Resources */, + B1D5EF2220BC06CB00983FB6 /* close@3x.png in Resources */, + B16E6DCA20C1493A0076026D /* intro_icon_file_up.gif in Resources */, + B1D5EF2320BC06CB00983FB6 /* coding_emoji_14@2x.png in Resources */, + B1D5EF2420BC06CB00983FB6 /* taskboard_normal_page_unselected@2x.png in Resources */, + B1D5EF2520BC06CB00983FB6 /* loading_monkey@2x.gif in Resources */, + B16E6CDC20C145BF0076026D /* quick_menu_icon_message@2x.png in Resources */, + B1D5EF2620BC06CB00983FB6 /* search_icon_topic@3x.png in Resources */, + B1D5EF2720BC06CB00983FB6 /* pop_User@3x.png in Resources */, + B1D5EF2820BC06CB00983FB6 /* taskPriority2_small@3x.png in Resources */, + B1D5EF2920BC06CB00983FB6 /* project_tag_btn@3x.png in Resources */, + B1D5EF2A20BC06CB00983FB6 /* task_resource_reference_Task@2x.png in Resources */, + B1D5EF2B20BC06CB00983FB6 /* tips_menu_icon_mkread@2x.png in Resources */, + B1D5EF2C20BC06CB00983FB6 /* coding_emoji_15@2x.png in Resources */, + B1D5EF2D20BC06CB00983FB6 /* shortcut_task@2x.png in Resources */, + B1D5EF2E20BC06CB00983FB6 /* terminal_triangle@2x.png in Resources */, + B1D5EF2F20BC06CB00983FB6 /* topic_comment_icon@3x.png in Resources */, + B1D5EF3020BC06CB00983FB6 /* placeholder_monkey_round_40@2x.png in Resources */, + B1D5EF3120BC06CB00983FB6 /* PR_merge@2x.png in Resources */, + B1D5EF3220BC06CB00983FB6 /* tweet_btn_like@2x.png in Resources */, + B1D5EF3320BC06CB00983FB6 /* PR_update@2x.png in Resources */, + B1D5EF3420BC06CB00983FB6 /* login_email@2x.png in Resources */, + B1D5EF3520BC06CB00983FB6 /* tweetBtn_Nav@3x.png in Resources */, + B1D5EF3620BC06CB00983FB6 /* mrpr_icon_status_refused@3x.png in Resources */, + B1D5EF3720BC06CB00983FB6 /* login_wechat@3x.png in Resources */, + B1D5EF3820BC06CB00983FB6 /* ReleaseNotes.txt in Resources */, + B1D5EF3920BC06CB00983FB6 /* PR_update_content@2x.png in Resources */, + B1D5EF3A20BC06CB00983FB6 /* ReviewerListController.xib in Resources */, + B16E6D0A20C147770076026D /* team_info_sup@2x.png in Resources */, + B1D5EF3B20BC06CB00983FB6 /* file_activity_icon_create@3x.png in Resources */, + B1D5EF3C20BC06CB00983FB6 /* tipIcon_MergeRequestComment@2x.png in Resources */, + B1D5EF3D20BC06CB00983FB6 /* private_message_send_fail@2x.png in Resources */, + B1D5EF3E20BC06CB00983FB6 /* terminal_box_unselected@2x.png in Resources */, + B1D5EF3F20BC06CB00983FB6 /* keyboard_at@2x.png in Resources */, + B1D5EF4020BC06CB00983FB6 /* coding_emoji_13@2x.png in Resources */, + B1D5EF4120BC06CB00983FB6 /* blankpage_image_Wiki@2x.png in Resources */, + B1D5EF4220BC06CB00983FB6 /* PR_update_title@2x.png in Resources */, + B1D5EF4320BC06CB00983FB6 /* project_item_task@2x.png in Resources */, + B1D5EF4420BC06CB00983FB6 /* icon_file_apk_big@2x.png in Resources */, + B1D5EF4520BC06CB00983FB6 /* file_menu_icon_share@2x.png in Resources */, + B1D5EF4620BC06CB00983FB6 /* btn_delete_tweetimage@2x.png in Resources */, + B1D5EF4720BC06CB00983FB6 /* task_activity_icon_commit_refer@3x.png in Resources */, + B1D5EF4820BC06CB00983FB6 /* icon_code_executable@3x.png in Resources */, + B1D5EF4920BC06CB00983FB6 /* calendar_0x59A2FF@3x.png in Resources */, + B1D5EF4A20BC06CB00983FB6 /* task_activity_icon_create@3x.png in Resources */, + B1D5EF4B20BC06CB00983FB6 /* icon_file_cell_move@2x.png in Resources */, + B1D5EF4C20BC06CB00983FB6 /* mrpr_icon_status_cannotmerge@3x.png in Resources */, + B1D5EF4D20BC06CB00983FB6 /* member_cell_edit_alias@3x.png in Resources */, + B1D5EF4E20BC06CB00983FB6 /* icon_file_cell_rename@2x.png in Resources */, + B1D5EF4F20BC06CB00983FB6 /* PR_grant@3x.png in Resources */, + B1D5EF5020BC06CB00983FB6 /* coding_emoji_03@2x.png in Resources */, + B1D5EF5120BC06CB00983FB6 /* cell_checkmark@3x.png in Resources */, + B1D5EF5220BC06CB00983FB6 /* taskWatchers@2x.png in Resources */, + B1D5EF5320BC06CB00983FB6 /* icon_file_psd@2x.png in Resources */, + B1D5EF5420BC06CB00983FB6 /* sex_man_icon@2x.png in Resources */, + B1D5EF5520BC06CB00983FB6 /* file_changeType_DELETE@2x.png in Resources */, + B1D5EF5620BC06CB00983FB6 /* button_file_move_unable@3x.png in Resources */, + B16E6D1820C147770076026D /* team_cell_edit_delete@2x.png in Resources */, + B1D5EF5720BC06CB00983FB6 /* button_file_history@3x.png in Resources */, + B1D5EF5820BC06CB00983FB6 /* shortcut_2FA@2x.png in Resources */, + B1D5EF5920BC06CB00983FB6 /* button_file_download_enable@3x.png in Resources */, + B1D5EF5A20BC06CB00983FB6 /* icon_file_ai_big@2x.png in Resources */, + B1D5EF5B20BC06CB00983FB6 /* tipIcon_ProjectPayment@2x.png in Resources */, + B1D5EF5C20BC06CB00983FB6 /* MIDAUTUMNIMAGE.jpg in Resources */, + B1D5EF5D20BC06CB00983FB6 /* calendar_0xA9B3BE@2x.png in Resources */, + B1D5EF5E20BC06CB00983FB6 /* project_item_topic@3x.png in Resources */, + B1D5EF5F20BC06CB00983FB6 /* service_terms.html in Resources */, + B1D5EF6020BC06CB00983FB6 /* task_activity_icon_update_priority@2x.png in Resources */, + B1D5EF6120BC06CB00983FB6 /* icon_search_searchbar@3x.png in Resources */, + B1D5EF6220BC06CB00983FB6 /* keyboard_voice@2x.png in Resources */, + B1DFD0A220C67D3F00F75F2F /* btn_followed_yes@3x.png in Resources */, + B1D5EF6320BC06CB00983FB6 /* search_icon_project@3x.png in Resources */, + B16E6DE120C1494B0076026D /* icon_user_monkey@3x.png in Resources */, + B1D5EF6420BC06CB00983FB6 /* button_close@3x.png in Resources */, + B1D5EF6520BC06CB00983FB6 /* btn_followed_not@2x.png in Resources */, + B1D5EF6720BC06CB00983FB6 /* mrpr_icon_fileChange@2x.png in Resources */, + B1D5EF6820BC06CB00983FB6 /* task_activity_icon_finish@2x.png in Resources */, + B1D5EF6920BC06CB00983FB6 /* vip_4_40@2x.png in Resources */, + B1D5EF6A20BC06CB00983FB6 /* taskDeadline@3x.png in Resources */, + B1D5EF6B20BC06CB00983FB6 /* button_arrow_left@2x.png in Resources */, + B1D5EF6C20BC06CB00983FB6 /* taskProgress@2x.png in Resources */, + B1D5EF6D20BC06CB00983FB6 /* tweetBtn_Nav@2x.png in Resources */, + B1D5EF6E20BC06CB00983FB6 /* bubble_left_play_1@2x.png in Resources */, + B1D5EF6F20BC06CB00983FB6 /* placeholder_monkey_round_54@2x.png in Resources */, + B1D5EF7020BC06CB00983FB6 /* tweet_btn_rewarded@3x.png in Resources */, + B1D5EF7120BC06CB00983FB6 /* vip_4_75@2x.png in Resources */, + B1D5EF7220BC06CB00983FB6 /* task_activity_icon_update_deadline@2x.png in Resources */, + B1D5EF7320BC06CB00983FB6 /* TweetSendDetailLoctionCell.xib in Resources */, + B1D5EF7420BC06CB00983FB6 /* project_item_readme@3x.png in Resources */, + B16E6CB420C13BF50076026D /* btn_next_enable@2x.png in Resources */, + B1D5EF7520BC06CB00983FB6 /* icon_file_doc_big@2x.png in Resources */, + B16E6D1020C147770076026D /* team_info_sup@3x.png in Resources */, + B1D5EF7620BC06CB00983FB6 /* icon_locationed@2x.png in Resources */, + B1D5EF7720BC06CB00983FB6 /* tip_normal_Nav@3x.png in Resources */, + B1D5EF7820BC06CB00983FB6 /* tweet_btn_like@3x.png in Resources */, + B1D5EF7920BC06CB00983FB6 /* icon_project_cell_nopin@2x.png in Resources */, + B16E6CA720C13BA20076026D /* btn_dismiss@3x.png in Resources */, + B1D5EF7A20BC06CB00983FB6 /* coding_emoji_39@2x.png in Resources */, + B1D5EF7C20BC06CB00983FB6 /* coding_emoji_08@2x.png in Resources */, + B1D5EF7D20BC06CB00983FB6 /* tweet_btn_liked@2x.png in Resources */, + B1D5EF7E20BC06CB00983FB6 /* FileInfoViewController.xib in Resources */, + B1D5EF7F20BC06CB00983FB6 /* register_step_un@3x.png in Resources */, + B1D5EF8020BC06CB00983FB6 /* blankpage_image_Task@3x.png in Resources */, + B1D5EF8120BC06CB00983FB6 /* TweetSendCreateLocationCell.xib in Resources */, + B1D5EF8320BC06CB00983FB6 /* coding_emoji_36@2x.png in Resources */, + B1D5EF8420BC06CB00983FB6 /* n_btn_followed_yes@2x.png in Resources */, + B1D5EF8520BC06CB00983FB6 /* store_icon@2x.png in Resources */, + B1D5EF8620BC06CB00983FB6 /* vip_4_75@3x.png in Resources */, + B1D5EF8720BC06CB00983FB6 /* button_tip_notice@2x.png in Resources */, + B1D5EF8820BC06CB00983FB6 /* addPictureBgImage@2x.png in Resources */, + B16E6D0620C147770076026D /* team_info_order@2x.png in Resources */, + B1D5EF8920BC06CB00983FB6 /* PRReviewer@3x.png in Resources */, + B1D5EF8A20BC06CB00983FB6 /* button_tip_notice@3x.png in Resources */, + B1D5EF8B20BC06CB00983FB6 /* password_look@2x.png in Resources */, + B1D5EF8C20BC06CB00983FB6 /* SVWebViewControllerActivityReport-iPad@2x.png in Resources */, + B1D5EF8D20BC06CB00983FB6 /* PointLikeHead@3x.png in Resources */, + B1D5EF8E20BC06CB00983FB6 /* btn_file_reDo@2x.png in Resources */, + B1D5EF8F20BC06CB00983FB6 /* vip_4_30@2x.png in Resources */, + B1D5EF9020BC06CB00983FB6 /* mrpr_icon_fileChange@3x.png in Resources */, + B1D5EF9120BC06CB00983FB6 /* project_item_reading@3x.png in Resources */, + B1D5EF9220BC06CB00983FB6 /* icon_code_executable@2x.png in Resources */, + B1D5EF9320BC06CB00983FB6 /* user_info_company@3x.png in Resources */, + B1D5EF9420BC06CB00983FB6 /* upgrade_success@2x.png in Resources */, + B1D5EF9520BC06CB00983FB6 /* pop_Tweet@2x.png in Resources */, + B1D5EF9620BC06CB00983FB6 /* taskPriority1@2x.png in Resources */, + B1D5EF9720BC06CB00983FB6 /* search_icon_pr@2x.png in Resources */, + B1D5EF9820BC06CB00983FB6 /* logo_about@2x.png in Resources */, + B1D5EF9920BC06CB00983FB6 /* button_file_upload_enable@2x.png in Resources */, + B16E6DDC20C149440076026D /* intro_page0_ip6@2x.png in Resources */, + B1D5EF9A20BC06CB00983FB6 /* share_btn_qq@2x.png in Resources */, + B1D5EF9B20BC06CB00983FB6 /* PR_review@2x.png in Resources */, + B1D5EF9C20BC06CB00983FB6 /* pop_Message@2x.png in Resources */, + B1D5EF9D20BC06CB00983FB6 /* terminal_box_selected@2x.png in Resources */, + B1D5EF9E20BC06CB00983FB6 /* git_icon_watch@2x.png in Resources */, + B1D5EF9F20BC06CB00983FB6 /* icon_file_pdf_big@2x.png in Resources */, + B1D5EFA120BC06CB00983FB6 /* placeholder_coding_square_80@2x.png in Resources */, + B1D5EFA220BC06CB00983FB6 /* mrpr_icon_status_cannotmerge@2x.png in Resources */, + B1D5EFA420BC06CB00983FB6 /* loading_loop@2x.png in Resources */, + B1D5EFA520BC06CB00983FB6 /* code_release_resource_Task@3x.png in Resources */, + B1D5EFA620BC06CB00983FB6 /* PR_refuse@2x.png in Resources */, + B1D5EFA720BC06CB00983FB6 /* icon_topic_hotTop@2x.png in Resources */, + B1D5EFA820BC06CB00983FB6 /* wiki_revert@3x.png in Resources */, + B1D5EFA920BC06CB00983FB6 /* share_btn_qzone@2x.png in Resources */, + B1D5EFAA20BC06CB00983FB6 /* project_tag_btn@2x.png in Resources */, + B1D5EFAB20BC06CB00983FB6 /* tipIcon_BranchMember@2x.png in Resources */, + B1D5EFAC20BC06CB00983FB6 /* messageRight_bg_highlight_img@2x.png in Resources */, + B1D5EFAD20BC06CB00983FB6 /* tipIcon_PullRequestBean@2x.png in Resources */, + B1D5EFAE20BC06CB00983FB6 /* btn_privateMsg_friend@2x.png in Resources */, + B16E6CB620C13BF50076026D /* btn_next_enable@3x.png in Resources */, + B1D5EFAF20BC06CB00983FB6 /* btn_file_cancel@2x.png in Resources */, + B1D5EFB020BC06CB00983FB6 /* task_activity_icon_restore@3x.png in Resources */, + B1D5EFB120BC06CB00983FB6 /* user_info_file@3x.png in Resources */, + B1C60C8F20BFF7950073D3CA /* ProjectTypeExplanationViewController.xib in Resources */, + B1D5EFB220BC06CB00983FB6 /* shop_coding_coin_icon@2x.png in Resources */, + B1D5EFB320BC06CB00983FB6 /* shortcut_task@3x.png in Resources */, + B1D5EFB520BC06CB00983FB6 /* taskPriority1_small@3x.png in Resources */, + B1D5EFB620BC06CB00983FB6 /* tasks_all@3x.png in Resources */, + B16E6CEA20C145BF0076026D /* quick_menu_icon_project@2x.png in Resources */, + B1D5EFB720BC06CB00983FB6 /* coding_emoji_09@2x.png in Resources */, + B1D5EFB820BC06CB00983FB6 /* map_annotation@2x.png in Resources */, + B1D5EFB920BC06CB00983FB6 /* code_release_resource_MergeRequestBean@2x.png in Resources */, + B1D5EFBA20BC06CB00983FB6 /* task_resource_reference_ProjectTopic@2x.png in Resources */, + B1D5EFBB20BC06CB00983FB6 /* task_activity_icon_update@2x.png in Resources */, + B1D5EFBC20BC06CB00983FB6 /* button_file_activity@3x.png in Resources */, + B1D5EFBD20BC06CB00983FB6 /* coding_emoji_41@2x.png in Resources */, + B1D5EFBE20BC06CB00983FB6 /* project_item_task@3x.png in Resources */, + B1D5EFBF20BC06CB00983FB6 /* icon_code_image@2x.png in Resources */, + B1D5EFC020BC06CB00983FB6 /* icon_file_xls_big@2x.png in Resources */, + B16E6CD120C144930076026D /* done_un_Nav@3x.png in Resources */, + B1D5EFC120BC06CB00983FB6 /* user_info_topic@3x.png in Resources */, + B1D5EFC220BC06CB00983FB6 /* task_activity_icon_remove_watcher@2x.png in Resources */, + B1D5EFC320BC06CB00983FB6 /* project_item_reading@2x.png in Resources */, + B1D5EFC420BC06CB00983FB6 /* shop_nar_history_icon@2x.png in Resources */, + B1D5EFC520BC06CB00983FB6 /* taskPriority3_small@2x.png in Resources */, + B1D5EFC620BC06CB00983FB6 /* coding_emoji_18@2x.png in Resources */, + B1D5EFC720BC06CB00983FB6 /* user_info_about@3x.png in Resources */, + B1D5EFC820BC06CB00983FB6 /* WeiboSDK.bundle in Resources */, + B1D5EFC920BC06CB00983FB6 /* EAPayViewController.xib in Resources */, + B1D5EFCA20BC06CB00983FB6 /* calendar_0xA1CF64@3x.png in Resources */, + B16E6CE620C145BF0076026D /* quick_menu_icon_2fa@3x.png in Resources */, + B15C98B120D39CA200DDA425 /* project_icon_edit@2x.png in Resources */, + B1D5EFCB20BC06CB00983FB6 /* user_info_file@2x.png in Resources */, + B1D5EFCC20BC06CB00983FB6 /* ShopSwitchCell.xib in Resources */, + B1D5EFCD20BC06CB00983FB6 /* cell_arrow_left@2x.png in Resources */, + B1D5EFCE20BC06CB00983FB6 /* LICENSE in Resources */, + B1D5EFCF20BC06CB00983FB6 /* member_type_90@3x.png in Resources */, + B1D5EFD120BC06CB00983FB6 /* location_checkmark@2x.png in Resources */, + B1D5EFD220BC06CB00983FB6 /* icon_code_tree@2x.png in Resources */, + B1D5EFD320BC06CB00983FB6 /* nav_project_task@2x.png in Resources */, + B1D5EFD420BC06CB00983FB6 /* calendar_0xF68435@2x.png in Resources */, + B1D5EFD520BC06CB00983FB6 /* share_btn_evernote@2x.png in Resources */, + B1D5EFD620BC06CB00983FB6 /* project_item_branch@2x.png in Resources */, + B1D5EFD720BC06CB00983FB6 /* PR_push@2x.png in Resources */, + B1D5EFD820BC06CB00983FB6 /* vip_4_45@3x.png in Resources */, + B1D5EFD920BC06CB00983FB6 /* tipIcon_ProjectTopicCommentVote@2x.png in Resources */, + B1D5EFDB20BC06CB00983FB6 /* icon_file_share_logo@3x.png in Resources */, + B1D5EFDC20BC06CB00983FB6 /* calendar_0xF68435@3x.png in Resources */, + B1D5EFDD20BC06CB00983FB6 /* file_activity_icon_create@2x.png in Resources */, + B1D5EFDE20BC06CB00983FB6 /* tasks_all@2x.png in Resources */, + B1D5EFDF20BC06CB00983FB6 /* EACodeReleaseTopCell.xib in Resources */, + B1D5EFE020BC06CB00983FB6 /* merge-request coding@2x.png in Resources */, + B1C60CAC20C0FC750073D3CA /* Launch Screen_E.xib in Resources */, + B1D5EFE120BC06CB00983FB6 /* file_changeType_ADD@3x.png in Resources */, + B1D5EFE220BC06CB00983FB6 /* calendar_0xA9B3BE@3x.png in Resources */, + B1D5EFE320BC06CB00983FB6 /* messageLeft_bg_highlight_img@2x.png in Resources */, + B1D5EFE420BC06CB00983FB6 /* PR_update@3x.png in Resources */, + B1D5EFE520BC06CB00983FB6 /* nav_project_topic@2x.png in Resources */, + B1D5EFE620BC06CB00983FB6 /* share_btn_wxtimeline@2x.png in Resources */, + B1D5EFE720BC06CB00983FB6 /* icon_file_zip@2x.png in Resources */, + B1D5EFE820BC06CB00983FB6 /* me_normal@3x.png in Resources */, + B1D5EFE920BC06CB00983FB6 /* pop_Project@2x.png in Resources */, + B1D5EFEB20BC06CB00983FB6 /* logo_coding_top@2x.png in Resources */, + B1D5EFEC20BC06CB00983FB6 /* tipIcon_ProjectTweetComment@2x.png in Resources */, + B1D5EFED20BC06CB00983FB6 /* button_file_createFolder_enable@2x.png in Resources */, + B1D5EFEE20BC06CB00983FB6 /* wiki_menu_2@2x.png in Resources */, + B1D5EFEF20BC06CB00983FB6 /* skill_delete@2x.png in Resources */, + B1D5EFF020BC06CB00983FB6 /* calendar_0xF56061@2x.png in Resources */, + B1D5EFF120BC06CB00983FB6 /* project_selected@2x.png in Resources */, + B1D5EFF220BC06CB00983FB6 /* tipIcon_QcTask@2x.png in Resources */, + B1D5EFF320BC06CB00983FB6 /* time_clock_icon@2x.png in Resources */, + B1D5EFF420BC06CB00983FB6 /* tag_button_randomColor@2x.png in Resources */, + B1D5EFF520BC06CB00983FB6 /* blankpage_image_Notice@3x.png in Resources */, + B1D5EFF620BC06CB00983FB6 /* project_item_mr_pr@3x.png in Resources */, + B1D5EFF720BC06CB00983FB6 /* button_tip_close@2x.png in Resources */, + B1D5EFF820BC06CB00983FB6 /* task_activity_icon_reassign@2x.png in Resources */, + B16E6CA120C0FDB50076026D /* logo_coding_top@3x.png in Resources */, + B1D5EFF920BC06CB00983FB6 /* task_resource_reference_ProjectFile@2x.png in Resources */, + B1D5EFFA20BC06CB00983FB6 /* messageAT@2x.png in Resources */, + B1D5EFFB20BC06CB00983FB6 /* tweet_selected@2x.png in Resources */, + B1D5EFFC20BC06CB00983FB6 /* icon_file_code@2x.png in Resources */, + B1D5EFFE20BC06CB00983FB6 /* back_T_Nav@3x.png in Resources */, + B1D5EFFF20BC06CB00983FB6 /* me_selected@2x.png in Resources */, + B1D5F00020BC06CB00983FB6 /* tipIcon_PullRequestComment@2x.png in Resources */, + B1D5F00120BC06CB00983FB6 /* tipIcon_Depot@2x.png in Resources */, + B1D5F00220BC06CB00983FB6 /* cell_checkmark@2x.png in Resources */, + B1D5F00320BC06CB00983FB6 /* PR_add_label@2x.png in Resources */, + B1D5F00520BC06CB00983FB6 /* logo_coding@3x.png in Resources */, + B1D5F00620BC06CB00983FB6 /* PR_del_reviewer@2x.png in Resources */, + B1D5F00720BC06CB00983FB6 /* task_activity_icon_reassign@3x.png in Resources */, + B1D5F00820BC06CB00983FB6 /* placeholder_coding_square_150@2x.png in Resources */, + B1D5F00920BC06CB00983FB6 /* member_cell_edit_remove@2x.png in Resources */, + B1D5F00B20BC06CB00983FB6 /* PR_TaskResource@2x.png in Resources */, + B1D5F00C20BC06CB00983FB6 /* icon_file_share_logo@2x.png in Resources */, + B1D5F00D20BC06CB00983FB6 /* blankpage_image_Notice@2x.png in Resources */, + B1D5F00E20BC06CB00983FB6 /* placeholder_monkey_round_25@2x.png in Resources */, + B16E6CEE20C147490076026D /* team_bg@3x.png in Resources */, + B1D5F00F20BC06CB00983FB6 /* coding_emoji_gif_05@2x.png in Resources */, + B1D5F01020BC06CB00983FB6 /* addBtn_Artboard@3x.png in Resources */, + B1D5F01120BC06CB00983FB6 /* coding_emoji_22@2x.png in Resources */, + B1D5F01220BC06CB00983FB6 /* tweet_btn_rewarded@2x.png in Resources */, + B1D5F01320BC06CB00983FB6 /* button_file_move_enable@2x.png in Resources */, + B1D5F01420BC06CB00983FB6 /* messageSystem@3x.png in Resources */, + B1D5F01520BC06CB00983FB6 /* button_red_close@2x.png in Resources */, + B1D5F01620BC06CB00983FB6 /* blankpage_image_Wiki@3x.png in Resources */, + B1D5F01720BC06CB00983FB6 /* project_tag_icon@2x.png in Resources */, + B1D5F01820BC06CB00983FB6 /* button_terminal@3x.png in Resources */, + B1D5F01920BC06CB00983FB6 /* wiki_menu_0@3x.png in Resources */, + B1D5F01A20BC06CB00983FB6 /* PR_update_title@3x.png in Resources */, + B1D5F01B20BC06CB00983FB6 /* wiki.html in Resources */, + B1D5F01C20BC06CB00983FB6 /* task_activity_icon_update@3x.png in Resources */, + B1D5F01D20BC06CB00983FB6 /* timeline_line_read@2x.png in Resources */, + B1D5F01E20BC06CB00983FB6 /* git_icon_fork@2x.png in Resources */, + B1D5F01F20BC06CB00983FB6 /* tag_button_add@3x.png in Resources */, + B1D5F02020BC06CB00983FB6 /* taskProgress@3x.png in Resources */, + B1D5F02120BC06CB00983FB6 /* taskboard_blankpage@3x.png in Resources */, + B1D5F02320BC06CB00983FB6 /* blankpage_image_Task@2x.png in Resources */, + B1D5F02420BC06CB00983FB6 /* task_activity_icon_update_label@3x.png in Resources */, + B16E6DC620C149350076026D /* intro_dot_light_selected@3x.png in Resources */, + B1D5F02520BC06CB00983FB6 /* search_icon_mr@3x.png in Resources */, + B1D5F02620BC06CB00983FB6 /* blankpage_image_Tweet@3x.png in Resources */, + B1D5F02720BC06CB00983FB6 /* user_info_company@2x.png in Resources */, + B1D5F02820BC06CB00983FB6 /* scan_line@2x.png in Resources */, + B1D5F02920BC06CB00983FB6 /* README.md in Resources */, + B1D5F02A20BC06CB00983FB6 /* icon_file_unknown@2x.png in Resources */, + B1D5F02B20BC06CB00983FB6 /* search_icon_tweet@2x.png in Resources */, + B1D5F02C20BC06CB00983FB6 /* tip_bg@2x.png in Resources */, + B1D5F02D20BC06CB00983FB6 /* SVWebViewControllerActivityChrome-iPad@2x.png in Resources */, + B1D5F02E20BC06CB00983FB6 /* PR_grant@2x.png in Resources */, + B1D5F02F20BC06CB00983FB6 /* settingBtn_Nav@2x.png in Resources */, + B1D5F03020BC06CB00983FB6 /* user_info_topic@2x.png in Resources */, + B1D5F03120BC06CB00983FB6 /* project_item_file@2x.png in Resources */, + B1D5F03220BC06CB00983FB6 /* icon_arrow_searchHistory@2x.png in Resources */, + B16E6CB220C13BF50076026D /* btn_next_unable@3x.png in Resources */, + B1D5F03320BC06CB00983FB6 /* icon_file_movie_big@2x.png in Resources */, + B1D5F03420BC06CB00983FB6 /* icon_file_md_big@2x.png in Resources */, + B1D5F03520BC06CB00983FB6 /* nav_project_member@2x.png in Resources */, + B1D5F03620BC06CB00983FB6 /* blankpage_image_MessageList@2x.png in Resources */, + B1D5F03720BC06CB00983FB6 /* password_unlook@3x.png in Resources */, + B1D5F03820BC06CB00983FB6 /* timeline_icon_unread@3x.png in Resources */, + B16E6CA920C13BA20076026D /* btn_dismiss@2x.png in Resources */, + B1D5F03920BC06CB00983FB6 /* task_activity_icon_add_milestone@3x.png in Resources */, + B16E6DD720C149440076026D /* intro_page_unselected@2x.png in Resources */, + B1D5F03A20BC06CB00983FB6 /* pop_Message@3x.png in Resources */, + B1D5F03B20BC06CB00983FB6 /* EABoardTaskListBlankView.xib in Resources */, + B1D5F03C20BC06CB00983FB6 /* comment_bg@2x.png in Resources */, + B1D5F03D20BC06CB00983FB6 /* button_scan@2x.png in Resources */, + B1D5F03E20BC06CB00983FB6 /* terminal_triangle@3x.png in Resources */, + B1D5F03F20BC06CB00983FB6 /* tweetsBtn_Nav@2x.png in Resources */, + B1D5F04020BC06CB00983FB6 /* coding_emoji_12@2x.png in Resources */, + B1D5F04120BC06CB00983FB6 /* terminal_box_unselected@3x.png in Resources */, + B1D5F04420BC06CB00983FB6 /* terminal_tail@3x.png in Resources */, + B1D5F04520BC06CB00983FB6 /* task_normal@3x.png in Resources */, + B1D5F04620BC06CB00983FB6 /* vip_3_75@2x.png in Resources */, + B16E6DC720C149350076026D /* intro_dot_light_selected@2x.png in Resources */, + B1D5F04720BC06CB00983FB6 /* mock_hotTopiclist.geojson in Resources */, + B1D5F04820BC06CB00983FB6 /* icon_project_cell_pin@2x.png in Resources */, + B1D5F04920BC06CB00983FB6 /* pop_2FA@2x.png in Resources */, + B1D5F04A20BC06CB00983FB6 /* PR_add_reviewer@3x.png in Resources */, + B1D5F04B20BC06CB00983FB6 /* nav_project_file@2x.png in Resources */, + B1D5F04C20BC06CB00983FB6 /* user_info_shop@3x.png in Resources */, + B1D5F04D20BC06CB00983FB6 /* pop_Task@2x.png in Resources */, + B16E6CE020C145BF0076026D /* quick_menu_icon_task@3x.png in Resources */, + B1D5F04E20BC06CB00983FB6 /* section_btn_close@2x.png in Resources */, + B16E6CC320C13F5F0076026D /* btn_project_quit@3x.png in Resources */, + B1D5F04F20BC06CB00983FB6 /* country_code.plist in Resources */, + B1D5F05020BC06CB00983FB6 /* file_menu_icon_info@2x.png in Resources */, + B1D5F05120BC06CB00983FB6 /* coding_emoji_07@2x.png in Resources */, + B1D5F05220BC06CB00983FB6 /* project_item_taskboard@3x.png in Resources */, + B1D5F05320BC06CB00983FB6 /* merge-request coding@3x.png in Resources */, + B1D5F05520BC06CB00983FB6 /* blankpage_image_Team@3x.png in Resources */, + B1D5F05620BC06CB00983FB6 /* mrpr_icon_status_canmerge@2x.png in Resources */, + B16E6DC920C1493A0076026D /* intro_icon_wiki_up.gif in Resources */, + B1D5F05720BC06CB00983FB6 /* blankpage_image_MessageList@3x.png in Resources */, + B1D5F05820BC06CB00983FB6 /* taskPriority1_small@2x.png in Resources */, + B1D5F05920BC06CB00983FB6 /* me_selected@3x.png in Resources */, + B16E6D0C20C147770076026D /* team_info_mem@3x.png in Resources */, + B1D5F05A20BC06CB00983FB6 /* timeBtn_Nav@2x.png in Resources */, + B16E6DC020C1492F0076026D /* intro_dot_dark_unselected@3x.png in Resources */, + B1D5F05B20BC06CB00983FB6 /* bubble_right_play_0@2x.png in Resources */, + B1D5F05C20BC06CB00983FB6 /* ShopMutileValueCell.xib in Resources */, + B1D5F05D20BC06CB00983FB6 /* task_activity_icon_update_priority@3x.png in Resources */, + B1D5F05E20BC06CB00983FB6 /* icon_file_movie@2x.png in Resources */, + B1D5F05F20BC06CB00983FB6 /* file_menu_icon_open@2x.png in Resources */, + B1D5F06020BC06CB00983FB6 /* addBtn_Nav@2x.png in Resources */, + B1D5F06120BC06CB00983FB6 /* messageAT@3x.png in Resources */, + B1D5F06220BC06CB00983FB6 /* search_icon_file@3x.png in Resources */, + B1D5F06420BC06CB00983FB6 /* PR_review@3x.png in Resources */, + B1D5F06520BC06CB00983FB6 /* keyboard_emotion_monkey_gif@2x.png in Resources */, + B1D5F06620BC06CB00983FB6 /* coding_emoji_29@2x.png in Resources */, + B1D5F06720BC06CB00983FB6 /* file_activity_icon_move_file@2x.png in Resources */, + B16E6CCB20C144930076026D /* done_Nav@2x.png in Resources */, + B16E6DDE20C149440076026D /* intro_page0_ip6+@3x.png in Resources */, + B1D5F06820BC06CB00983FB6 /* addBtn_Nav@3x.png in Resources */, + B1D5F06920BC06CB00983FB6 /* vip_3_75@3x.png in Resources */, + B16E6DE020C1494B0076026D /* icon_user_monkey@2x.png in Resources */, + B1D5F06A20BC06CB00983FB6 /* info_Nav@3x.png in Resources */, + B1D5F06B20BC06CB00983FB6 /* terminal_more@2x.png in Resources */, + B1D5F06C20BC06CB00983FB6 /* task_selected@3x.png in Resources */, + B1D5F06D20BC06CB00983FB6 /* blankpage_image_Project@3x.png in Resources */, + B1D5F06E20BC06CB00983FB6 /* keyboard_emotion@2x.png in Resources */, + B1D5F06F20BC06CB00983FB6 /* button_file_history@2x.png in Resources */, + B1D5F07020BC06CB00983FB6 /* wechat@2x.png in Resources */, + B1D5F07120BC06CB00983FB6 /* coding_emoji_43@2x.png in Resources */, + B1D5F07220BC06CB00983FB6 /* tweet_btn_liked@3x.png in Resources */, + B1D5F07320BC06CB00983FB6 /* icon_file_music@2x.png in Resources */, + B1D5F07420BC06CB00983FB6 /* tipIcon_UserFollow@2x.png in Resources */, + B1D5F07520BC06CB00983FB6 /* icon_code_git_link@3x.png in Resources */, + B1D5F07620BC06CB00983FB6 /* file_changeType_RENAME@3x.png in Resources */, + B1D5F07720BC06CB00983FB6 /* member_type_100@3x.png in Resources */, + B1D5F07820BC06CB00983FB6 /* code_release_resource__Default@2x.png in Resources */, + B1D5F07920BC06CB00983FB6 /* button_close@2x.png in Resources */, + B16E6D1C20C147770076026D /* team_cell_edit_pro@2x.png in Resources */, + B1D5F07A20BC06CB00983FB6 /* PR_TaskResource@3x.png in Resources */, + B1D5F07C20BC06CB00983FB6 /* tipIcon_Project@2x.png in Resources */, + B1D5F07D20BC06CB00983FB6 /* icon_code_tree@3x.png in Resources */, + B1D5F07E20BC06CB00983FB6 /* pop_Task@3x.png in Resources */, + B1D5F07F20BC06CB00983FB6 /* tag_button_editColor@2x.png in Resources */, + B1D5F08020BC06CB00983FB6 /* icon_best_answer@3x.png in Resources */, + B1D5F08220BC06CB00983FB6 /* tip_bg@3x.png in Resources */, + B1D5F08320BC06CB00983FB6 /* addUserBtn_Nav@3x.png in Resources */, + B1D5F08420BC06CB00983FB6 /* taskOwner@3x.png in Resources */, + B16E6DDF20C149440076026D /* intro_page2_ip6@2x.png in Resources */, + B1D5F08520BC06CB00983FB6 /* addUserBtn_Nav@2x.png in Resources */, + B1D5F08620BC06CB00983FB6 /* mrpr_icon_status_accepted@3x.png in Resources */, + B1D5F08720BC06CB00983FB6 /* tweet_btn_reward@3x.png in Resources */, + B1D5F08820BC06CB00983FB6 /* member_cell_edit_remove@3x.png in Resources */, + B1D5F08A20BC06CB00983FB6 /* shortcut_tweet@3x.png in Resources */, + B1D5F08B20BC06CB00983FB6 /* coding_emoji_34@2x.png in Resources */, + B1D5F08C20BC06CB00983FB6 /* task_description_icon@3x.png in Resources */, + B1D5F08E20BC06CB00983FB6 /* me_info_arrow_left@2x.png in Resources */, + B1D5F08F20BC06CB00983FB6 /* keyboard_photo@2x.png in Resources */, + B1D5F09020BC06CB00983FB6 /* wechat@3x.png in Resources */, + B1D5F09220BC06CB00983FB6 /* text_clear_btn@2x.png in Resources */, + B16E6DC320C1492F0076026D /* intro_dot_dark_unselected@2x.png in Resources */, + B1D5F09320BC06CB00983FB6 /* task_normal@2x.png in Resources */, + B1D5F09420BC06CB00983FB6 /* icon_file_xls@2x.png in Resources */, + B1D5F09520BC06CB00983FB6 /* coding_emoji_gif_04@2x.png in Resources */, + B1D5F09620BC06CB00983FB6 /* messageProjectFans@2x.png in Resources */, + B1D5F09720BC06CB00983FB6 /* shop_nar_history_icon@3x.png in Resources */, + B16E6CC520C13F5F0076026D /* btn_privateMsg_stranger@3x.png in Resources */, + B1D5F09820BC06CB00983FB6 /* file_changeType_MODIFY@2x.png in Resources */, + B1D5F09920BC06CB00983FB6 /* project_normal@2x.png in Resources */, + B1D5F09A20BC06CB00983FB6 /* reward_tip_logo@2x.png in Resources */, + B1D5F09B20BC06CB00983FB6 /* taskProject@3x.png in Resources */, + B1D5F09C20BC06CB00983FB6 /* user_info_point@3x.png in Resources */, + B16E6D0820C147770076026D /* team_info_order@3x.png in Resources */, + B1D5F20A20BCF6A900983FB6 /* Launch Screen.xib in Resources */, + B1D5F09D20BC06CB00983FB6 /* icon_file_folder_default@2x.png in Resources */, + B1D5F09E20BC06CB00983FB6 /* icon_code_file@3x.png in Resources */, + B1D5F09F20BC06CB00983FB6 /* project_item_readme@2x.png in Resources */, + B1D5F0A020BC06CB00983FB6 /* EACodeBranchListCell.xib in Resources */, + B1D5F0A120BC06CB00983FB6 /* code_release_resource_Default@3x.png in Resources */, + B1D5F0A220BC06CB00983FB6 /* info_Nav@2x.png in Resources */, + B1D5F0A420BC06CB00983FB6 /* file_activity_icon_update_file@3x.png in Resources */, + B1D5F0A520BC06CB00983FB6 /* bubble.html in Resources */, + B1D5F0A620BC06CB00983FB6 /* coding_emoji_gif_06@2x.png in Resources */, + B1D5F0A820BC06CB00983FB6 /* project_item_member@2x.png in Resources */, + B1D5F0A920BC06CB00983FB6 /* tipIcon_Tweet@2x.png in Resources */, + B1D5F0AA20BC06CB00983FB6 /* coding_emoji_04@2x.png in Resources */, + B16E6DD620C149440076026D /* intro_page_selected@2x.png in Resources */, + B1D5F0AB20BC06CB00983FB6 /* nav_tweet_hot@2x.png in Resources */, + B1D5F0AC20BC06CB00983FB6 /* project_item_topic@2x.png in Resources */, + B1D5F0AD20BC06CB00983FB6 /* wiki_menu_1@2x.png in Resources */, + B1D5F0AE20BC06CB00983FB6 /* file_activity_icon_move_file@3x.png in Resources */, + B1D5F0AF20BC06CB00983FB6 /* icon_file_md@2x.png in Resources */, + B1D5F0B020BC06CB00983FB6 /* tweet_normal@2x.png in Resources */, + B1D5F0B120BC06CB00983FB6 /* PR_review_undo@2x.png in Resources */, + B1D5F0B220BC06CB00983FB6 /* blankpage_image_Tweet@2x.png in Resources */, + B16E6DDB20C149440076026D /* intro_page_selected@3x.png in Resources */, + B1D5F0B320BC06CB00983FB6 /* taskBoardList@3x.png in Resources */, + B1D5F0B420BC06CB00983FB6 /* search_tweet_like@2x.png in Resources */, + B1D5F0B520BC06CB00983FB6 /* scan_bg@2x.png in Resources */, + B16E6DCF20C1493A0076026D /* intro_icon_code_down.gif in Resources */, + B1D5F0B620BC06CB00983FB6 /* task_icon_arrow@3x.png in Resources */, + B1D5F0B720BC06CB00983FB6 /* n_btn_followed_not@2x.png in Resources */, + B1D5F0B820BC06CB00983FB6 /* section_btn_open@2x.png in Resources */, + B1D5F0BA20BC06CB00983FB6 /* task_resource_reference_ProjectTopic@3x.png in Resources */, + B1D5F0BB20BC06CB00983FB6 /* skill_delete@3x.png in Resources */, + B1D5F0BD20BC06CB00983FB6 /* button_file_move_unable@2x.png in Resources */, + B1D5F0BE20BC06CB00983FB6 /* mock_topicAdlist.geojson in Resources */, + B1D5F0BF20BC06CB00983FB6 /* placeholder_coding_square_55@2x.png in Resources */, + B1D5F0C020BC06CB00983FB6 /* pop_Project@3x.png in Resources */, + B1D5F0C120BC06CB00983FB6 /* task_activity_icon_remove_milestone@3x.png in Resources */, + B1D5F0C220BC06CB00983FB6 /* button_file_download_unable@3x.png in Resources */, + B1D5F0C320BC06CB00983FB6 /* search_icon_task@2x.png in Resources */, + B1D5F0C420BC06CB00983FB6 /* code_release_resource_Task@2x.png in Resources */, + B1D5F0C520BC06CB00983FB6 /* moreBtn_Nav@3x.png in Resources */, + B1D5F0C620BC06CB00983FB6 /* tweet_comment_btn@3x.png in Resources */, + B1D5F0C720BC06CB00983FB6 /* vip_3_30@2x.png in Resources */, + B1D5F0C820BC06CB00983FB6 /* PR_del_label@3x.png in Resources */, + B1D5F0C920BC06CB00983FB6 /* blankpage_image_Team@2x.png in Resources */, + B1D5F0CA20BC06CB00983FB6 /* icon_release_tag_blue@2x.png in Resources */, + B16E6D1A20C147770076026D /* team_cell_edit_pro@3x.png in Resources */, + B1D5F0CB20BC06CB00983FB6 /* btn_privateMsg_stranger@2x.png in Resources */, + B1D5F0CC20BC06CB00983FB6 /* project_item_wiki@3x.png in Resources */, + B1D5F0CD20BC06CB00983FB6 /* STARTIMAGE.jpg in Resources */, + B1D5F0CE20BC06CB00983FB6 /* messageComment@3x.png in Resources */, + B1D5F0CF20BC06CB00983FB6 /* coding_emoji_02@2x.png in Resources */, + B1D5F0D020BC06CB00983FB6 /* checkbox_checked@2x.png in Resources */, + B1D5F0D120BC06CB00983FB6 /* taskboard_blankpage@2x.png in Resources */, + B1D5F0D220BC06CB00983FB6 /* member_cell_edit_type@3x.png in Resources */, + B1D5F0D320BC06CB00983FB6 /* PR_del_label@2x.png in Resources */, + B1D5F0D420BC06CB00983FB6 /* SVWebViewController.strings in Resources */, + B1D5F0D520BC06CB00983FB6 /* blankpage_image_Topic@3x.png in Resources */, + B1D5F0D720BC06CB00983FB6 /* placeholder_monkey_round_33@2x.png in Resources */, + B1D5F0D820BC06CB00983FB6 /* coding_emoji_30@2x.png in Resources */, + B1D5F0D920BC06CB00983FB6 /* project_item_code@2x.png in Resources */, + B16E6DCD20C1493A0076026D /* intro_icon_file_down.gif in Resources */, + B1D5F0DA20BC06CB00983FB6 /* search_icon_user@3x.png in Resources */, + B1D5F0DB20BC06CB00983FB6 /* code_release_resource_MergeRequestBean@3x.png in Resources */, + B1D5F0DD20BC06CB00983FB6 /* blankpage_image_Default@2x.png in Resources */, + B1D5F0DE20BC06CB00983FB6 /* project_item_tag@2x.png in Resources */, + B1D5F0DF20BC06CB00983FB6 /* PRReviewer@2x.png in Resources */, + B1D5F0E020BC06CB00983FB6 /* login_wechat@2x.png in Resources */, + B1D5F0E120BC06CB00983FB6 /* task_activity_icon_finish@3x.png in Resources */, + B1D5F0E220BC06CB00983FB6 /* taskboard_normal_page_unselected@3x.png in Resources */, + B1D5F0E420BC06CB00983FB6 /* nav_page_selected@2x.png in Resources */, + B1D5F0E520BC06CB00983FB6 /* coding_emoji_28@2x.png in Resources */, + B1D5F0E720BC06CB00983FB6 /* placeholder_monkey_round_50@2x.png in Resources */, + B1D5F0E820BC06CB00983FB6 /* vip_3_45@2x.png in Resources */, + B1D5F0E920BC06CB00983FB6 /* n_sex_man_icon@2x.png in Resources */, + B1D5F0EA20BC06CB00983FB6 /* AppIcon120x120.png in Resources */, + B1D5F0EB20BC06CB00983FB6 /* privatemessage_selected@2x.png in Resources */, + B1D5F0EC20BC06CB00983FB6 /* coding_emoji_gif_07@2x.png in Resources */, + B1D5F0ED20BC06CB00983FB6 /* calendar_0x59A2FF@2x.png in Resources */, + B1D5F0EE20BC06CB00983FB6 /* file_activity_icon_rename@3x.png in Resources */, + B1D5F0EF20BC06CB00983FB6 /* button_file_denete_enable@3x.png in Resources */, + B1D5F0F020BC06CB00983FB6 /* coding_emoji_32@2x.png in Resources */, + B1D5F0F120BC06CB00983FB6 /* coding_emoji_16@2x.png in Resources */, + B1D5F0F220BC06CB00983FB6 /* icon_triangle@3x.png in Resources */, + B1D5F0F320BC06CB00983FB6 /* mrpr_icon_arrow@3x.png in Resources */, + B1D5F0F420BC06CB00983FB6 /* comment_bg@3x.png in Resources */, + B1D5F0F620BC06CB00983FB6 /* btn_followed_both@2x.png in Resources */, + B1D5F0F720BC06CB00983FB6 /* PR_refuse@3x.png in Resources */, + B1D5F0F820BC06CB00983FB6 /* shortcut_tweet@2x.png in Resources */, + B1D5F0F920BC06CB00983FB6 /* vip_3_30@3x.png in Resources */, + B1D5F0FA20BC06CB00983FB6 /* coding_emoji_42@2x.png in Resources */, + B1D5F0FB20BC06CB00983FB6 /* coding_emoji_31@2x.png in Resources */, + B1D5F0FC20BC06CB00983FB6 /* user_info_setup@2x.png in Resources */, + B1D5F0FD20BC06CB00983FB6 /* calendar_0xF56061@3x.png in Resources */, + B16E6CCD20C144930076026D /* done_Nav@3x.png in Resources */, + B1D5F0FE20BC06CB00983FB6 /* blankpage_image_File@2x.png in Resources */, + B1D5F0FF20BC06CB00983FB6 /* icon_add_comment@3x.png in Resources */, + B1D5F10020BC06CB00983FB6 /* button_file_download_enable@2x.png in Resources */, + B1D5F10120BC06CB00983FB6 /* keyboard_page_selected@2x.png in Resources */, + B1D5F10220BC06CB00983FB6 /* taskPriority3@3x.png in Resources */, + B16E6CE820C145BF0076026D /* quick_menu_icon_2fa@2x.png in Resources */, + B1D5F10320BC06CB00983FB6 /* code.html in Resources */, + B1D5F10420BC06CB00983FB6 /* timeline_icon_read@3x.png in Resources */, + B1D5F10520BC06CB00983FB6 /* file_activity_icon_delete_history@3x.png in Resources */, + B1D5F10620BC06CB00983FB6 /* mrpr_icon_commit@2x.png in Resources */, + B1D5F10720BC06CB00983FB6 /* editBoardList@2x.png in Resources */, + B1D5F10820BC06CB00983FB6 /* pop_User@2x.png in Resources */, + B1D5F10920BC06CB00983FB6 /* keyboard_add_photo@2x.png in Resources */, + B1D5F10A20BC06CB00983FB6 /* member_cell_edit_type@2x.png in Resources */, + B1D5F10B20BC06CB00983FB6 /* wiki_menu_icon_delete@2x.png in Resources */, + B1D5F10C20BC06CB00983FB6 /* file_menu_icon_edit@2x.png in Resources */, + B1D5F10D20BC06CB00983FB6 /* AboutPointViewController.xib in Resources */, + B16E6D0E20C147770076026D /* team_info_mem@2x.png in Resources */, + B1D5F10E20BC06CB00983FB6 /* address.json in Resources */, + B1D5F10F20BC06CB00983FB6 /* reward_tip_logo@3x.png in Resources */, + B1D5F11020BC06CB00983FB6 /* code_release_resource_ProjectFile@2x.png in Resources */, + B1D5F11120BC06CB00983FB6 /* share_Nav@3x.png in Resources */, + B1D5F11220BC06CB00983FB6 /* task_activity_icon_add_milestone@2x.png in Resources */, + B1D5F11320BC06CB00983FB6 /* share_btn_copylink@2x.png in Resources */, + B1D5F11420BC06CB00983FB6 /* project_item_branch@3x.png in Resources */, + B1D5F11620BC06CB00983FB6 /* bubble_left_play_0@2x.png in Resources */, + B1D5F11720BC06CB00983FB6 /* little_phone_icon@3x.png in Resources */, + B1D5F11820BC06CB00983FB6 /* icon_file_ppt@2x.png in Resources */, + B1D5F11920BC06CB00983FB6 /* member_type_75@2x.png in Resources */, + B1D5F11A20BC06CB00983FB6 /* icon_search_searchbar@2x.png in Resources */, + B1D5F11B20BC06CB00983FB6 /* register_step_ed@2x.png in Resources */, + B1D5F11C20BC06CB00983FB6 /* project_normal@3x.png in Resources */, + B1D5F11D20BC06CB00983FB6 /* button_terminal@2x.png in Resources */, + B1D5F11E20BC06CB00983FB6 /* privatemessage_normal@2x.png in Resources */, + B1D5F11F20BC06CB00983FB6 /* tipIcon_ProjectMember@2x.png in Resources */, + B1D5F12020BC06CB00983FB6 /* file_activity_icon_rename@2x.png in Resources */, + B1D5F12120BC06CB00983FB6 /* code_release_resource_ProjectTopic@2x.png in Resources */, + B1D5F12220BC06CB00983FB6 /* coding_emoji_17@2x.png in Resources */, + B1D5F12320BC06CB00983FB6 /* messageLeft_bg_img@2x.png in Resources */, + B1D5F12420BC06CB00983FB6 /* search_icon_project@2x.png in Resources */, + B1D5F12520BC06CB00983FB6 /* mrpr_icon_status_cancel@2x.png in Resources */, + B1D5F12620BC06CB00983FB6 /* mrpr_icon_status_cancel@3x.png in Resources */, + B1D5F12720BC06CB00983FB6 /* button_file_createFolder_enable@3x.png in Resources */, + B16E6DD020C149440076026D /* intro_page0_ip5@2x.png in Resources */, + B1D5F12820BC06CB00983FB6 /* PR_mergeChanges@2x.png in Resources */, + B1D5F12920BC06CB00983FB6 /* coding_emoji_20@2x.png in Resources */, + B1D5F12A20BC06CB00983FB6 /* Images.xcassets in Resources */, + B1D5F12B20BC06CB00983FB6 /* task_icon_arrow@2x.png in Resources */, + B1D5F12C20BC06CB00983FB6 /* mrpr_icon_refaused@2x.png in Resources */, + B1D5F12D20BC06CB00983FB6 /* loading_monkey@2x.png in Resources */, + B1D5F12E20BC06CB00983FB6 /* coding_emoji_01@2x.png in Resources */, + B1D5F12F20BC06CB00983FB6 /* taskPriority0@3x.png in Resources */, + B16E6D1620C147770076026D /* team_cell_edit_delete@3x.png in Resources */, + B1D5F13020BC06CB00983FB6 /* taskPriority3_small@3x.png in Resources */, + B1D5F13120BC06CB00983FB6 /* taskResourceReference@2x.png in Resources */, + B1D5F13220BC06CB00983FB6 /* tipIcon_MergeRequestBean@2x.png in Resources */, + B1D5F13320BC06CB00983FB6 /* button_file_denete_enable@2x.png in Resources */, + B1D5F13520BC06CB00983FB6 /* dot_line@2x.png in Resources */, + B1D5F13620BC06CB00983FB6 /* PR_grant_undo@3x.png in Resources */, + B1D5F13720BC06CB00983FB6 /* PR_add_watcher@3x.png in Resources */, + B1D5F13820BC06CB00983FB6 /* coding_emoji_gif_01@2x.png in Resources */, + B1D5F13920BC06CB00983FB6 /* addBtn_Artboard@2x.png in Resources */, + B1D5F13B20BC06CB00983FB6 /* project_item_wiki@2x.png in Resources */, + B1D5F13C20BC06CB00983FB6 /* member_type_90@2x.png in Resources */, + B1D5F13D20BC06CB00983FB6 /* share_btn_inform@2x.png in Resources */, + B1D5F13E20BC06CB00983FB6 /* back_green_Nav@3x.png in Resources */, + B1D5F13F20BC06CB00983FB6 /* README.textile in Resources */, + B1D5F14020BC06CB00983FB6 /* PR_del_reviewer@3x.png in Resources */, + B1D5F14120BC06CB00983FB6 /* search_icon_task@3x.png in Resources */, + B1D5F14220BC06CB00983FB6 /* task_activity_icon_remove_milestone@2x.png in Resources */, + B1D5F14320BC06CB00983FB6 /* checkbox_unchecked@3x.png in Resources */, + B1D5F14420BC06CB00983FB6 /* coding_emoji_06@2x.png in Resources */, + B1D5F14520BC06CB00983FB6 /* button_tip_close@3x.png in Resources */, + B1D5F14620BC06CB00983FB6 /* blankpage_image_ShopOrder@2x.png in Resources */, + B1D5F14720BC06CB00983FB6 /* coding_emoji_40@2x.png in Resources */, + B1D5F14820BC06CB00983FB6 /* blankpage_image_Default@3x.png in Resources */, + B1D5F14920BC06CB00983FB6 /* member_cell_edit_alias@2x.png in Resources */, + B1D5F14A20BC06CB00983FB6 /* messageRight_bg_img@2x.png in Resources */, + B1D5F14B20BC06CB00983FB6 /* project_item_taskboard@2x.png in Resources */, + B1D5F14C20BC06CB00983FB6 /* nav_page_selected@3x.png in Resources */, + B1D5F14D20BC06CB00983FB6 /* terminal_more@3x.png in Resources */, + B16E6CCF20C144930076026D /* done_un_Nav@2x.png in Resources */, + B1D5F14E20BC06CB00983FB6 /* btn_setFrequent@3x.png in Resources */, + B1D5F14F20BC06CB00983FB6 /* tweet_normal@3x.png in Resources */, + B1D5F15020BC06CB00983FB6 /* icon_search_clock@2x.png in Resources */, + B1D5F15120BC06CB00983FB6 /* taskPriority2@2x.png in Resources */, + B1D5F15220BC06CB00983FB6 /* file_activity_icon_upload_file@2x.png in Resources */, + B1D5F15320BC06CB00983FB6 /* tip_normal_Nav@2x.png in Resources */, + B1D5F15420BC06CB00983FB6 /* search_icon_user@2x.png in Resources */, + B16E6DC520C149350076026D /* intro_dot_light_unselected@3x.png in Resources */, + B1D5F15520BC06CB00983FB6 /* button_file_denete_unable@2x.png in Resources */, + B1D5F15620BC06CB00983FB6 /* nav_page_unselected@3x.png in Resources */, + B1D5F15720BC06CB00983FB6 /* EmojisList.plist in Resources */, + B1D5F15820BC06CB00983FB6 /* keyboard_topic@2x.png in Resources */, + B1D5F15920BC06CB00983FB6 /* project_item_tag@3x.png in Resources */, + B1D5F15A20BC06CB00983FB6 /* add_user_icon@2x.png in Resources */, + B1D5F15B20BC06CB00983FB6 /* coding_emoji_11@2x.png in Resources */, + B16E6DDD20C149440076026D /* intro_page2_ip4@2x.png in Resources */, + B1D5F15C20BC06CB00983FB6 /* coding_emoji_gif_02@2x.png in Resources */, + B1D5F15D20BC06CB00983FB6 /* n_sex_woman_icon@2x.png in Resources */, + B1D5F15E20BC06CB00983FB6 /* vip_4_30@3x.png in Resources */, + B1D5F15F20BC06CB00983FB6 /* taskPriority@3x.png in Resources */, + B1D5F16020BC06CB00983FB6 /* tipIcon_TeamMember@2x.png in Resources */, + B1D5F16120BC06CB00983FB6 /* keyboard_emotion_delete@2x.png in Resources */, + B1D5F16220BC06CB00983FB6 /* nav_tweet_friend@2x.png in Resources */, + B1D5F16320BC06CB00983FB6 /* nav_tweet_mine@2x.png in Resources */, + B1D5F16420BC06CB00983FB6 /* shortcut_2FA@3x.png in Resources */, + B1D5F16520BC06CB00983FB6 /* PR_add@3x.png in Resources */, + B1D5F16620BC06CB00983FB6 /* code_release_resource_Zip@3x.png in Resources */, + B1D5F16720BC06CB00983FB6 /* taskboard_add_page_unselected@3x.png in Resources */, + B1D5F16820BC06CB00983FB6 /* blankpage_image_Activity@3x.png in Resources */, + B1D5F16920BC06CB00983FB6 /* pop_Tweet@3x.png in Resources */, + B1D5F16A20BC06CB00983FB6 /* icon_code_image@3x.png in Resources */, + B1D5F16B20BC06CB00983FB6 /* taskboard_normal_page_selected@3x.png in Resources */, + B1D5F16D20BC06CB00983FB6 /* icon_file_txt_big@2x.png in Resources */, + B1D5F16E20BC06CB00983FB6 /* git_icon_stared@2x.png in Resources */, + B1D5F16F20BC06CB00983FB6 /* search_icon_mr@2x.png in Resources */, + B1D5F17020BC06CB00983FB6 /* button_download_cancel@2x.png in Resources */, + B1D5F17120BC06CB00983FB6 /* SVWebViewController.bundle in Resources */, + B1D5F17220BC06CB00983FB6 /* register_step_ed@3x.png in Resources */, + B1D5F17320BC06CB00983FB6 /* keyboard_emotion_emoji_code@2x.png in Resources */, + B1D5F17420BC06CB00983FB6 /* cell_arrow_left@3x.png in Resources */, + B1D5F17520BC06CB00983FB6 /* vip_3_40@2x.png in Resources */, + B1D5F17620BC06CB00983FB6 /* icon_code_git_link@2x.png in Resources */, + B1D5F17720BC06CB00983FB6 /* icon_add_comment@2x.png in Resources */, + B1D5F17920BC06CB00983FB6 /* icon_file_code_big@2x.png in Resources */, + B1D5F17A20BC06CB00983FB6 /* file_changeType_DELETE@3x.png in Resources */, + B1D5F17B20BC06CB00983FB6 /* tweet_more_comment_icon@2x.png in Resources */, + B1D5F17C20BC06CB00983FB6 /* task_activity_icon_add_watcher@2x.png in Resources */, + B1D5F17D20BC06CB00983FB6 /* tipIcon_TweetLike@2x.png in Resources */, + B16E6DCB20C1493A0076026D /* intro_icon_code_up.gif in Resources */, + B1D5F17E20BC06CB00983FB6 /* blankpage_image_LoadFail@2x.png in Resources */, + B1D5F17F20BC06CB00983FB6 /* gif_mark@2x.png in Resources */, + B1D5F18020BC06CB00983FB6 /* icon_file_cell_delete@2x.png in Resources */, + B1D5F18120BC06CB00983FB6 /* blankpage_image_Topic@2x.png in Resources */, + B1D5F18220BC06CB00983FB6 /* MJPhotoBrowser.bundle in Resources */, + B1D5F18320BC06CB00983FB6 /* icon_file_folder_share@2x.png in Resources */, + B1D5F18420BC06CB00983FB6 /* search_icon_pr@3x.png in Resources */, + B1D5F18520BC06CB00983FB6 /* SVWebViewControllerActivityChrome@2x.png in Resources */, + B1D5F18620BC06CB00983FB6 /* taskboard_add_page_selected@3x.png in Resources */, + B1D5F18720BC06CB00983FB6 /* SVWebViewControllerActivitySafari@2x.png in Resources */, + B1D5F18820BC06CB00983FB6 /* editBoardList@3x.png in Resources */, + B1D5F18A20BC06CB00983FB6 /* PR_add@2x.png in Resources */, + B1D5F18B20BC06CB00983FB6 /* tweet_btn_reward@2x.png in Resources */, + B1D5F18C20BC06CB00983FB6 /* project_item_mr_pr@2x.png in Resources */, + B16E6DC220C1492F0076026D /* intro_dot_dark_selected@2x.png in Resources */, + B1D5F18D20BC06CB00983FB6 /* user_info_point@2x.png in Resources */, + B1D5F18E20BC06CB00983FB6 /* btn_fliter_down@2x.png in Resources */, + B1D5F18F20BC06CB00983FB6 /* nav_project_activity@2x.png in Resources */, + B16E6CE420C145BF0076026D /* quick_menu_icon_project@3x.png in Resources */, + B1D5F19020BC06CB00983FB6 /* file_changeType_RENAME@2x.png in Resources */, + B1D5F19120BC06CB00983FB6 /* blankpage_image_Tip@3x.png in Resources */, + B1D5F19220BC06CB00983FB6 /* ProjectSetting.storyboard in Resources */, + B1D5F19320BC06CB00983FB6 /* icon_release_tag@3x.png in Resources */, + B1D5F19420BC06CB00983FB6 /* timeline_icon_unread@2x.png in Resources */, + B1D5F19520BC06CB00983FB6 /* user_info_edit@2x.png in Resources */, + B1D5F19620BC06CB00983FB6 /* AlipaySDK.bundle in Resources */, + B16E6D0220C147770076026D /* team_info_pro@3x.png in Resources */, + B1D5F19720BC06CB00983FB6 /* banner__page_selected@2x.png in Resources */, + B16E6CE220C145BF0076026D /* quick_menu_icon_task@2x.png in Resources */, + B1D5F19820BC06CB00983FB6 /* task_resource_reference_MergeRequestBean@3x.png in Resources */, + B1D5F19920BC06CB00983FB6 /* tipIcon_ProjectFileComment@2x.png in Resources */, + B1D5F19A20BC06CB00983FB6 /* SVWebViewControllerActivitySafari-iPad@2x.png in Resources */, + B1D5F19B20BC06CB00983FB6 /* icon_not_locationed@2x.png in Resources */, + B1D5F19C20BC06CB00983FB6 /* checkbox_unchecked@2x.png in Resources */, + B1D5F19D20BC06CB00983FB6 /* icon_file_psd_big@2x.png in Resources */, + B16E6CB020C13BF50076026D /* btn_next_unable@2x.png in Resources */, + B1D5F19E20BC06CB00983FB6 /* timeline_icon_read@2x.png in Resources */, + B1D5F19F20BC06CB00983FB6 /* topic_add_watcher_btn@3x.png in Resources */, + B1D5F1A020BC06CB00983FB6 /* coding_emoji_27@2x.png in Resources */, + B1D5F1A120BC06CB00983FB6 /* QBImagePicker.strings in Resources */, + B1D5F1A220BC06CB00983FB6 /* icon_file_zip_big@2x.png in Resources */, + B16E6D1220C147770076026D /* team_cell_edit_team@3x.png in Resources */, + B1D5F1A320BC06CB00983FB6 /* messageProjectFollows@3x.png in Resources */, + B1D5F1A420BC06CB00983FB6 /* tipIcon_CommitLineNote@2x.png in Resources */, + B1D5F1A520BC06CB00983FB6 /* wiki_revert@2x.png in Resources */, + B1D5F1A620BC06CB00983FB6 /* search_icon_tweet@3x.png in Resources */, + B1D5F1A720BC06CB00983FB6 /* taskPriority0_small@3x.png in Resources */, + B16E6DD520C149440076026D /* intro_page1_ip6+@3x.png in Resources */, + B1D5F1A820BC06CB00983FB6 /* coding_emoji_24@2x.png in Resources */, + B1D5F1A920BC06CB00983FB6 /* PointLikeHead@2x.png in Resources */, + B1D5F1AA20BC06CB00983FB6 /* coding_emoji_10@2x.png in Resources */, + B1D5F1AB20BC06CB00983FB6 /* me_normal@2x.png in Resources */, + B1D5F1AC20BC06CB00983FB6 /* taskPriority2@3x.png in Resources */, + B1D5F1AD20BC06CB00983FB6 /* blankpage_image_Activity@2x.png in Resources */, + B1DFD0A820C67D3F00F75F2F /* btn_privateMsg_friend@3x.png in Resources */, + B1D5F1AE20BC06CB00983FB6 /* coding_emoji_33@2x.png in Resources */, + B1D5F1AF20BC06CB00983FB6 /* coding_emoji_23@2x.png in Resources */, + B1D5F1B020BC06CB00983FB6 /* taskPriority@2x.png in Resources */, + B1D5F1B120BC06CB00983FB6 /* code_release_resource_ProjectFile@3x.png in Resources */, + B1D5F1B220BC06CB00983FB6 /* tipIcon_Task@2x.png in Resources */, + B1D5F1B320BC06CB00983FB6 /* icon_code_file@2x.png in Resources */, + B1D5F1B420BC06CB00983FB6 /* task_activity_icon_update_description@2x.png in Resources */, + B1D5F1B520BC06CB00983FB6 /* git_icon_star@2x.png in Resources */, + B1D5F1B620BC06CB00983FB6 /* task_description_icon@2x.png in Resources */, + B1D5F1B720BC06CB00983FB6 /* tag_button_editColor@3x.png in Resources */, + B1D5F1B820BC06CB00983FB6 /* moreBtn_Nav@2x.png in Resources */, + B1D5F1BB20BC06CB00983FB6 /* coding_emoji_19@2x.png in Resources */, + B1D5F1BC20BC06CB00983FB6 /* PR_review_undo@3x.png in Resources */, + B1D5F1BD20BC06CB00983FB6 /* taskPriority1@3x.png in Resources */, + B1D5F1BE20BC06CB00983FB6 /* alipay@3x.png in Resources */, + B16E6D0420C147770076026D /* team_info_pro@2x.png in Resources */, + B1D5F1BF20BC06CB00983FB6 /* PR_more@3x.png in Resources */, + B1D5F1C020BC06CB00983FB6 /* share_btn_wxsession@2x.png in Resources */, + B1D5F1C120BC06CB00983FB6 /* task_activity_icon_MergeRequestBean@2x.png in Resources */, + B1D5F1C220BC06CB00983FB6 /* icon_file_txt@2x.png in Resources */, + B1D5F1C320BC06CB00983FB6 /* project_item_member@3x.png in Resources */, + B1D5F1C420BC06CB00983FB6 /* timeline_line_unread@2x.png in Resources */, + B1D5F1C520BC06CB00983FB6 /* tip_2FA@2x.png in Resources */, + B1D5F1C620BC06CB00983FB6 /* PR_add_label@3x.png in Resources */, + B1D5F1C720BC06CB00983FB6 /* back_T_Nav@2x.png in Resources */, + B1D5F1C820BC06CB00983FB6 /* checkbox_checked@3x.png in Resources */, + B1D5F1C920BC06CB00983FB6 /* coding_emoji_05@2x.png in Resources */, + B1D5F1CA20BC06CB00983FB6 /* alipay@2x.png in Resources */, + B1DFD0A420C67D3F00F75F2F /* btn_followed_not@3x.png in Resources */, + B16E6DD820C149440076026D /* intro_page0_ip4@2x.png in Resources */, + B1D5F1CC20BC06CB00983FB6 /* taskPriority0@2x.png in Resources */, + B1D5F1CD20BC06CB00983FB6 /* task_activity_icon_update_label@2x.png in Resources */, + B1D5F1CE20BC06CB00983FB6 /* wiki_menu_2@3x.png in Resources */, + B1D5F1CF20BC06CB00983FB6 /* blankpage_image_Tip@2x.png in Resources */, + B1D5F1D020BC06CB00983FB6 /* keyboard_add_camera@2x.png in Resources */, + B16E6DCE20C1493A0076026D /* intro_icon_task_down.gif in Resources */, + B1D5F1D120BC06CB00983FB6 /* btn_fliter_down@3x.png in Resources */, + B1D5F1D220BC06CB00983FB6 /* topic-ios.html in Resources */, + B1D5F1D320BC06CB00983FB6 /* user_info_help@2x.png in Resources */, + B1D5F1D420BC06CB00983FB6 /* SVWebViewControllerActivitySafari-iPad.png in Resources */, + B1D5F1D520BC06CB00983FB6 /* icon_triangle@2x.png in Resources */, + B1D5F1D620BC06CB00983FB6 /* comment_count_top_line@2x.png in Resources */, + B1D5F1D720BC06CB00983FB6 /* keyboard_voice_record@2x.png in Resources */, + B1D5F1D820BC06CB00983FB6 /* icon_file_music_big@2x.png in Resources */, + B1D5F1D920BC06CB00983FB6 /* password_unlook@2x.png in Resources */, + B1D5F1DA20BC06CB00983FB6 /* coding_emoji_gif_03@2x.png in Resources */, + B1D5F1DB20BC06CB00983FB6 /* mrpr_icon_arrow@2x.png in Resources */, + B1D5F1DC20BC06CB00983FB6 /* vip_3_45@3x.png in Resources */, + B1D5F1DD20BC06CB00983FB6 /* splitlineImg@2x.png in Resources */, + B1D5F1DE20BC06CB00983FB6 /* button_file_move_enable@3x.png in Resources */, + B1D5F1DF20BC06CB00983FB6 /* wiki_menu_0@2x.png in Resources */, + B1D5F1E020BC06CB00983FB6 /* icon_release_tag_blue@3x.png in Resources */, + B1D5F1E120BC06CB00983FB6 /* search_icon_topic@2x.png in Resources */, + B1D5F1E220BC06CB00983FB6 /* file_activity_icon_delete_history@2x.png in Resources */, + B1D5F1E320BC06CB00983FB6 /* icon_file_unknown_big@2x.png in Resources */, + B1D5F1E420BC06CB00983FB6 /* sex_woman_icon@2x.png in Resources */, + B1D5F1E520BC06CB00983FB6 /* privatemessage_selected@3x.png in Resources */, + B1D5F1E620BC06CB00983FB6 /* tipIcon_TaskComment@2x.png in Resources */, + B1D5F1E720BC06CB00983FB6 /* taskDeadline@2x.png in Resources */, + B1D5F1E820BC06CB00983FB6 /* AddReviewerViewController.xib in Resources */, + B1D5F1E920BC06CB00983FB6 /* shop_exchange_icon@3x.png in Resources */, + B1D5F1EA20BC06CB00983FB6 /* vip_3_40@3x.png in Resources */, + B1D5F1EC20BC06CB00983FB6 /* button_file_activity@2x.png in Resources */, + B1D5F1ED20BC06CB00983FB6 /* file_activity_icon_update_file@2x.png in Resources */, + B1D5F1EE20BC06CB00983FB6 /* nav_project_code@2x.png in Resources */, + B1D5F1EF20BC06CB00983FB6 /* user_info_project@3x.png in Resources */, + B1D5F1F020BC06CB00983FB6 /* taskBoardList@2x.png in Resources */, + B1D5F1F120BC06CB00983FB6 /* coding_emoji_gif_08@2x.png in Resources */, + B1D5F1F220BC06CB00983FB6 /* icon_project_private@2x.png in Resources */, + B1D5F1F320BC06CB00983FB6 /* search_Nav@2x.png in Resources */, + B1D5F1F420BC06CB00983FB6 /* terminal_box_selected@3x.png in Resources */, + B1D5F1F520BC06CB00983FB6 /* twoFABtn_Nav@2x.png in Resources */, + B15C98B320D39CA200DDA425 /* project_icon_edit@3x.png in Resources */, + B1D5F1F620BC06CB00983FB6 /* project_selected@3x.png in Resources */, + B1D5F1F720BC06CB00983FB6 /* task_activity_icon_MergeRequestBean@3x.png in Resources */, + B1D5F1F820BC06CB00983FB6 /* tweet_selected@3x.png in Resources */, + B1D5F1F920BC06CB00983FB6 /* taskPriority3@2x.png in Resources */, + B1D5F1FA20BC06CB00983FB6 /* search_icon_file@2x.png in Resources */, + B1D5F1FB20BC06CB00983FB6 /* nav_page_unselected@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -8143,13 +11240,72 @@ shellScript = "/usr/local/bin/carthage copy-frameworks"; showEnvVarsInLog = 0; }; + B1D5EBF220BC06CB00983FB6 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Coding_iOS-Coding_Enterprise_iOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + B1D5F1FC20BC06CB00983FB6 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 8; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Coding_iOS-Coding_Enterprise_iOS/Pods-Coding_iOS-Coding_Enterprise_iOS-resources.sh", + "${PODS_ROOT}/FontAwesome+iOS/Resources/FontAwesome.ttf", + "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDK/UMSocialSDKPromptResources.bundle", + "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/QQ/QQSDK/TencentOpenApi_IOS_Bundle.bundle", + "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/Sina/SinaSDK/WeiboSDK.bundle", + "${PODS_ROOT}/evernote-cloud-sdk-ios/ENSDKResources.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/UMSocialSDKPromptResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TencentOpenApi_IOS_Bundle.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WeiboSDK.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ENSDKResources.bundle", + ); + runOnlyForDeploymentPostprocessing = 1; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Coding_iOS-Coding_Enterprise_iOS/Pods-Coding_iOS-Coding_Enterprise_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + B1D5F1FE20BC06CB00983FB6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "$(SRCROOT)/Carthage/Build/iOS/ObjectiveGit.framework", + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/carthage copy-frameworks"; + showEnvVarsInLog = 0; + }; B7C390DEFD2073480C56FD88 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 8; files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-Coding_iOS/Pods-Coding_iOS-resources.sh", + "${PODS_ROOT}/Target Support Files/Pods-Coding_iOS/Pods-Coding_iOS-resources.sh", "${PODS_ROOT}/FontAwesome+iOS/Resources/FontAwesome.ttf", "${PODS_ROOT}/UMengUShare/UShareSDK/UMSocialSDK/UMSocialSDKPromptResources.bundle", "${PODS_ROOT}/UMengUShare/UShareSDK/SocialLibraries/QQ/QQSDK/TencentOpenApi_IOS_Bundle.bundle", @@ -8166,7 +11322,7 @@ ); runOnlyForDeploymentPostprocessing = 1; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Coding_iOS/Pods-Coding_iOS-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Coding_iOS/Pods-Coding_iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; B7F20F3BC924F718A926E931 /* [CP] Check Pods Manifest.lock */ = { @@ -8207,7 +11363,6 @@ 4E8765691A22E5B40090CFB9 /* SWUtilityButtonTapGestureRecognizer.m in Sources */, 4ECE8B041A3946C10021E29C /* UnReadManager.m in Sources */, 4EA679131A1466A6001A0324 /* ProjectFiles.m in Sources */, - 4EBDA87C1A6640340035ED96 /* UIActionSheet+Common.m in Sources */, 4E4D6A581B1C5DC000FD2E49 /* MRPRCommentCell.m in Sources */, 7EB02FF11B6D111300D2166C /* AudioPlayView.m in Sources */, B94C1B6E1AC98CCE0000C271 /* NewProjectTypeViewController.m in Sources */, @@ -8250,6 +11405,7 @@ 09A0588A1E0AA9AE00C1CA3F /* ActivityView.m in Sources */, 8EA6D1B519E240C40076D59C /* ListGroupItem.m in Sources */, 4E80E93C1E02353900DE1BC6 /* CodingSearchDisplayView.m in Sources */, + B1D5F21E20BD50D000983FB6 /* ProjectRole.m in Sources */, 8EA6D13919E240C40076D59C /* MyTask_RootViewController.m in Sources */, 8E1C3E0A19E8DFE300EF3032 /* SettingAccountViewController.m in Sources */, 4E8765681A22E5B40090CFB9 /* SWTableViewCell.m in Sources */, @@ -8274,6 +11430,7 @@ 4E2ECEAD1BD4D51000CB6EC9 /* ProjectTransferSettingViewController.m in Sources */, 4EABD2571AD3CAAC005E515F /* UIMessageInputView_Add.m in Sources */, 7EB02FCE1B6CF5D500D2166C /* UIMessageInputView_Voice.m in Sources */, + B1C60C8220BFCEFD0073D3CA /* NFileListViewController.m in Sources */, 8E59F0E21A0098BA009A905F /* UIScrollView+SVInfiniteScrolling.m in Sources */, 4E0022831B72095E005308DE /* PointRecord.m in Sources */, 927AFF3E1BFF608700AAE593 /* ShopGoodsCCell.m in Sources */, @@ -8340,6 +11497,7 @@ 926C043E1C01A212004937D8 /* ShopOrderListView.m in Sources */, 8E1C3DF119E7D58A00EF3032 /* SWActionSheet.m in Sources */, 4E1A22821AB1729700CFC14F /* ProjectInfoCell.m in Sources */, + B14DE6DE20C914E70072ECEA /* AnimatedGIFImageSerialization.m in Sources */, 8EA6D1BF19E240C40076D59C /* Task.m in Sources */, 0A0519E21ABA918100551B61 /* TweetSendDetailLoctionCell.m in Sources */, 4E5C06EB1AC4009100F427C5 /* CannotLoginViewController.m in Sources */, @@ -8407,6 +11565,7 @@ 8EF643CA19FF7E2900F7EEB0 /* TopicContentCell.m in Sources */, 4E0B9A371BAD377600D57D54 /* ForkTreeCell.m in Sources */, B12B64071FE900D400ACFDCC /* AMPopTip.m in Sources */, + B1D5F20E20BD3BF400983FB6 /* UINavigationController+FullscreenPopGesture.m in Sources */, 4E4D6A6A1B1C688200FD2E49 /* MRPRAcceptViewController.m in Sources */, 4ECE8AE81A3943E80021E29C /* UIView+Common.m in Sources */, 4EA7F15E1A6D192B00A046BD /* SDWebImageDownloaderOperation.m in Sources */, @@ -8437,6 +11596,7 @@ 09A0589B1E0AAA7200C1CA3F /* ScreenCell.m in Sources */, 8EF643B119FF7E2900F7EEB0 /* ConversationCell.m in Sources */, 4ED4B49A1D8295EA00EED8C6 /* TeamListViewController.m in Sources */, + B186AEB020F462F600A6AF35 /* UIAlertController+Common.m in Sources */, 8EF643D019FF7E2900F7EEB0 /* TweetSendImagesCell.m in Sources */, B1890C482015D92600F52ABA /* WikiEditViewController.m in Sources */, 4ECF704C1B1876CB000280FF /* MRPRListCell.m in Sources */, @@ -8455,6 +11615,7 @@ 4EBD7FAF1CE4827A00B3AF49 /* CountryCodeListViewController.m in Sources */, D09AA5B71BFDA38D008CA9EB /* AllSearchDisplayVC.m in Sources */, 0A27A05D1AB5A13B00067833 /* TweetSendLocationDetailViewController.m in Sources */, + B1D5F22220BEA37600983FB6 /* MeRootCompanyCell.m in Sources */, B1816063202063440022B4C6 /* EATerminalViewController.m in Sources */, 0AB591B01AB6D6BE0076C454 /* TweetSendMapAnnotation.m in Sources */, 4ECF70491B185BCC000280FF /* MRPR.m in Sources */, @@ -8462,6 +11623,7 @@ 4E095A5C1B6907AA008DC439 /* CodingBannersView.m in Sources */, 4E8D5D661B45306900B70936 /* OTPListViewController.m in Sources */, 4EA7F1651A6D192B00A046BD /* UIImageView+WebCache.m in Sources */, + B1D5F21820BD485D00983FB6 /* TeamPurchaseBilling.m in Sources */, 8EF643B819FF7E2900F7EEB0 /* InputOnlyTextPlainCell.m in Sources */, 4E095A681B6909F9008DC439 /* NSTimer+Addition.m in Sources */, 4E6BA2DB1A1EE6AF005FD721 /* AFURLSessionManager.m in Sources */, @@ -8472,6 +11634,7 @@ 8EA6D1F919E240C40076D59C /* MJPhotoLoadingView.m in Sources */, 4E753D441B8AFDEC003A00B9 /* FileEditViewController.m in Sources */, 8EA6D14419E240C40076D59C /* TopicDetailViewController.m in Sources */, + B1C60CA420C0DDF60073D3CA /* TeamSettingViewController.m in Sources */, 4EA7F1641A6D192B00A046BD /* UIImageView+HighlightedWebCache.m in Sources */, E7A046A01A47279E00528C12 /* Helper.m in Sources */, 4E00228C1B721955005308DE /* PointTopCell.m in Sources */, @@ -8494,11 +11657,11 @@ 4ECF70401B180740000280FF /* EaseGitButtonsView.m in Sources */, 8EF83F8A19E92AA500E86DE7 /* SettingTagsViewController.m in Sources */, B194414A206BB8BB00147158 /* EALocalCodeListCell.m in Sources */, + B1D5F23220BEADD200983FB6 /* TeamSupportCell.m in Sources */, 8EF643D319FF7E2900F7EEB0 /* ValueListCell.m in Sources */, 4EB52F3F1C7C464400B5EBEA /* TaskResourceReferenceViewController.m in Sources */, 4E217F0C1A70EDC700F6DF88 /* SVModalWebViewController.m in Sources */, B19D4EF21F710EF900C598F3 /* ShopSwitchCell.m in Sources */, - 4E19E7071BCE03CD00C66DC6 /* UIActionSheet+Front.m in Sources */, 4EF17E5F1B3AB10F003CDD2D /* IntroductionViewController.m in Sources */, 4EA7F1601A6D192B00A046BD /* SDWebImagePrefetcher.m in Sources */, 4E4D6A941B1D851E00FD2E49 /* FileChanges.m in Sources */, @@ -8523,6 +11686,7 @@ 8EA6D1AF19E240C40076D59C /* CodingTips.m in Sources */, 4E4D6A5B1B1C5DDF00FD2E49 /* MRPRCommentCCell.m in Sources */, B12B64061FE900D400ACFDCC /* AMPopTip+Animation.m in Sources */, + B1C60C9020BFF7950073D3CA /* ProjectTypeExplanationViewController.m in Sources */, 8EF643C219FF7E2900F7EEB0 /* TaskCommentTopCell.m in Sources */, 4E4D6A611B1C65C100FD2E49 /* MRPRCommitsViewController.m in Sources */, B1817EBF2063951000E9BAD1 /* EABasePageModel.m in Sources */, @@ -8534,6 +11698,7 @@ 4ECE8AD71A3943E80021E29C /* DownMenuCell.m in Sources */, 4E6C41201A846AC30098DC17 /* RFToolbarButton.m in Sources */, 3A3878491AE36ED70078D5DE /* TopicListButton.m in Sources */, + B1C60CA820C0DDF60073D3CA /* TeamSupportViewController.m in Sources */, 4ECE8B011A3946C10021E29C /* ImageSizeManager.m in Sources */, 8EA6D1B319E240C40076D59C /* File.m in Sources */, 923399751C00ABDE00F29E04 /* ShopOrderViewController.m in Sources */, @@ -8600,6 +11765,7 @@ 4EA7F15D1A6D192B00A046BD /* SDWebImageDownloader.m in Sources */, 8EA6D1B419E240C40076D59C /* HtmlMedia.m in Sources */, 3A3878451AE296240078D5DE /* EditLabelCell.m in Sources */, + B1C60CA620C0DDF60073D3CA /* TeamPurchaseViewController.m in Sources */, 4ECE8ADE1A3943E80021E29C /* NSString+Common.m in Sources */, 4ECE8B081A3947300021E29C /* BasicPreviewItem.m in Sources */, 4E2247FC1D82C98800551EA4 /* MeDisplayViewController.m in Sources */, @@ -8613,6 +11779,7 @@ 4EAE06A41B7AE4EF00179F4B /* FileComment.m in Sources */, 8EA6D13C19E240C40076D59C /* Tweet_RootViewController.m in Sources */, B93D904B1ACBA3110057A6EE /* ProjectDeleteAlertControllerVisualStyle.m in Sources */, + B1D5F21620BD485D00983FB6 /* TeamPurchaseOrder.m in Sources */, 4E1A22851AB172C400CFC14F /* ProjectItemsCell.m in Sources */, 4ECE8B051A3946C10021E29C /* WebContentManager.m in Sources */, 4E94C4F41B4D007600EB668A /* Login2FATipCell.m in Sources */, @@ -8634,7 +11801,6 @@ 4ED4B49D1D8295F600EED8C6 /* TeamViewController.m in Sources */, 4EF3741C1BB1258600DDA662 /* LocalFileViewController.m in Sources */, 3A3878401AE295970078D5DE /* ResetLabelCell.m in Sources */, - 4EA679201A15AB9F001A0324 /* FileListViewController.m in Sources */, B1817ECD20639F0A00E9BAD1 /* EACodeBranchListCell.m in Sources */, 8EA6D14119E240C40076D59C /* ValueListViewController.m in Sources */, 4EB52F151C7599FC00B5EBEA /* ActivateViewController.m in Sources */, @@ -8661,6 +11827,7 @@ 4E0022921B721973005308DE /* PointRecordCell.m in Sources */, 4E5A66951B268D160007A0AD /* UIView+PressMenu.m in Sources */, 8EA6D1C019E240C40076D59C /* Tasks.m in Sources */, + B1C60C9820C004C80073D3CA /* TeamPurchaseTopCell.m in Sources */, 8EE72BE819E3F4A8002C11D9 /* MBProgressHUD+Add.m in Sources */, 8E59F10D1A02188D009A905F /* CodeViewController.m in Sources */, 4E59D32F1D3E1920008C914B /* ProjectTweetSendViewController.m in Sources */, @@ -8671,6 +11838,7 @@ D066BB3D1BF38844005AB5D6 /* ProjectAboutMeListCell.m in Sources */, 4EAAD0171E53EFF2008AA957 /* EAFliterMenu.m in Sources */, 8BDF9AA61B7456060093BF2C /* HotTopicBannerView.m in Sources */, + B1D5F21A20BD485D00983FB6 /* TeamPurchaseBillingDetail.m in Sources */, 8EA6D12E19E240C40076D59C /* EditTaskViewController.m in Sources */, 4EB52F2B1C76ED7000B5EBEA /* TagColorDisplayCell.m in Sources */, 8EA6D1BC19E240C40076D59C /* ProjectTopics.m in Sources */, @@ -8686,6 +11854,7 @@ 4E0BD8721B6C7E3D0061CAA6 /* CSTopicModel.m in Sources */, 4E4D6AA31B1DB63A00FD2E49 /* FileLineChange.m in Sources */, 4E5C06EE1AC4405300F427C5 /* PasswordViewController.m in Sources */, + B1C60C7E20BFCDBE0073D3CA /* EditMemberTypeProjectListViewController.m in Sources */, 927AFF441BFF61FF00AAE593 /* BaseCollectionCell.m in Sources */, 4E217F0E1A70EDC700F6DF88 /* SVWebViewController.m in Sources */, B1817EE42064F92C00E9BAD1 /* EACodeReleaseViewController.m in Sources */, @@ -8694,7 +11863,6 @@ 8EF643AE19FF7E2900F7EEB0 /* TweetMediaItemSingleCCell.m in Sources */, 8EF643AC19FF7E2900F7EEB0 /* TweetLikeUserCCell.m in Sources */, 4E80E9351E011D6000DE1BC6 /* RewardTipManager.m in Sources */, - 4EE1A22E1B5D02CA004284F1 /* ProjectFolderListView.m in Sources */, 4E4D6A701B1C68F100FD2E49 /* CommitFilesViewController.m in Sources */, 4E4D6A911B1D84B400FD2E49 /* FileChange.m in Sources */, 8EA6D1AB19E240C40076D59C /* main.m in Sources */, @@ -8728,7 +11896,9 @@ D09AA5BD1BFDE5F5008CA9EB /* TweetSearchCell.m in Sources */, 4E6BA2E01A1EE6AF005FD721 /* AFURLResponseSerialization.m in Sources */, 8E59F1031A0120F1009A905F /* CodeFile.m in Sources */, + B1ACFE0D20A975E2000BC41E /* EAMilestone.m in Sources */, 4E0BD8801B6C7F0A0061CAA6 /* CSSearchCell.m in Sources */, + B1C60C9A20C004C80073D3CA /* TeamPurchaseBillingCell.m in Sources */, 4E996BCA1ABA754600C704F1 /* JDStatusBarView.m in Sources */, 4E4D6A881B1C6E1B00FD2E49 /* MRPRAcceptEditCell.m in Sources */, B1817EED2064FD9400E9BAD1 /* EACodeReleaseAttachmentsOrReferencesCell.m in Sources */, @@ -8743,6 +11913,7 @@ 8E59F0F41A00F3B9009A905F /* ProjectCodeListCell.m in Sources */, 4E87DE031D813BBE00D1B5B1 /* UserServiceInfo.m in Sources */, 0A6E6BAA1AAF4B24004C0107 /* TweetSendLocationViewController.m in Sources */, + B1C60C7A20BFA2150073D3CA /* NProjectFileListView.m in Sources */, 8E59F0F71A00F3E2009A905F /* ProjectFolderListCell.m in Sources */, 8EA6D1C319E240C40076D59C /* User.m in Sources */, 8EA6D1FB19E240C40076D59C /* MJPhotoToolbar.m in Sources */, @@ -8752,6 +11923,7 @@ 7EB02FF31B6D111300D2166C /* AudioRecordView.m in Sources */, 4EB52F281C76ED4A00B5EBEA /* TagColorEditCell.m in Sources */, B12B64771FFB61AD00ACFDCC /* QBVideoIndicatorView.m in Sources */, + B1C60C9C20C004C80073D3CA /* TeamPurchaseOrderCell.m in Sources */, 4E93F2441B85C4C300017916 /* FileInfoViewController.m in Sources */, 4E4D6A9A1B1D893500FD2E49 /* CommitInfo.m in Sources */, 4E38CF5F1A7A28AF005536C0 /* CodeBranchTagButton.m in Sources */, @@ -8810,6 +11982,642 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B1D5EBF320BC06CB00983FB6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B1D5EBF420BC06CB00983FB6 /* RootTabViewController.m in Sources */, + B1D5EBF520BC06CB00983FB6 /* WebViewController.m in Sources */, + B1D5EBF620BC06CB00983FB6 /* ProjectTag.m in Sources */, + B1D5EBF720BC06CB00983FB6 /* SendRewardManager.m in Sources */, + B1D5EBF820BC06CB00983FB6 /* UIImageView+AFNetworking.m in Sources */, + B1D5EBF920BC06CB00983FB6 /* ExchangeGoodsViewController.m in Sources */, + B1D5EBFA20BC06CB00983FB6 /* ProjectMember.m in Sources */, + B1D5EBFB20BC06CB00983FB6 /* UserInfoViewController.m in Sources */, + B1D5EBFC20BC06CB00983FB6 /* Me_RootViewController.m in Sources */, + B1D5EBFD20BC06CB00983FB6 /* ProjectActivity.m in Sources */, + B1D5EBFE20BC06CB00983FB6 /* SWUtilityButtonTapGestureRecognizer.m in Sources */, + B1D5EBFF20BC06CB00983FB6 /* UnReadManager.m in Sources */, + B1D5EC0020BC06CB00983FB6 /* ProjectFiles.m in Sources */, + B1D5EC0220BC06CB00983FB6 /* MRPRCommentCell.m in Sources */, + B1D5EC0320BC06CB00983FB6 /* AudioPlayView.m in Sources */, + B1D5EC0420BC06CB00983FB6 /* NewProjectTypeViewController.m in Sources */, + B1D5EC0520BC06CB00983FB6 /* EAIntroPage.m in Sources */, + B1D5EC0620BC06CB00983FB6 /* PopFliterMenu.m in Sources */, + B1D5EC0720BC06CB00983FB6 /* ProjectPublicListCell.m in Sources */, + B1D5EC0820BC06CB00983FB6 /* DirectoryWatcher.m in Sources */, + B1D5EC0920BC06CB00983FB6 /* SVWebViewControllerActivityReport.m in Sources */, + B1D5EC0A20BC06CB00983FB6 /* TeamMember.m in Sources */, + B1D5EC0B20BC06CB00983FB6 /* UIButton+AFNetworking.m in Sources */, + B1D5EC0C20BC06CB00983FB6 /* TopicCommentCell.m in Sources */, + B1D5EC0D20BC06CB00983FB6 /* AudioVolumeView.m in Sources */, + B1D5EC0E20BC06CB00983FB6 /* ZXScanCodeViewController.m in Sources */, + B1D5EC0F20BC06CB00983FB6 /* LDNetTimer.m in Sources */, + B1D5EC1020BC06CB00983FB6 /* TaskBoardsViewController.m in Sources */, + B1D5EC1120BC06CB00983FB6 /* Tweet.m in Sources */, + B1D5EC1220BC06CB00983FB6 /* PRDetailViewController.m in Sources */, + B1D5EC1320BC06CB00983FB6 /* TweetCommentMoreCell.m in Sources */, + B1D5EC1420BC06CB00983FB6 /* CodeTree.m in Sources */, + B1D5EC1520BC06CB00983FB6 /* WikiMenuListCell.m in Sources */, + B1D5EC1620BC06CB00983FB6 /* EALocalCodeViewController.m in Sources */, + B1D5EC1720BC06CB00983FB6 /* KxMenu.m in Sources */, + B1D5EC1820BC06CB00983FB6 /* UserSearchCell.m in Sources */, + B1D5EC1920BC06CB00983FB6 /* SettingEmailViewController.m in Sources */, + B1D5EC1A20BC06CB00983FB6 /* MemberCell.m in Sources */, + B1D5EC1B20BC06CB00983FB6 /* JobManager.m in Sources */, + B1D5EC1C20BC06CB00983FB6 /* UIView+Frame.m in Sources */, + B1D5EC1D20BC06CB00983FB6 /* TagsManager.m in Sources */, + B1D5EC1E20BC06CB00983FB6 /* AddCommentCell.m in Sources */, + B1D5EC1F20BC06CB00983FB6 /* UITTTAttributedLabel.m in Sources */, + B1D5EC2020BC06CB00983FB6 /* TitleValueCell.m in Sources */, + B1D5EC2120BC06CB00983FB6 /* ODRefreshControl.m in Sources */, + B1D5EC2220BC06CB00983FB6 /* FileSearchCell.m in Sources */, + B1D5EC2320BC06CB00983FB6 /* RDVTabBarItem.m in Sources */, + B1D5EC2420BC06CB00983FB6 /* PointShopCell.m in Sources */, + B1D5EC2520BC06CB00983FB6 /* ProjectTopicActivity.m in Sources */, + B1D5EC2620BC06CB00983FB6 /* FileChangeListCell.m in Sources */, + B1D5EC2720BC06CB00983FB6 /* ProjectListViewController.m in Sources */, + B1D5EC2820BC06CB00983FB6 /* EaseMarkdownTextView.m in Sources */, + B1D5EC2920BC06CB00983FB6 /* ActivityView.m in Sources */, + B1D5EC2A20BC06CB00983FB6 /* ListGroupItem.m in Sources */, + B1D5EC2B20BC06CB00983FB6 /* CodingSearchDisplayView.m in Sources */, + B1D5F21F20BD50D000983FB6 /* ProjectRole.m in Sources */, + B1D5EC2C20BC06CB00983FB6 /* MyTask_RootViewController.m in Sources */, + B1D5EC2D20BC06CB00983FB6 /* SettingAccountViewController.m in Sources */, + B1D5EC2E20BC06CB00983FB6 /* SWTableViewCell.m in Sources */, + B1D5EC2F20BC06CB00983FB6 /* ScanBGView.m in Sources */, + B1D5EC3020BC06CB00983FB6 /* CodingVipTipManager.m in Sources */, + B1D5EC3120BC06CB00983FB6 /* CSTopicHeaderView.m in Sources */, + B1D5EC3220BC06CB00983FB6 /* NJKWebViewProgressView.m in Sources */, + B1D5EC3320BC06CB00983FB6 /* TaskActivityCell.m in Sources */, + B1D5EC3420BC06CB00983FB6 /* ActivenessModel.m in Sources */, + B1D5EC3520BC06CB00983FB6 /* Close2FAViewController.m in Sources */, + B1D5EC3620BC06CB00983FB6 /* NSDate+Common.m in Sources */, + B1D5EC3720BC06CB00983FB6 /* RDVTabBar.m in Sources */, + B1D5EC3820BC06CB00983FB6 /* TMCacheExtend.m in Sources */, + B1D5EC3920BC06CB00983FB6 /* CodingShareView.m in Sources */, + B1D5EC3A20BC06CB00983FB6 /* DistancePickerView.m in Sources */, + B1D5EC3B20BC06CB00983FB6 /* FileVersionsViewController.m in Sources */, + B1D5EC3C20BC06CB00983FB6 /* FileVersion.m in Sources */, + B1D5EC3D20BC06CB00983FB6 /* Depot.m in Sources */, + B1D5EC3E20BC06CB00983FB6 /* ReportIllegalViewController.m in Sources */, + B1D5EC3F20BC06CB00983FB6 /* ShopBannerView.m in Sources */, + B1D5EC4020BC06CB00983FB6 /* TweetDetailCell.m in Sources */, + B1D5EC4120BC06CB00983FB6 /* ProjectTransferSettingViewController.m in Sources */, + B1D5EC4220BC06CB00983FB6 /* UIMessageInputView_Add.m in Sources */, + B1D5EC4320BC06CB00983FB6 /* UIMessageInputView_Voice.m in Sources */, + B1C60C8320BFCEFD0073D3CA /* NFileListViewController.m in Sources */, + B1D5EC4420BC06CB00983FB6 /* UIScrollView+SVInfiniteScrolling.m in Sources */, + B1D5EC4520BC06CB00983FB6 /* PointRecord.m in Sources */, + B1D5EC4620BC06CB00983FB6 /* ShopGoodsCCell.m in Sources */, + B1D5EC4720BC06CB00983FB6 /* FolderToMoveViewController.m in Sources */, + B1D5EC4820BC06CB00983FB6 /* Shop.m in Sources */, + B1D5EC4920BC06CB00983FB6 /* CategorySearchBar.m in Sources */, + B1D5EC4A20BC06CB00983FB6 /* UISearchBar+Common.m in Sources */, + B1D5EC4B20BC06CB00983FB6 /* UIImage+GIF.m in Sources */, + B1D5EC4C20BC06CB00983FB6 /* MessageCell.m in Sources */, + B1D5EC4D20BC06CB00983FB6 /* SettingMineInfoViewController.m in Sources */, + B1D5EC4E20BC06CB00983FB6 /* TweetSendImageCCell.m in Sources */, + B1D5EC4F20BC06CB00983FB6 /* OTPGenerator.m in Sources */, + B1D5EC5020BC06CB00983FB6 /* AddUserViewController.m in Sources */, + B1D5EC5120BC06CB00983FB6 /* TaskResourceReferenceCell.m in Sources */, + B1D5EC5220BC06CB00983FB6 /* UIButton+Bootstrap.m in Sources */, + B1D5EC5320BC06CB00983FB6 /* NSDate+Helper.m in Sources */, + B1D5EC5420BC06CB00983FB6 /* MJPhotoView.m in Sources */, + B1D5EC5520BC06CB00983FB6 /* CodeListViewController.m in Sources */, + B1D5EC5620BC06CB00983FB6 /* NProjectItemCell.m in Sources */, + B1D5EC5720BC06CB00983FB6 /* EACodeReleases.m in Sources */, + B1D5EC5820BC06CB00983FB6 /* TeamMembersViewController.m in Sources */, + B1D5EC5920BC06CB00983FB6 /* ActionSheetDatePicker.m in Sources */, + B1D5EC5A20BC06CB00983FB6 /* Input_OnlyText_Cell.m in Sources */, + B1D5EC5B20BC06CB00983FB6 /* FileListUploadCell.m in Sources */, + B1D5EC5C20BC06CB00983FB6 /* ProjectServiceInfo.m in Sources */, + B1D5EC5D20BC06CB00983FB6 /* ProjectListView.m in Sources */, + B1D5EC5E20BC06CB00983FB6 /* EAIntroView.m in Sources */, + B1D5EC5F20BC06CB00983FB6 /* ProjectFolders.m in Sources */, + B1D5EC6020BC06CB00983FB6 /* ProjectTagLabel.m in Sources */, + B1D5EC6120BC06CB00983FB6 /* NSData+ImageContentType.m in Sources */, + B1D5EC6220BC06CB00983FB6 /* UIColor+MobileColors.m in Sources */, + B1D5EC6320BC06CB00983FB6 /* MJPhotoProgressView.m in Sources */, + B1D5EC6420BC06CB00983FB6 /* EADeviceToServerLog.m in Sources */, + B1D5EC6520BC06CB00983FB6 /* MRPRFilesViewController.m in Sources */, + B1D5EC6620BC06CB00983FB6 /* PHAsset+Common.m in Sources */, + B1D5EC6720BC06CB00983FB6 /* FileListFolderCell.m in Sources */, + B1D5EC6820BC06CB00983FB6 /* Users.m in Sources */, + B1D5EC6920BC06CB00983FB6 /* UserCell.m in Sources */, + B1D5EC6A20BC06CB00983FB6 /* PointRecordsViewController.m in Sources */, + B1D5EC6B20BC06CB00983FB6 /* OTPAuthClock.m in Sources */, + B1D5EC6C20BC06CB00983FB6 /* TOTPGenerator.m in Sources */, + B1D5EC6D20BC06CB00983FB6 /* CSHotTopicView.m in Sources */, + B1D5EC6E20BC06CB00983FB6 /* CodingTip.m in Sources */, + B1D5EC6F20BC06CB00983FB6 /* NProjectViewController.m in Sources */, + B1D5EC7020BC06CB00983FB6 /* SettingPhoneViewController.m in Sources */, + B1D5EC7120BC06CB00983FB6 /* PrivateMessage.m in Sources */, + B1D5EC7220BC06CB00983FB6 /* ProjectTaskListViewCell.m in Sources */, + B1D5EC7320BC06CB00983FB6 /* UIDevice+Info.m in Sources */, + B1D5EC7420BC06CB00983FB6 /* UIMessageInputView_Media.m in Sources */, + B1D5EC7520BC06CB00983FB6 /* QBAlbumCell.m in Sources */, + B1D5EC7620BC06CB00983FB6 /* FileActivityCell.m in Sources */, + B1D5EC7720BC06CB00983FB6 /* UIAlertView+AFNetworking.m in Sources */, + B1D5EC7820BC06CB00983FB6 /* WikiHistoryListViewController.m in Sources */, + B1D5EC7920BC06CB00983FB6 /* CommitCommentCell.m in Sources */, + B1D5EC7A20BC06CB00983FB6 /* ProjectAboutOthersListCell.m in Sources */, + B1D5EC7B20BC06CB00983FB6 /* SDWebImageManager.m in Sources */, + B1D5EC7C20BC06CB00983FB6 /* amrFileCodec.m in Sources */, + B1D5EC7D20BC06CB00983FB6 /* SettingViewController.m in Sources */, + B1D5EC7E20BC06CB00983FB6 /* ActivityMonScrollView.m in Sources */, + B1D5EC7F20BC06CB00983FB6 /* ActionSheetStringPicker.m in Sources */, + B1D5EC8020BC06CB00983FB6 /* LeftImage_LRTextCell.m in Sources */, + B1D5EC8120BC06CB00983FB6 /* ProjectSettingEntranceController.m in Sources */, + B1D5EC8220BC06CB00983FB6 /* UINavigationBar+Common.m in Sources */, + B1D5EC8320BC06CB00983FB6 /* ShopOrderListView.m in Sources */, + B1D5EC8420BC06CB00983FB6 /* SWActionSheet.m in Sources */, + B1D5EC8520BC06CB00983FB6 /* ProjectInfoCell.m in Sources */, + B14DE6DF20C914E70072ECEA /* AnimatedGIFImageSerialization.m in Sources */, + B1D5EC8620BC06CB00983FB6 /* Task.m in Sources */, + B1D5EC8720BC06CB00983FB6 /* TweetSendDetailLoctionCell.m in Sources */, + B1D5EC8820BC06CB00983FB6 /* CannotLoginViewController.m in Sources */, + B1D5EC8920BC06CB00983FB6 /* ShopViewController.m in Sources */, + B1D5EC8A20BC06CB00983FB6 /* Reviewer.m in Sources */, + B1D5EC8B20BC06CB00983FB6 /* EALocalCodeListViewController.m in Sources */, + B1D5EC8C20BC06CB00983FB6 /* AMPopTip+Exit.m in Sources */, + B1D5EC8D20BC06CB00983FB6 /* AppDelegate.m in Sources */, + B1D5EC8E20BC06CB00983FB6 /* AudioAmrUtil.m in Sources */, + B1D5EC8F20BC06CB00983FB6 /* Coding_NetAPIManager.m in Sources */, + B1D5EC9020BC06CB00983FB6 /* FileListFileCell.m in Sources */, + B1D5EC9120BC06CB00983FB6 /* TipsViewController.m in Sources */, + B1D5EC9220BC06CB00983FB6 /* ReviewCell.m in Sources */, + B1D5EC9320BC06CB00983FB6 /* TopicHotkeyView.m in Sources */, + B1D5EC9420BC06CB00983FB6 /* UIPlaceHolderTextView.m in Sources */, + B1D5EC9520BC06CB00983FB6 /* TopicSearchCell.m in Sources */, + B1D5EC9620BC06CB00983FB6 /* ProjectCommitsViewController.m in Sources */, + B1D5EC9720BC06CB00983FB6 /* UIProgressView+AFNetworking.m in Sources */, + B1D5EC9820BC06CB00983FB6 /* UserActiveGraphCell.m in Sources */, + B1D5EC9920BC06CB00983FB6 /* NSURL+Common.m in Sources */, + B1D5EC9A20BC06CB00983FB6 /* UIRefreshControl+AFNetworking.m in Sources */, + B1D5EC9B20BC06CB00983FB6 /* WikiHistoryCell.m in Sources */, + B1D5EC9C20BC06CB00983FB6 /* ProjectCodeListView.m in Sources */, + B1D5EC9D20BC06CB00983FB6 /* LocalFilesViewController.m in Sources */, + B1D5EC9E20BC06CB00983FB6 /* SettingTextCell.m in Sources */, + B1D5EC9F20BC06CB00983FB6 /* LDNetConnect.m in Sources */, + B1D5ECA020BC06CB00983FB6 /* MRDetailViewController.m in Sources */, + B1D5ECA120BC06CB00983FB6 /* UITableView+Common.m in Sources */, + B1D5ECA220BC06CB00983FB6 /* JDStatusBarNotification.m in Sources */, + B1D5ECA320BC06CB00983FB6 /* RFKeyboardToolbar.m in Sources */, + B1D5ECA420BC06CB00983FB6 /* CSSearchDisplayVC.m in Sources */, + B1D5ECA520BC06CB00983FB6 /* CodeBranchOrTag.m in Sources */, + B1D5ECA620BC06CB00983FB6 /* EasePageViewController.m in Sources */, + B1D5ECA720BC06CB00983FB6 /* ObjcRuntime.m in Sources */, + B1D5ECA820BC06CB00983FB6 /* UIVerticalAlignmentLabel.m in Sources */, + B1D5ECA920BC06CB00983FB6 /* TaskSelectionCell.m in Sources */, + B1D5ECAA20BC06CB00983FB6 /* EANetTraceRoute.m in Sources */, + B1D5ECAB20BC06CB00983FB6 /* AFURLRequestSerialization.m in Sources */, + B1D5ECAC20BC06CB00983FB6 /* UIUnderlinedButton.m in Sources */, + B1D5ECAD20BC06CB00983FB6 /* TaskCommentCCell.m in Sources */, + B1D5ECAE20BC06CB00983FB6 /* AutoSlideScrollView.m in Sources */, + B1D5ECAF20BC06CB00983FB6 /* LocalFoldersViewController.m in Sources */, + B1D5ECB020BC06CB00983FB6 /* LDNetGetAddress.m in Sources */, + B1D5ECB120BC06CB00983FB6 /* UIViewController+DownMenu.m in Sources */, + B1D5ECB220BC06CB00983FB6 /* PopMenu.m in Sources */, + B1D5ECB320BC06CB00983FB6 /* LikersViewController.m in Sources */, + B1D5ECB420BC06CB00983FB6 /* TitleValueMoreCell.m in Sources */, + B1D5ECB520BC06CB00983FB6 /* CSSearchModel.m in Sources */, + B1D5ECB620BC06CB00983FB6 /* WikiHeaderView.m in Sources */, + B1D5ECB720BC06CB00983FB6 /* TaskCommentCell.m in Sources */, + B1D5ECB820BC06CB00983FB6 /* AGEmojiPageView.m in Sources */, + B1D5ECB920BC06CB00983FB6 /* ASProgressPopUpView.m in Sources */, + B1D5ECBA20BC06CB00983FB6 /* EditLabelViewController.m in Sources */, + B1D5ECBB20BC06CB00983FB6 /* AddMDCommentViewController.m in Sources */, + B1D5ECBC20BC06CB00983FB6 /* Coding_FileManager.m in Sources */, + B1D5ECBD20BC06CB00983FB6 /* UIMessageInputView.m in Sources */, + B1D5ECBE20BC06CB00983FB6 /* AudioManager.m in Sources */, + B1D5ECBF20BC06CB00983FB6 /* MRPRPreInfo.m in Sources */, + B1D5ECC020BC06CB00983FB6 /* NSMutableString+Common.m in Sources */, + B1D5ECC120BC06CB00983FB6 /* UIViewController+BackButtonHandler.m in Sources */, + B1D5ECC220BC06CB00983FB6 /* CountryCodeCell.m in Sources */, + B1D5ECC320BC06CB00983FB6 /* RATaskBoardListListViewController.m in Sources */, + B1D5ECC420BC06CB00983FB6 /* DynamicActivityCell.m in Sources */, + B1D5ECC520BC06CB00983FB6 /* MRPRDetailCell.m in Sources */, + B1D5ECC620BC06CB00983FB6 /* TopicContentCell.m in Sources */, + B1D5ECC720BC06CB00983FB6 /* ForkTreeCell.m in Sources */, + B1D5ECC820BC06CB00983FB6 /* AMPopTip.m in Sources */, + B1D5F20F20BD3BF400983FB6 /* UINavigationController+FullscreenPopGesture.m in Sources */, + B1D5ECC920BC06CB00983FB6 /* MRPRAcceptViewController.m in Sources */, + B1D5ECCA20BC06CB00983FB6 /* UIView+Common.m in Sources */, + B1D5ECCB20BC06CB00983FB6 /* SDWebImageDownloaderOperation.m in Sources */, + B1D5ECCC20BC06CB00983FB6 /* QBAssetsViewController.m in Sources */, + B1D5ECCD20BC06CB00983FB6 /* UserInfoIconCell.m in Sources */, + B1D5ECCE20BC06CB00983FB6 /* ShopOderCell.m in Sources */, + B1D5ECCF20BC06CB00983FB6 /* SettingPasswordViewController.m in Sources */, + B1D5ECD020BC06CB00983FB6 /* FileCommentCell.m in Sources */, + B1D5ECD120BC06CB00983FB6 /* ASPopUpView.m in Sources */, + B1D5ECD220BC06CB00983FB6 /* UIActivityIndicatorView+AFNetworking.m in Sources */, + B1D5ECD320BC06CB00983FB6 /* ProjectCodeListSearchCell.m in Sources */, + B1D5ECD420BC06CB00983FB6 /* TweetSendCreateLocationCell.m in Sources */, + B1D5ECD520BC06CB00983FB6 /* EaseStartView.m in Sources */, + B1D5ECD620BC06CB00983FB6 /* ProjectTopicListView.m in Sources */, + B1D5ECD720BC06CB00983FB6 /* Message_RootViewController.m in Sources */, + B1D5ECD820BC06CB00983FB6 /* LDSimplePing.m in Sources */, + B1D5ECD920BC06CB00983FB6 /* HelpViewController.m in Sources */, + B1D5ECDA20BC06CB00983FB6 /* CSSearchVC.m in Sources */, + B1D5ECDB20BC06CB00983FB6 /* FunctionTipsManager.m in Sources */, + B1D5ECDC20BC06CB00983FB6 /* TweetSendCreateLocationViewController.m in Sources */, + B1D5ECDD20BC06CB00983FB6 /* Commits.m in Sources */, + B1D5ECDE20BC06CB00983FB6 /* QcTask.m in Sources */, + B1D5ECDF20BC06CB00983FB6 /* FileViewController.m in Sources */, + B1D5ECE020BC06CB00983FB6 /* UIImage+WebP.m in Sources */, + B1D5ECE120BC06CB00983FB6 /* TweetSendLocation.m in Sources */, + B1D5ECE220BC06CB00983FB6 /* CodingNetAPIClient.m in Sources */, + B1D5ECE320BC06CB00983FB6 /* ShopOrderTextFieldCell.m in Sources */, + B1D5ECE420BC06CB00983FB6 /* ScreenCell.m in Sources */, + B1D5ECE520BC06CB00983FB6 /* ConversationCell.m in Sources */, + B1D5ECE620BC06CB00983FB6 /* TeamListViewController.m in Sources */, + B186AEB120F462F600A6AF35 /* UIAlertController+Common.m in Sources */, + B1D5ECE720BC06CB00983FB6 /* TweetSendImagesCell.m in Sources */, + B1D5ECE820BC06CB00983FB6 /* WikiEditViewController.m in Sources */, + B1D5ECE920BC06CB00983FB6 /* MRPRListCell.m in Sources */, + B1D5ECEA20BC06CB00983FB6 /* TopicPreviewCell.m in Sources */, + B1D5ECEB20BC06CB00983FB6 /* NSString+Emojize.m in Sources */, + B1D5ECEC20BC06CB00983FB6 /* EaseGitButton.m in Sources */, + B1D5ECED20BC06CB00983FB6 /* ProjectListTaCell.m in Sources */, + B1D5ECEE20BC06CB00983FB6 /* UIImageView+MJWebCache.m in Sources */, + B1D5ECEF20BC06CB00983FB6 /* Commit.m in Sources */, + B1D5ECF020BC06CB00983FB6 /* FileVersionCell.m in Sources */, + B1D5ECF120BC06CB00983FB6 /* TeamListCell.m in Sources */, + B1D5ECF220BC06CB00983FB6 /* UIView+WebCacheOperation.m in Sources */, + B1D5ECF320BC06CB00983FB6 /* TweetSendTextCell.m in Sources */, + B1D5ECF420BC06CB00983FB6 /* XTSegmentControl.m in Sources */, + B1D5ECF520BC06CB00983FB6 /* YLGIFImage.m in Sources */, + B1D5ECF620BC06CB00983FB6 /* CountryCodeListViewController.m in Sources */, + B1D5ECF720BC06CB00983FB6 /* AllSearchDisplayVC.m in Sources */, + B1D5ECF820BC06CB00983FB6 /* TweetSendLocationDetailViewController.m in Sources */, + B1D5F22320BEA37600983FB6 /* MeRootCompanyCell.m in Sources */, + B1D5ECF920BC06CB00983FB6 /* EATerminalViewController.m in Sources */, + B1D5ECFA20BC06CB00983FB6 /* TweetSendMapAnnotation.m in Sources */, + B1D5ECFB20BC06CB00983FB6 /* MRPR.m in Sources */, + B1D5ECFC20BC06CB00983FB6 /* EaseUserInfoCell.m in Sources */, + B1D5ECFD20BC06CB00983FB6 /* CodingBannersView.m in Sources */, + B1D5ECFE20BC06CB00983FB6 /* OTPListViewController.m in Sources */, + B1D5ECFF20BC06CB00983FB6 /* UIImageView+WebCache.m in Sources */, + B1D5F21920BD485D00983FB6 /* TeamPurchaseBilling.m in Sources */, + B1D5ED0020BC06CB00983FB6 /* InputOnlyTextPlainCell.m in Sources */, + B1D5ED0120BC06CB00983FB6 /* NSTimer+Addition.m in Sources */, + B1D5ED0220BC06CB00983FB6 /* AFURLSessionManager.m in Sources */, + B1D5ED0320BC06CB00983FB6 /* MeRootServiceCell.m in Sources */, + B1D5ED0420BC06CB00983FB6 /* ActionSheetLocalePicker.m in Sources */, + B1D5ED0520BC06CB00983FB6 /* UIViewController+Swizzle.m in Sources */, + B1D5ED0620BC06CB00983FB6 /* PublicSearchModel.m in Sources */, + B1D5ED0720BC06CB00983FB6 /* MJPhotoLoadingView.m in Sources */, + B1D5ED0820BC06CB00983FB6 /* FileEditViewController.m in Sources */, + B1D5ED0920BC06CB00983FB6 /* TopicDetailViewController.m in Sources */, + B1C60CA520C0DDF60073D3CA /* TeamSettingViewController.m in Sources */, + B1D5ED0A20BC06CB00983FB6 /* UIImageView+HighlightedWebCache.m in Sources */, + B1D5ED0B20BC06CB00983FB6 /* Helper.m in Sources */, + B1D5ED0C20BC06CB00983FB6 /* PointTopCell.m in Sources */, + B1D5ED0D20BC06CB00983FB6 /* TeamMemberCell.m in Sources */, + B1D5ED0E20BC06CB00983FB6 /* ReviewerListController.m in Sources */, + B1D5ED0F20BC06CB00983FB6 /* UserInfoDetailTagCell.m in Sources */, + B1D5ED1020BC06CB00983FB6 /* SWUtilityButtonView.m in Sources */, + B1D5ED1120BC06CB00983FB6 /* VoiceMedia.m in Sources */, + B1D5ED1220BC06CB00983FB6 /* TaskComment.m in Sources */, + B1D5ED1320BC06CB00983FB6 /* EACodeReleaseTopCell.m in Sources */, + B1D5ED1420BC06CB00983FB6 /* EAPayViewController.m in Sources */, + B1D5ED1520BC06CB00983FB6 /* AGEmojiKeyBoardView.m in Sources */, + B1D5ED1620BC06CB00983FB6 /* RKSwipeBetweenViewControllers.m in Sources */, + B1D5ED1720BC06CB00983FB6 /* EditTopicViewController.m in Sources */, + B1D5ED1820BC06CB00983FB6 /* GlowImageView.m in Sources */, + B1D5ED1920BC06CB00983FB6 /* ProjectToChooseListViewController.m in Sources */, + B1D5ED1A20BC06CB00983FB6 /* SDWebImageCompat.m in Sources */, + B1D5ED1B20BC06CB00983FB6 /* EACodeReleaseBodyCell.m in Sources */, + B1D5ED1C20BC06CB00983FB6 /* Project_RootViewController.m in Sources */, + B1D5ED1D20BC06CB00983FB6 /* EaseGitButtonsView.m in Sources */, + B1D5ED1E20BC06CB00983FB6 /* SettingTagsViewController.m in Sources */, + B1D5ED1F20BC06CB00983FB6 /* EALocalCodeListCell.m in Sources */, + B1D5F23320BEADD200983FB6 /* TeamSupportCell.m in Sources */, + B1D5ED2020BC06CB00983FB6 /* ValueListCell.m in Sources */, + B1D5ED2120BC06CB00983FB6 /* TaskResourceReferenceViewController.m in Sources */, + B1D5ED2220BC06CB00983FB6 /* SVModalWebViewController.m in Sources */, + B1D5ED2320BC06CB00983FB6 /* ShopSwitchCell.m in Sources */, + B1D5ED2520BC06CB00983FB6 /* IntroductionViewController.m in Sources */, + B1D5ED2620BC06CB00983FB6 /* SDWebImagePrefetcher.m in Sources */, + B1D5ED2720BC06CB00983FB6 /* FileChanges.m in Sources */, + B1D5ED2820BC06CB00983FB6 /* UIWebView+AFNetworking.m in Sources */, + B1D5ED2920BC06CB00983FB6 /* EAWiki.m in Sources */, + B1D5ED2A20BC06CB00983FB6 /* WikiMenuListView.m in Sources */, + B1D5ED2B20BC06CB00983FB6 /* EACodeRelease.m in Sources */, + B1D5ED2C20BC06CB00983FB6 /* ForkTreeViewController.m in Sources */, + B1D5ED2D20BC06CB00983FB6 /* CommitContentCell.m in Sources */, + B1D5ED2E20BC06CB00983FB6 /* ProjectViewController.m in Sources */, + B1D5ED2F20BC06CB00983FB6 /* TagCCell.m in Sources */, + B1D5ED3020BC06CB00983FB6 /* UserInfoDetailViewController.m in Sources */, + B1D5ED3120BC06CB00983FB6 /* ProjectAdvancedSettingViewController.m in Sources */, + B1D5ED3220BC06CB00983FB6 /* SWLongPressGestureRecognizer.m in Sources */, + B1D5ED3320BC06CB00983FB6 /* QBAlbumsViewController.m in Sources */, + B1D5ED3420BC06CB00983FB6 /* TweetSendLocaitonMapViewController.m in Sources */, + B1D5ED3520BC06CB00983FB6 /* UIButton+WebCache.m in Sources */, + B1D5ED3620BC06CB00983FB6 /* EABoardTaskListBlankView.m in Sources */, + B1D5ED3720BC06CB00983FB6 /* SDWebImageManager+MJ.m in Sources */, + B1D5ED3820BC06CB00983FB6 /* TopicListView.m in Sources */, + B1D5ED3920BC06CB00983FB6 /* AbstractActionSheetPicker.m in Sources */, + B1D5ED3A20BC06CB00983FB6 /* CodingTips.m in Sources */, + B1D5ED3B20BC06CB00983FB6 /* MRPRCommentCCell.m in Sources */, + B1D5ED3C20BC06CB00983FB6 /* AMPopTip+Animation.m in Sources */, + B1C60C9120BFF7950073D3CA /* ProjectTypeExplanationViewController.m in Sources */, + B1D5ED3D20BC06CB00983FB6 /* TaskCommentTopCell.m in Sources */, + B1D5ED3E20BC06CB00983FB6 /* MRPRCommitsViewController.m in Sources */, + B1D5ED3F20BC06CB00983FB6 /* EABasePageModel.m in Sources */, + B1D5ED4020BC06CB00983FB6 /* UITableViewCell+Common.m in Sources */, + B1D5ED4120BC06CB00983FB6 /* EACodeReleaseListCell.m in Sources */, + B1D5ED4220BC06CB00983FB6 /* CSLikesVC.m in Sources */, + B1D5ED4320BC06CB00983FB6 /* UserOrProjectTweetsViewController.m in Sources */, + B1D5ED4420BC06CB00983FB6 /* CommitDetail.m in Sources */, + B1D5ED4520BC06CB00983FB6 /* DownMenuCell.m in Sources */, + B1D5ED4620BC06CB00983FB6 /* RFToolbarButton.m in Sources */, + B1D5ED4720BC06CB00983FB6 /* TopicListButton.m in Sources */, + B1C60CA920C0DDF60073D3CA /* TeamSupportViewController.m in Sources */, + B1D5ED4820BC06CB00983FB6 /* ImageSizeManager.m in Sources */, + B1D5ED4920BC06CB00983FB6 /* File.m in Sources */, + B1D5ED4A20BC06CB00983FB6 /* ShopOrderViewController.m in Sources */, + B1D5ED4B20BC06CB00983FB6 /* OTPTableViewCell.m in Sources */, + B1D5ED4C20BC06CB00983FB6 /* UIMessageInputView_CCell.m in Sources */, + B1D5ED4D20BC06CB00983FB6 /* DemoModel.m in Sources */, + B1D5ED4E20BC06CB00983FB6 /* TaskCommentBlankCell.m in Sources */, + B1D5ED4F20BC06CB00983FB6 /* AFNetworkActivityIndicatorManager.m in Sources */, + B1D5ED5020BC06CB00983FB6 /* Login.m in Sources */, + B1D5ED5120BC06CB00983FB6 /* TitleDisclosureCell.m in Sources */, + B1D5ED5220BC06CB00983FB6 /* FileDownloadView.m in Sources */, + B1D5ED5320BC06CB00983FB6 /* AFNetworkReachabilityManager.m in Sources */, + B1D5ED5420BC06CB00983FB6 /* LDNetTraceRoute.m in Sources */, + B1D5ED5520BC06CB00983FB6 /* SearchViewController.m in Sources */, + B1D5ED5620BC06CB00983FB6 /* QBImagePickerController.m in Sources */, + B1D5ED5720BC06CB00983FB6 /* EditColorViewController.m in Sources */, + B1D5ED5820BC06CB00983FB6 /* UIScrollView+SVPullToRefresh.m in Sources */, + B1D5ED5920BC06CB00983FB6 /* NSData+OTPBase32Encoding.m in Sources */, + B1D5ED5A20BC06CB00983FB6 /* StartImagesManager.m in Sources */, + B1D5ED5B20BC06CB00983FB6 /* ProjectMemberListViewController.m in Sources */, + B1D5ED5C20BC06CB00983FB6 /* ProjectActivitiesView.m in Sources */, + B1D5ED5D20BC06CB00983FB6 /* MRReviewerCell.m in Sources */, + B1D5ED5E20BC06CB00983FB6 /* TweetCommentCell.m in Sources */, + B1D5ED5F20BC06CB00983FB6 /* BaseNavigationController.m in Sources */, + B1D5ED6020BC06CB00983FB6 /* LocationHelper.m in Sources */, + B1D5ED6120BC06CB00983FB6 /* CSHotTopicPagesVC.m in Sources */, + B1D5ED6220BC06CB00983FB6 /* TaskSearchCell.m in Sources */, + B1D5ED6320BC06CB00983FB6 /* AFURLConnectionOperation.m in Sources */, + B1D5ED6420BC06CB00983FB6 /* ProjectTopic.m in Sources */, + B1D5ED6520BC06CB00983FB6 /* EACodeBranchListViewController.m in Sources */, + B1D5ED6620BC06CB00983FB6 /* TeamProjectsViewController.m in Sources */, + B1D5ED6720BC06CB00983FB6 /* RegisterViewController.m in Sources */, + B1D5ED6820BC06CB00983FB6 /* ShopBanner.m in Sources */, + B1D5ED6920BC06CB00983FB6 /* TitleRImageMoreCell.m in Sources */, + B1D5ED6A20BC06CB00983FB6 /* EABoardTaskListView.m in Sources */, + B1D5ED6B20BC06CB00983FB6 /* FileShare.m in Sources */, + B1D5ED6C20BC06CB00983FB6 /* ShopMutileValueCell.m in Sources */, + B1D5ED6D20BC06CB00983FB6 /* SVWebViewControllerActivitySafari.m in Sources */, + B1D5ED6E20BC06CB00983FB6 /* HOTPGenerator.m in Sources */, + B1D5ED6F20BC06CB00983FB6 /* WikiViewController.m in Sources */, + B1D5ED7020BC06CB00983FB6 /* TweetDetailViewController.m in Sources */, + B1D5ED7120BC06CB00983FB6 /* Team.m in Sources */, + B1D5ED7220BC06CB00983FB6 /* LoginViewController.m in Sources */, + B1D5ED7320BC06CB00983FB6 /* NSData+gzip.m in Sources */, + B1D5ED7420BC06CB00983FB6 /* NSString+OTPURLArguments.m in Sources */, + B1D5ED7520BC06CB00983FB6 /* ProjectSquareViewController.m in Sources */, + B1D5ED7620BC06CB00983FB6 /* EACodeBranches.m in Sources */, + B1D5ED7720BC06CB00983FB6 /* NSLayoutConstraintLine.m in Sources */, + B1D5ED7820BC06CB00983FB6 /* ProjectMemberActivityListViewController.m in Sources */, + B1D5ED7920BC06CB00983FB6 /* BaseViewController.m in Sources */, + B1D5ED7A20BC06CB00983FB6 /* TopicCommentCCell.m in Sources */, + B1D5ED7B20BC06CB00983FB6 /* EaseToolBar.m in Sources */, + B1D5ED7C20BC06CB00983FB6 /* Project.m in Sources */, + B1D5ED7D20BC06CB00983FB6 /* ProjectActivityListView.m in Sources */, + B1D5ED7E20BC06CB00983FB6 /* AFHTTPRequestOperationManager.m in Sources */, + B1D5ED7F20BC06CB00983FB6 /* BubblePlayView.m in Sources */, + B1D5ED8020BC06CB00983FB6 /* FRDLivelyButton.m in Sources */, + B1D5ED8120BC06CB00983FB6 /* UIColor+expanded.m in Sources */, + B1D5ED8220BC06CB00983FB6 /* MRListView.m in Sources */, + B1D5ED8320BC06CB00983FB6 /* UserActiveStatusView.m in Sources */, + B1D5ED8420BC06CB00983FB6 /* ScreenView.m in Sources */, + B1D5ED8520BC06CB00983FB6 /* ProjectCount.m in Sources */, + B1D5ED8620BC06CB00983FB6 /* ResourceReference.m in Sources */, + B1D5ED8720BC06CB00983FB6 /* SDWebImageDownloader.m in Sources */, + B1D5ED8820BC06CB00983FB6 /* HtmlMedia.m in Sources */, + B1D5ED8920BC06CB00983FB6 /* EditLabelCell.m in Sources */, + B1C60CA720C0DDF60073D3CA /* TeamPurchaseViewController.m in Sources */, + B1D5ED8A20BC06CB00983FB6 /* NSString+Common.m in Sources */, + B1D5ED8B20BC06CB00983FB6 /* BasicPreviewItem.m in Sources */, + B1D5ED8C20BC06CB00983FB6 /* MeDisplayViewController.m in Sources */, + B1D5ED8D20BC06CB00983FB6 /* SDImageCache.m in Sources */, + B1D5ED8E20BC06CB00983FB6 /* AddReviewerViewController.m in Sources */, + B1D5ED8F20BC06CB00983FB6 /* FunctionIntroManager.m in Sources */, + B1D5ED9020BC06CB00983FB6 /* NJKWebViewProgress.m in Sources */, + B1D5ED9120BC06CB00983FB6 /* MRPRTopCell.m in Sources */, + B1D5ED9220BC06CB00983FB6 /* ProjectTaskListView.m in Sources */, + B1D5ED9320BC06CB00983FB6 /* ResetLabelViewController.m in Sources */, + B1D5ED9420BC06CB00983FB6 /* FileComment.m in Sources */, + B1D5ED9520BC06CB00983FB6 /* Tweet_RootViewController.m in Sources */, + B1D5ED9620BC06CB00983FB6 /* ProjectDeleteAlertControllerVisualStyle.m in Sources */, + B1D5F21720BD485D00983FB6 /* TeamPurchaseOrder.m in Sources */, + B1D5ED9720BC06CB00983FB6 /* ProjectItemsCell.m in Sources */, + B1D5ED9820BC06CB00983FB6 /* WebContentManager.m in Sources */, + B1D5ED9920BC06CB00983FB6 /* Login2FATipCell.m in Sources */, + B1D5ED9A20BC06CB00983FB6 /* FileChangeDetailViewController.m in Sources */, + B1D5ED9B20BC06CB00983FB6 /* MJPhotoBrowser.m in Sources */, + B1D5ED9C20BC06CB00983FB6 /* CSMyTopicVC.m in Sources */, + B1D5ED9D20BC06CB00983FB6 /* LocationViewController.m in Sources */, + B1D5ED9E20BC06CB00983FB6 /* JDStatusBarLayoutMarginHelper.m in Sources */, + B1D5ED9F20BC06CB00983FB6 /* iCarousel.m in Sources */, + B1D5EDA020BC06CB00983FB6 /* ProjectDescriptionCell.m in Sources */, + B1D5EDA120BC06CB00983FB6 /* UIButton+Common.m in Sources */, + B1D5EDA220BC06CB00983FB6 /* UIDownMenuButton.m in Sources */, + B1D5EDA320BC06CB00983FB6 /* TopicAnswerDetailViewController.m in Sources */, + B1D5EDA420BC06CB00983FB6 /* UsersViewController.m in Sources */, + B1D5EDA520BC06CB00983FB6 /* SkillCCell.m in Sources */, + B1D5EDA620BC06CB00983FB6 /* MenuButton.m in Sources */, + B1D5EDA720BC06CB00983FB6 /* AMPopTip+Draw.m in Sources */, + B1D5EDA820BC06CB00983FB6 /* ProjectArchiveViewController.m in Sources */, + B1D5EDA920BC06CB00983FB6 /* TeamViewController.m in Sources */, + B1D5EDAA20BC06CB00983FB6 /* LocalFileViewController.m in Sources */, + B1D5EDAB20BC06CB00983FB6 /* ResetLabelCell.m in Sources */, + B1D5EDAD20BC06CB00983FB6 /* EACodeBranchListCell.m in Sources */, + B1D5EDAE20BC06CB00983FB6 /* ValueListViewController.m in Sources */, + B1D5EDAF20BC06CB00983FB6 /* ActivateViewController.m in Sources */, + B1D5EDB020BC06CB00983FB6 /* MRPRListViewController.m in Sources */, + B1D5EDB120BC06CB00983FB6 /* NSObject+ObjectMap.m in Sources */, + B1D5EDB220BC06CB00983FB6 /* SWCellScrollView.m in Sources */, + B1D5EDB320BC06CB00983FB6 /* ActionSheetCustomPicker.m in Sources */, + B1D5EDB420BC06CB00983FB6 /* PRMRSearchCell.m in Sources */, + B1D5EDB520BC06CB00983FB6 /* TweetSendViewController.m in Sources */, + B1D5EDB620BC06CB00983FB6 /* PrivateMessages.m in Sources */, + B1D5EDB720BC06CB00983FB6 /* YLImageView.m in Sources */, + B1D5EDB820BC06CB00983FB6 /* CodingBanner.m in Sources */, + B1D5EDB920BC06CB00983FB6 /* ShopOrderModel.m in Sources */, + B1D5EDBA20BC06CB00983FB6 /* MartFunctionTipView.m in Sources */, + B1D5EDBB20BC06CB00983FB6 /* CodingSkill.m in Sources */, + B1D5EDBC20BC06CB00983FB6 /* DashesLineView.m in Sources */, + B1D5EDBD20BC06CB00983FB6 /* Tweets.m in Sources */, + B1D5EDBE20BC06CB00983FB6 /* OTPAuthURL.m in Sources */, + B1D5EDBF20BC06CB00983FB6 /* MJPhoto.m in Sources */, + B1D5EDC020BC06CB00983FB6 /* TweetCell.m in Sources */, + B1D5EDC120BC06CB00983FB6 /* UIBarButtonItem+Common.m in Sources */, + B1D5EDC220BC06CB00983FB6 /* RRFPSBar.m in Sources */, + B1D5EDC320BC06CB00983FB6 /* EaseUserHeaderView.m in Sources */, + B1D5EDC420BC06CB00983FB6 /* PointRecordCell.m in Sources */, + B1D5EDC520BC06CB00983FB6 /* UIView+PressMenu.m in Sources */, + B1D5EDC620BC06CB00983FB6 /* Tasks.m in Sources */, + B1C60C9920C004C80073D3CA /* TeamPurchaseTopCell.m in Sources */, + B1D5EDC720BC06CB00983FB6 /* MBProgressHUD+Add.m in Sources */, + B1D5EDC820BC06CB00983FB6 /* CodeViewController.m in Sources */, + B1D5EDC920BC06CB00983FB6 /* ProjectTweetSendViewController.m in Sources */, + B1D5EDCA20BC06CB00983FB6 /* CommitListCell.m in Sources */, + B1D5EDCB20BC06CB00983FB6 /* EARestrictedScrollView.m in Sources */, + B1D5EDCC20BC06CB00983FB6 /* RDVTabBarController.m in Sources */, + B1D5EDCD20BC06CB00983FB6 /* ProjectLineNote.m in Sources */, + B1D5EDCE20BC06CB00983FB6 /* ProjectAboutMeListCell.m in Sources */, + B1D5EDCF20BC06CB00983FB6 /* EAFliterMenu.m in Sources */, + B1D5EDD020BC06CB00983FB6 /* HotTopicBannerView.m in Sources */, + B1D5F21B20BD485D00983FB6 /* TeamPurchaseBillingDetail.m in Sources */, + B1D5EDD120BC06CB00983FB6 /* EditTaskViewController.m in Sources */, + B1D5EDD220BC06CB00983FB6 /* TagColorDisplayCell.m in Sources */, + B1D5EDD320BC06CB00983FB6 /* ProjectTopics.m in Sources */, + B1D5EDD420BC06CB00983FB6 /* ReviewersInfo.m in Sources */, + B1D5EDD520BC06CB00983FB6 /* ProjectTasksView.m in Sources */, + B1D5EDD620BC06CB00983FB6 /* UICustomCollectionView.m in Sources */, + B1D5EDD720BC06CB00983FB6 /* NSObject+Common.m in Sources */, + B1D5EDD820BC06CB00983FB6 /* SMPageControl.m in Sources */, + B1D5EDD920BC06CB00983FB6 /* Coding_iOS.xcdatamodeld in Sources */, + B1D5EDDA20BC06CB00983FB6 /* ConversationViewController.m in Sources */, + B1D5EDDB20BC06CB00983FB6 /* EaseInputTipsView.m in Sources */, + B1D5EDDC20BC06CB00983FB6 /* NSDate+convenience.m in Sources */, + B1D5EDDD20BC06CB00983FB6 /* CSTopicModel.m in Sources */, + B1D5EDDE20BC06CB00983FB6 /* FileLineChange.m in Sources */, + B1D5EDDF20BC06CB00983FB6 /* PasswordViewController.m in Sources */, + B1C60C7F20BFCDBE0073D3CA /* EditMemberTypeProjectListViewController.m in Sources */, + B1D5EDE020BC06CB00983FB6 /* BaseCollectionCell.m in Sources */, + B1D5EDE120BC06CB00983FB6 /* SVWebViewController.m in Sources */, + B1D5EDE220BC06CB00983FB6 /* EACodeReleaseViewController.m in Sources */, + B1D5EDE320BC06CB00983FB6 /* AFSecurityPolicy.m in Sources */, + B1D5EDE420BC06CB00983FB6 /* UIImage+MultiFormat.m in Sources */, + B1D5EDE520BC06CB00983FB6 /* TweetMediaItemSingleCCell.m in Sources */, + B1D5EDE620BC06CB00983FB6 /* TweetLikeUserCCell.m in Sources */, + B1D5EDE720BC06CB00983FB6 /* RewardTipManager.m in Sources */, + B1D5EDE920BC06CB00983FB6 /* CommitFilesViewController.m in Sources */, + B1D5EDEA20BC06CB00983FB6 /* FileChange.m in Sources */, + B1D5EDEB20BC06CB00983FB6 /* main.m in Sources */, + B1D5EDEC20BC06CB00983FB6 /* NewProjectViewController.m in Sources */, + B1D5EDED20BC06CB00983FB6 /* TeamTopCell.m in Sources */, + B1D5EDEE20BC06CB00983FB6 /* UserInfoTextCell.m in Sources */, + B1D5EDEF20BC06CB00983FB6 /* MRPRDisclosureCell.m in Sources */, + B1D5EDF020BC06CB00983FB6 /* AboutViewController.m in Sources */, + B1D5EDF120BC06CB00983FB6 /* QBAssetCell.m in Sources */, + B1D5EDF220BC06CB00983FB6 /* EACodeReleaseListViewController.m in Sources */, + B1D5EDF320BC06CB00983FB6 /* MeRootUserCell.m in Sources */, + B1D5EDF420BC06CB00983FB6 /* ShopGoods.m in Sources */, + B1D5EDF520BC06CB00983FB6 /* AMPopTip+Entrance.m in Sources */, + B1D5EDF620BC06CB00983FB6 /* PointRecords.m in Sources */, + B1D5EDF720BC06CB00983FB6 /* QBCheckmarkView.m in Sources */, + B1D5EDF820BC06CB00983FB6 /* AFHTTPRequestOperation.m in Sources */, + B1D5EDF920BC06CB00983FB6 /* ProjectLineNoteActivity.m in Sources */, + B1D5EDFA20BC06CB00983FB6 /* MessageMediaItemCCell.m in Sources */, + B1D5EDFB20BC06CB00983FB6 /* MRPRS.m in Sources */, + B1D5EDFC20BC06CB00983FB6 /* EAEditCodeReleaseViewController.m in Sources */, + B1D5EDFD20BC06CB00983FB6 /* UIImage+Common.m in Sources */, + B1D5EDFE20BC06CB00983FB6 /* ProjectTopicCell.m in Sources */, + B1D5EDFF20BC06CB00983FB6 /* TextCheckMarkCell.m in Sources */, + B1D5EE0020BC06CB00983FB6 /* AFHTTPSessionManager.m in Sources */, + B1D5EE0120BC06CB00983FB6 /* XHRealTimeBlur.m in Sources */, + B1D5EE0220BC06CB00983FB6 /* ProjectFile.m in Sources */, + B1D5EE0320BC06CB00983FB6 /* CSTopiclistView.m in Sources */, + B1D5EE0420BC06CB00983FB6 /* UILabel+Common.m in Sources */, + B1D5EE0520BC06CB00983FB6 /* QBSlomoIconView.m in Sources */, + B1D5EE0620BC06CB00983FB6 /* SDWebImageDecoder.m in Sources */, + B1D5EE0720BC06CB00983FB6 /* TweetSearchCell.m in Sources */, + B1D5EE0820BC06CB00983FB6 /* AFURLResponseSerialization.m in Sources */, + B1D5EE0920BC06CB00983FB6 /* CodeFile.m in Sources */, + B1D5EE0A20BC06CB00983FB6 /* EAMilestone.m in Sources */, + B1D5EE0B20BC06CB00983FB6 /* CSSearchCell.m in Sources */, + B1C60C9B20C004C80073D3CA /* TeamPurchaseBillingCell.m in Sources */, + B1D5EE0C20BC06CB00983FB6 /* JDStatusBarView.m in Sources */, + B1D5EE0D20BC06CB00983FB6 /* MRPRAcceptEditCell.m in Sources */, + B1D5EE0E20BC06CB00983FB6 /* EACodeReleaseAttachmentsOrReferencesCell.m in Sources */, + B1D5EE0F20BC06CB00983FB6 /* MenuItem.m in Sources */, + B1D5EE1020BC06CB00983FB6 /* TweetMediaItemCCell.m in Sources */, + B1D5EE1120BC06CB00983FB6 /* EditLabelHeadCell.m in Sources */, + B1D5EE1220BC06CB00983FB6 /* TaskContentCell.m in Sources */, + B1D5EE1320BC06CB00983FB6 /* TaskDescriptionViewController.m in Sources */, + B1D5EE1420BC06CB00983FB6 /* AddressManager.m in Sources */, + B1D5EE1520BC06CB00983FB6 /* ProjectSettingViewController.m in Sources */, + B1D5EE1620BC06CB00983FB6 /* ActionSheetDistancePicker.m in Sources */, + B1D5EE1720BC06CB00983FB6 /* ProjectCodeListCell.m in Sources */, + B1D5EE1820BC06CB00983FB6 /* UserServiceInfo.m in Sources */, + B1D5EE1920BC06CB00983FB6 /* TweetSendLocationViewController.m in Sources */, + B1C60C7B20BFA2150073D3CA /* NProjectFileListView.m in Sources */, + B1D5EE1A20BC06CB00983FB6 /* ProjectFolderListCell.m in Sources */, + B1D5EE1B20BC06CB00983FB6 /* User.m in Sources */, + B1D5EE1C20BC06CB00983FB6 /* MJPhotoToolbar.m in Sources */, + B1D5EE1D20BC06CB00983FB6 /* TweetDetailCommentCell.m in Sources */, + B1D5EE1E20BC06CB00983FB6 /* SettingSkillsViewController.m in Sources */, + B1D5EE1F20BC06CB00983FB6 /* MRPRBaseInfo.m in Sources */, + B1D5EE2020BC06CB00983FB6 /* AudioRecordView.m in Sources */, + B1D5EE2120BC06CB00983FB6 /* TagColorEditCell.m in Sources */, + B1D5EE2220BC06CB00983FB6 /* QBVideoIndicatorView.m in Sources */, + B1C60C9D20C004C80073D3CA /* TeamPurchaseOrderCell.m in Sources */, + B1D5EE2320BC06CB00983FB6 /* FileInfoViewController.m in Sources */, + B1D5EE2420BC06CB00983FB6 /* CommitInfo.m in Sources */, + B1D5EE2520BC06CB00983FB6 /* CodeBranchTagButton.m in Sources */, + B1D5EE2620BC06CB00983FB6 /* ShopGoodsInfoView.m in Sources */, + B1D5EE2720BC06CB00983FB6 /* UIBadgeView.m in Sources */, + B1D5EE2820BC06CB00983FB6 /* BaseModel.m in Sources */, + B1D5EE2920BC06CB00983FB6 /* TaskSelectionView.m in Sources */, + B1D5EE2A20BC06CB00983FB6 /* ProjectListCell.m in Sources */, + B1D5EE2B20BC06CB00983FB6 /* EABoardTaskList.m in Sources */, + B1D5EE2C20BC06CB00983FB6 /* CSTopicDetailVC.m in Sources */, + B1D5EE2D20BC06CB00983FB6 /* ToMessageCell.m in Sources */, + B1D5EE2E20BC06CB00983FB6 /* SVWebViewControllerActivityChrome.m in Sources */, + B1D5EE2F20BC06CB00983FB6 /* PhoneCodeButton.m in Sources */, + B1D5EE3020BC06CB00983FB6 /* TopicAnswerCommentMoreCell.m in Sources */, + B1D5EE3120BC06CB00983FB6 /* LDNetPing.m in Sources */, + B1D5EE3220BC06CB00983FB6 /* DynamicCommentCell.m in Sources */, + B1D5EE3320BC06CB00983FB6 /* CSScrollview.m in Sources */, + B1D5EE3420BC06CB00983FB6 /* NSString+Attribute.m in Sources */, + B1D5EE3520BC06CB00983FB6 /* ProjectTopicsView.m in Sources */, + B1D5EE3620BC06CB00983FB6 /* ProjectFolder.m in Sources */, + B1D5EE3720BC06CB00983FB6 /* ProjectActivityListCell.m in Sources */, + B1D5EE3820BC06CB00983FB6 /* JDStatusBarStyle.m in Sources */, + B1D5EE3920BC06CB00983FB6 /* LDNetDiagnoService.m in Sources */, + B1D5EE3A20BC06CB00983FB6 /* EditCodeViewController.m in Sources */, + B1D5EE3B20BC06CB00983FB6 /* SettingTextViewController.m in Sources */, + B1D5EE3C20BC06CB00983FB6 /* EATaskBoardListTaskCell.m in Sources */, + B1D5EE3D20BC06CB00983FB6 /* LocationCell.m in Sources */, + B1D5EE3E20BC06CB00983FB6 /* QBVideoIconView.m in Sources */, + B1D5EE3F20BC06CB00983FB6 /* Comment.m in Sources */, + B1D5EE4020BC06CB00983FB6 /* TweetSendLocationCell.m in Sources */, + B1D5EE4120BC06CB00983FB6 /* HtmlMediaViewController.m in Sources */, + B1D5EE4220BC06CB00983FB6 /* CSTopicCreateVC.m in Sources */, + B1D5EE4320BC06CB00983FB6 /* NSMutableArray+SWUtilityButtons.m in Sources */, + B1D5EE4420BC06CB00983FB6 /* MActivityInfo.m in Sources */, + B1D5EE4520BC06CB00983FB6 /* UILongPressMenuImageView.m in Sources */, + B1D5EE4620BC06CB00983FB6 /* FileChangesIntroduceCell.m in Sources */, + B1D5EE4720BC06CB00983FB6 /* Register.m in Sources */, + B1D5EE4820BC06CB00983FB6 /* ShopOrder.m in Sources */, + B1D5EE4920BC06CB00983FB6 /* TopicAnswerCell.m in Sources */, + B1D5EE4A20BC06CB00983FB6 /* NSTimer+Common.m in Sources */, + B1D5EE4B20BC06CB00983FB6 /* CodingTipCell.m in Sources */, + B1D5EE4C20BC06CB00983FB6 /* AboutPointViewController.m in Sources */, + B1D5EE4D20BC06CB00983FB6 /* ProjectTagsView.m in Sources */, + B1D5EE4E20BC06CB00983FB6 /* Projects.m in Sources */, + B1D5EE4F20BC06CB00983FB6 /* UserInfoDetailUserCell.m in Sources */, + B1D5EE5020BC06CB00983FB6 /* ProjectActivities.m in Sources */, + B1D5EE5120BC06CB00983FB6 /* LocalFileCell.m in Sources */, + B1D5EE5220BC06CB00983FB6 /* MRReviewerListCell.m in Sources */, + B1D5EE5320BC06CB00983FB6 /* UITapImageView.m in Sources */, + B1D5EE5420BC06CB00983FB6 /* NSURL+OTPURLArguments.m in Sources */, + B1D5EE5520BC06CB00983FB6 /* FileActivitiesViewController.m in Sources */, + B1D5EE5620BC06CB00983FB6 /* LocalFolderCell.m in Sources */, + B1D5EE5720BC06CB00983FB6 /* SVWebViewControllerActivity.m in Sources */, + B1D5EE5820BC06CB00983FB6 /* TagsScrollView.m in Sources */, + B1D5EE5920BC06CB00983FB6 /* TaskDescriptionCell.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ @@ -8850,24 +12658,38 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = NO; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = NO; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Yuanchuang Wang (6KJRVPP9CY)"; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -8880,7 +12702,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; @@ -8890,23 +12712,37 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = NO; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = NO; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Shenzhen Coding Network Technology Co., Ltd. (QN5Z87S3LH)"; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = NS_BLOCK_ASSERTIONS; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -8914,7 +12750,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; ONLY_ACTIVE_ARCH = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; @@ -9009,6 +12845,94 @@ }; name = Release; }; + B1D5F20020BC06CB00983FB6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 59EA81AF0F8C7610F675E1EB /* Pods-Coding_iOS-Coding_Enterprise_iOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon_E; + CODE_SIGN_ENTITLEMENTS = Coding_iOS/Coding_Enterprise_iOS.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = QN5Z87S3LH; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "$(PROJECT_DIR)/Coding_iOS/Vendor/AlipaySDK", + ); + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Coding_iOS/Coding_Enterprise_iOS-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /usr/include/libxml2, + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "Pods/evernote-cloud-sdk-ios/**", + "$(SRCROOT)/Carthage/Build/iOS/ObjectiveGit.framework/Headers/", + ); + INFOPLIST_FILE = "$(SRCROOT)/Coding_iOS/Coding_Enterprise_iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Coding_iOS/Vendor/XGPush", + "$(PROJECT_DIR)/Coding_iOS/Util/Audio/opencore-amr-iOS/lib", + ); + PRODUCT_BUNDLE_IDENTIFIER = net.coding.CodingEnterpriseForiOS; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = 1; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + B1D5F20120BC06CB00983FB6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 22A08D8B77355DB8A773B8E2 /* Pods-Coding_iOS-Coding_Enterprise_iOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon_E; + CODE_SIGN_ENTITLEMENTS = Coding_iOS/Coding_Enterprise_iOS.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = QN5Z87S3LH; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + "$(PROJECT_DIR)/Coding_iOS/Vendor/AlipaySDK", + ); + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Coding_iOS/Coding_Enterprise_iOS-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /usr/include/libxml2, + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "Pods/evernote-cloud-sdk-ios/**", + "$(SRCROOT)/Carthage/Build/iOS/ObjectiveGit.framework/Headers/", + ); + INFOPLIST_FILE = "$(SRCROOT)/Coding_iOS/Coding_Enterprise_iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Coding_iOS/Vendor/XGPush", + "$(PROJECT_DIR)/Coding_iOS/Util/Audio/opencore-amr-iOS/lib", + ); + PRODUCT_BUNDLE_IDENTIFIER = net.coding.CodingEnterpriseForiOS; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = 1; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -9030,6 +12954,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + B1D5F1FF20BC06CB00983FB6 /* Build configuration list for PBXNativeTarget "Coding_Enterprise_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B1D5F20020BC06CB00983FB6 /* Debug */, + B1D5F20120BC06CB00983FB6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCVersionGroup section */ diff --git a/Coding_iOS.xcodeproj/xcshareddata/xcschemes/Coding_Enterprise_iOS.xcscheme b/Coding_iOS.xcodeproj/xcshareddata/xcschemes/Coding_Enterprise_iOS.xcscheme new file mode 100644 index 000000000..b934a3b52 --- /dev/null +++ b/Coding_iOS.xcodeproj/xcshareddata/xcschemes/Coding_Enterprise_iOS.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Coding_iOS.xcodeproj/xcshareddata/xcschemes/Coding_iOS.xcscheme b/Coding_iOS.xcodeproj/xcshareddata/xcschemes/Coding_iOS.xcscheme new file mode 100644 index 000000000..7eacabe99 --- /dev/null +++ b/Coding_iOS.xcodeproj/xcshareddata/xcschemes/Coding_iOS.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Coding_iOS.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Coding_iOS.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..08de0be8d --- /dev/null +++ b/Coding_iOS.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded + + + diff --git a/Coding_iOS/.DS_Store b/Coding_iOS/.DS_Store index c158c830e..cb024efb6 100644 Binary files a/Coding_iOS/.DS_Store and b/Coding_iOS/.DS_Store differ diff --git a/Coding_iOS/AppDelegate.m b/Coding_iOS/AppDelegate.m index 70ae53ada..cf64487f2 100644 --- a/Coding_iOS/AppDelegate.m +++ b/Coding_iOS/AppDelegate.m @@ -30,6 +30,7 @@ #import "TweetSendViewController.h" #import "ProjectToChooseListViewController.h" #import "OTPListViewController.h" +#import "WikiEditViewController.h" #import "FunctionIntroManager.h" #import @@ -48,17 +49,10 @@ @implementation AppDelegate #pragma mark XGPush - (void)registerPush{ - float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue]; - if(sysVer < 8){ - [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; - }else{ -#if __IPHONE_OS_VERSION_MAX_ALLOWED >= _IPHONE80_ - UIMutableUserNotificationCategory *categorys = [[UIMutableUserNotificationCategory alloc] init]; - UIUserNotificationSettings *userSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert - categories:[NSSet setWithObject:categorys]]; - [[UIApplication sharedApplication] registerUserNotificationSettings:userSettings]; -#endif - } + UIMutableUserNotificationCategory *categorys = [[UIMutableUserNotificationCategory alloc] init]; + UIUserNotificationSettings *userSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert + categories:[NSSet setWithObject:categorys]]; + [[UIApplication sharedApplication] registerUserNotificationSettings:userSettings]; } #pragma mark UserAgent @@ -69,8 +63,11 @@ - (void)registerUserAgent{ } #pragma lifeCycle -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ + if (kTarget_Enterprise) {//这是很早之前为测试弄的吧 + [NSObject preCookieHandle];//cookie 设置 + } + self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; @@ -98,16 +95,20 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( [self.window makeKeyAndVisible]; [FunctionIntroManager showIntroPage]; - EaseStartView *startView = [EaseStartView new]; - @weakify(self); - [startView startAnimationWithCompletionBlock:^(EaseStartView *easeStartView) { - @strongify(self); + if (kTarget_Enterprise) { [self completionStartAnimationWithOptions:launchOptions]; - }]; + }else{ + EaseStartView *startView = [EaseStartView new]; + @weakify(self); + [startView startAnimationWithCompletionBlock:^(EaseStartView *easeStartView) { + @strongify(self); + [self completionStartAnimationWithOptions:launchOptions]; + }]; + } #if DEBUG -// [[RRFPSBar sharedInstance] setShowsAverage:YES]; -// [[RRFPSBar sharedInstance] setHidden:NO]; + [[RRFPSBar sharedInstance] setShowsAverage:YES]; + [[RRFPSBar sharedInstance] setHidden:NO]; #endif return YES; } @@ -124,14 +125,16 @@ - (void)completionStartAnimationWithOptions:(NSDictionary *)launchOptions{ UMConfigInstance.appKey = kUmeng_AppKey; [MobClick startWithConfigure:UMConfigInstance]; - //UMSocialManager 第三方登录 - [[UMSocialManager defaultManager] openLog:YES]; - [UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO; - [[UMSocialManager defaultManager] setUmSocialAppkey:kUmeng_AppKey]; - [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:kSocial_WX_ID appSecret:kSocial_WX_Secret redirectURL:nil]; - [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:kSocial_QQ_ID appSecret:kSocial_QQ_Secret redirectURL:nil]; - [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:kSocial_Sina_ID appSecret:kSocial_Sina_Secret redirectURL:kSocial_Sina_RedirectURL]; - [ENSession setSharedSessionConsumerKey:kSocial_EN_Key consumerSecret:kSocial_EN_Secret optionalHost:nil]; + if (!kTarget_Enterprise) { + //UMSocialManager & 第三方登录 + [[UMSocialManager defaultManager] openLog:YES]; + [UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO; + [[UMSocialManager defaultManager] setUmSocialAppkey:kUmeng_AppKey]; + [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:kSocial_WX_ID appSecret:kSocial_WX_Secret redirectURL:nil]; + [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:kSocial_QQ_ID appSecret:kSocial_QQ_Secret redirectURL:nil]; + [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:kSocial_Sina_ID appSecret:kSocial_Sina_Secret redirectURL:kSocial_Sina_RedirectURL]; + [ENSession setSharedSessionConsumerKey:kSocial_EN_Key consumerSecret:kSocial_EN_Secret optionalHost:nil]; + } // 信鸽推送 [XGPush startApp:kXGPush_Id appKey:kXGPush_Key]; @@ -157,6 +160,9 @@ - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. + if ([[BaseViewController presentingVC] isKindOfClass:[WikiEditViewController class]]) { + [(WikiEditViewController *)[BaseViewController presentingVC] saveWikiDraft]; + } [[ImageSizeManager shareManager] save]; [[Tweet tweetForSend] saveSendData]; } @@ -187,7 +193,7 @@ - (void)applicationDidBecomeActive:(UIApplication *)application #pragma clang diagnostic pop } } - // Coding 报告 + // CODING 报告 [[EADeviceToServerLog shareManager] tryToStart]; } @@ -197,6 +203,9 @@ - (void)applicationWillTerminate:(UIApplication *)application [self saveContext]; } +#ifndef Target_Enterprise + +// Universal Links - 个人版支持的东西 #pragma mark Universal Links - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler{ @@ -212,6 +221,7 @@ - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserAct return YES; } +#endif #pragma mark - XGPush Message - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken @@ -238,14 +248,29 @@ - (void)application:(UIApplication *)application didRegisterUserNotificationSett #pragma mark - Methods Private - (void)setupLoginViewController{ +#ifdef Target_Enterprise + + IntroductionViewController *introductionVC = [[IntroductionViewController alloc] init]; + [self.window setRootViewController:introductionVC]; + [introductionVC presentLoginUI]; + +#else + LoginViewController *loginVC = [[LoginViewController alloc] init]; [self.window setRootViewController:[[UINavigationController alloc] initWithRootViewController:loginVC]]; + +#endif } - (void)setupIntroductionViewController{ - [self setupLoginViewController];//猥琐换 -// IntroductionViewController *introductionVC = [[IntroductionViewController alloc] init]; -// [self.window setRootViewController:introductionVC]; + if (kTarget_Enterprise) { + IntroductionViewController *introductionVC = [[IntroductionViewController alloc] init]; + [self.window setRootViewController:introductionVC]; + }else{ + [self setupLoginViewController];//猥琐换 +// IntroductionViewController *introductionVC = [[IntroductionViewController alloc] init]; +// [self.window setRootViewController:introductionVC]; + } } - (void)setupTabViewController{ @@ -256,6 +281,15 @@ - (void)setupTabViewController{ } - (void)customizeInterface { + {//UIBarButtonItem 颜色&字体 + NSDictionary *textAttributes = @{ + NSFontAttributeName: [UIFont systemFontOfSize:kBackButtonFontSize], + NSForegroundColorAttributeName: kColorLightBlue, + }; + [[UIBarButtonItem appearance] setTitleTextAttributes:textAttributes forState:UIControlStateNormal]; + [[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:kBackButtonFontSize]} forState:UIControlStateDisabled]; + [[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:kBackButtonFontSize]} forState:UIControlStateHighlighted]; + } //设置Nav的背景色和title色 UINavigationBar *navigationBarAppearance = [UINavigationBar appearance]; [navigationBarAppearance setBackgroundImage:[UIImage imageWithColor:[NSObject baseURLStrIsProduction]? kColorNavBG: kColorActionYellow] forBarMetrics:UIBarMetricsDefault]; @@ -274,7 +308,7 @@ - (void)customizeInterface { } #pragma mark URL Schemes -- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ +- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{ DebugLog(@"path: %@, params: %@", [url path], [url queryParams]); if ([url.absoluteString hasPrefix:kCodingAppScheme]) { NSDictionary *queryParams = [url queryParams]; @@ -296,16 +330,46 @@ - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceAppl }else if ([url.absoluteString hasPrefix:@"en-:"]){ return [[ENSession sharedSession] handleOpenURL:url]; }else{ - return [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation]; + return [[UMSocialManager defaultManager] handleOpenURL:url options:options]; } return YES; } +//- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ +// DebugLog(@"path: %@, params: %@", [url path], [url queryParams]); +// if ([url.absoluteString hasPrefix:kCodingAppScheme]) { +// NSDictionary *queryParams = [url queryParams]; +// if ([url.host isEqualToString:@"safepay"]) {//支付宝支付 +// [self p_handlePayURL:url]; +// }else if (queryParams[@"email"] && queryParams[@"key"]) {//重置密码 +// [self showPasswordWithURL:url]; +// }else if ([queryParams[@"type"] isEqualToString:@"tweet"]){//发冒泡 +// if ([Login isLogin]) { +// [TweetSendViewController presentWithParams:queryParams]; +// }else{ +// [NSObject showHudTipStr:@"未登录"]; +// } +// }else{//一般模式解析网页 +// [BaseViewController presentLinkStr:url.absoluteString]; +// } +// }else if ([url.scheme isEqualToString:kSocial_WX_ID] && [url.host isEqualToString:@"pay"]){//微信支付 +// [self p_handlePayURL:url]; +// }else if ([url.absoluteString hasPrefix:@"en-:"]){ +// return [[ENSession sharedSession] handleOpenURL:url]; +// }else{ +// return [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation]; +// } +// return YES; +//} + - (void)p_handlePayURL:(NSURL *)url{ UIViewController *vc = [BaseViewController presentingVC]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundeclared-selector" if ([vc respondsToSelector:@selector(handlePayURL:)]) { [vc performSelector:@selector(handlePayURL:) withObject:url]; } +#pragma clang diagnostic pop } - (BOOL)showPasswordWithURL:(NSURL *)url{ @@ -457,7 +521,7 @@ - (void)application:(UIApplication *)application performActionForShortcutItem:(U if (![presentingVC isKindOfClass:[LoginViewController class]]) { LoginViewController *vc = [[LoginViewController alloc] init]; vc.showDismissButton = YES; - UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; + UINavigationController *nav = [[BaseNavigationController alloc] initWithRootViewController:vc]; [presentingVC presentViewController:nav animated:YES completion:nil]; } }else{ @@ -472,7 +536,6 @@ - (void)application:(UIApplication *)application performActionForShortcutItem:(U }else if ([shortcutItem.type isEqualToString:@"shortcut_tweet"]){ TweetSendViewController *vc = [[TweetSendViewController alloc] init]; vc.sendNextTweet = ^(Tweet *nextTweet){ - [nextTweet saveSendData];//发送前保存草稿 [[Coding_NetAPIManager sharedManager] request_Tweet_DoTweet_WithObj:nextTweet andBlock:^(id data, NSError *error) { if (data) { if ([[BaseViewController presentingVC] respondsToSelector:NSSelectorFromString(@"refresh")]) { @@ -483,6 +546,8 @@ - (void)application:(UIApplication *)application performActionForShortcutItem:(U } [Tweet deleteSendData];//发送成功后删除草稿 + }else{ + [nextTweet saveSendData];//发送失败,保存草稿 } }]; }; diff --git a/Coding_iOS/Coding_Enterprise_iOS-Info.plist b/Coding_iOS/Coding_Enterprise_iOS-Info.plist new file mode 100644 index 000000000..d652e9f7b --- /dev/null +++ b/Coding_iOS/Coding_Enterprise_iOS-Info.plist @@ -0,0 +1,134 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + CODING + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 2.10 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleURLName + net.coding.CodingForiOS + + + CFBundleVersion + 2.10.20190523.1 + ITSAppUsesNonExemptEncryption + + LSApplicationQueriesSchemes + + wechat + weixin + sinaweibohd + sinaweibo + sinaweibosso + weibosdk + weibosdk2.5 + mqqapi + mqq + mqqOpensdkSSoLogin + mqqconnect + mqqopensdkdataline + mqqopensdkgrouptribeshare + mqqopensdkfriend + mqqopensdkapi + mqqopensdkapiV2 + mqqopensdkapiV3 + mqzoneopensdk + wtloginmqq + wtloginmqq2 + mqqwpa + mqzone + mqzonev2 + mqzoneshare + wtloginqzone + mqzonewx + mqzoneopensdkapiV2 + mqzoneopensdkapi19 + mqzoneopensdkapi + mqzoneopensdk + evernote + mart-coding-net + + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSCameraUsageDescription + 需要扫描二维码或拍照,是否允许打开相机? + NSLocationWhenInUseUsageDescription + 需要通过定位获取您周边的地理位置信息,是否允许获取你的定位? + NSMicrophoneUsageDescription + 需要录制音频,是否允许打开麦克风? + NSPhotoLibraryAddUsageDescription + 需要存储图片到相册,是够允许向相册添加照片? + NSPhotoLibraryUsageDescription + 需要添加照片,是否允许访问相册? + UIAppFonts + + FontAwesome.ttf + + UIApplicationShortcutItems + + + UIApplicationShortcutItemIconFile + shortcut_task + UIApplicationShortcutItemTitle + 新任务 + UIApplicationShortcutItemType + shortcut_task + UIApplicationShortcutItemUserInfo + + + + UIApplicationShortcutItemIconFile + shortcut_2FA + UIApplicationShortcutItemTitle + 两步验证 + UIApplicationShortcutItemType + shortcut_2FA + UIApplicationShortcutItemUserInfo + + + + UIFileSharingEnabled + + UILaunchStoryboardName + Launch Screen_E + UIRequiredDeviceCapabilities + + armv7 + + UIStatusBarHidden + + UIStatusBarStyle + UIStatusBarStyleDefault + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/Coding_iOS/Coding_Enterprise_iOS.entitlements b/Coding_iOS/Coding_Enterprise_iOS.entitlements new file mode 100644 index 000000000..903def2af --- /dev/null +++ b/Coding_iOS/Coding_Enterprise_iOS.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/Coding_iOS/Coding_iOS-Info.plist b/Coding_iOS/Coding_iOS-Info.plist index a365a4cca..9abf93e37 100644 --- a/Coding_iOS/Coding_iOS-Info.plist +++ b/Coding_iOS/Coding_iOS-Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.3 + 5.4.5 CFBundleSignature ???? CFBundleURLTypes @@ -37,7 +37,7 @@ CFBundleVersion - 5.3.201805081200 + 5.4.5.20190219.1 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/Coding_iOS/Coding_iOS-Prefix.pch.example b/Coding_iOS/Coding_iOS-Prefix.pch.example index 80fd1a93e..25cc487e5 100644 --- a/Coding_iOS/Coding_iOS-Prefix.pch.example +++ b/Coding_iOS/Coding_iOS-Prefix.pch.example @@ -26,7 +26,6 @@ #import "UILabel+Common.h" #import "NSDate+Common.h" #import "UIBarButtonItem+Common.h" -#import "UIActionSheet+Common.h" #import "NSURL+Common.h" #import "UISearchBar+Common.h" #import "UITTTAttributedLabel.h" @@ -112,9 +111,14 @@ #define kDevice_Is_iPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO) #define kDevice_Is_iPhone6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO) #define kDevice_Is_iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO) - -#define kSafeArea_Top (kDevice_Is_iPhoneX? 44: 20) -#define kSafeArea_Bottom (kDevice_Is_iPhoneX? 34: 0) +#define kDevice_Is_iPhoneXR ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) : NO) +#define kDevice_Is_iPhoneXMax ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) : NO) +#define kDevice_Is_FullScreen (kDevice_Is_iPhoneX || kDevice_Is_iPhoneXR || kDevice_Is_iPhoneXMax) +#define kDevice_Is_iPad [[UIDevice currentDevice].model isEqualToString:@"iPad"] +#define kDevice_Use_iPhone4_Layout (kDevice_Is_iPhone4 || kDevice_Is_iPad) + +#define kSafeArea_Top (kDevice_Is_FullScreen? 44: 20) +#define kSafeArea_Bottom (kDevice_Is_FullScreen? 34: 0) #define kLine_MinHeight (1.0/ [UIScreen mainScreen].scale) #define kScreen_Bounds [UIScreen mainScreen].bounds diff --git a/Coding_iOS/Controllers/AboutPointViewController.m b/Coding_iOS/Controllers/AboutPointViewController.m index 368b06861..aead75ef5 100644 --- a/Coding_iOS/Controllers/AboutPointViewController.m +++ b/Coding_iOS/Controllers/AboutPointViewController.m @@ -29,7 +29,7 @@ - (void)viewDidLoad { [paragraphStyle setAlignment:_aboutL.textAlignment]; [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [_aboutL.text length])]; //标题 - NSArray *titleList = @[@"什么是码币", @"可以用码币做什么", @"如何获取码币"]; + NSArray *titleList = @[@"什么是码币", @"码币的用途", @"如何获取码币"]; for (NSString *title in titleList) { NSRange textR = [_aboutL.text rangeOfString:title]; if (textR.location != NSNotFound) { diff --git a/Coding_iOS/Controllers/AboutPointViewController.xib b/Coding_iOS/Controllers/AboutPointViewController.xib index 9c3387c07..5c48e111e 100644 --- a/Coding_iOS/Controllers/AboutPointViewController.xib +++ b/Coding_iOS/Controllers/AboutPointViewController.xib @@ -1,11 +1,11 @@ - + - + @@ -24,31 +24,21 @@ - + - + - - - - - + + + diff --git a/Coding_iOS/Controllers/NewProject/NewProjectTypeViewController.m b/Coding_iOS/Controllers/NewProject/NewProjectTypeViewController.m index 73a5d09b2..cffe3ea0f 100644 --- a/Coding_iOS/Controllers/NewProject/NewProjectTypeViewController.m +++ b/Coding_iOS/Controllers/NewProject/NewProjectTypeViewController.m @@ -159,7 +159,7 @@ -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath * #pragma mark - Orientations - (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { diff --git a/Coding_iOS/Controllers/NewProject/NewProjectViewController.m b/Coding_iOS/Controllers/NewProject/NewProjectViewController.m index 1e2af7cee..5d63c8b8c 100644 --- a/Coding_iOS/Controllers/NewProject/NewProjectViewController.m +++ b/Coding_iOS/Controllers/NewProject/NewProjectViewController.m @@ -68,7 +68,7 @@ - (void)viewDidLoad { } -(void)selectProjectImage{ - [[UIActionSheet bk_actionSheetCustomWithTitle:@"选择照片" buttonTitles:@[@"拍照",@"从相册选择"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:@"选择照片" buttonTitles:@[@"拍照",@"从相册选择"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index > 1) { return ; @@ -123,19 +123,34 @@ -(void)submit{ [[Coding_NetAPIManager sharedManager] request_NewProject_WithObj:project image:self.projectIconImage andBlock:^(NSString *data, NSError *error) { weakSelf.submitButtonItem.enabled = YES; if (data.length > 0) { - - NSString *projectRegexStr = @"/u/([^/]+)/p/([^/]+)"; - NSArray *matchedCaptures = [data captureComponentsMatchedByRegex:projectRegexStr]; - if (matchedCaptures.count >= 3) { - NSString *user_global_key = matchedCaptures[1]; - NSString *project_name = matchedCaptures[2]; - Project *curPro = [[Project alloc] init]; - curPro.owner_user_name = user_global_key; - curPro.name = project_name; - //标记已读 - [[Coding_NetAPIManager sharedManager] request_Project_UpdateVisit_WithObj:curPro andBlock:^(id dataTemp, NSError *errorTemp) { - }]; - [weakSelf gotoPro:curPro]; + if (kTarget_Enterprise) { + NSString *projectRegexStr = @"/p/([^/]+)"; + NSArray *matchedCaptures = [data captureComponentsMatchedByRegex:projectRegexStr]; + if (matchedCaptures.count >= 2) { + NSString *user_global_key = [NSObject baseCompany]; + NSString *project_name = matchedCaptures[1]; + Project *curPro = [[Project alloc] init]; + curPro.owner_user_name = user_global_key; + curPro.name = project_name; + //标记已读 + [[Coding_NetAPIManager sharedManager] request_Project_UpdateVisit_WithObj:curPro andBlock:^(id dataTemp, NSError *errorTemp) { + }]; + [weakSelf gotoPro:curPro]; + } + }else{ + NSString *projectRegexStr = @"/u/([^/]+)/p/([^/]+)"; + NSArray *matchedCaptures = [data captureComponentsMatchedByRegex:projectRegexStr]; + if (matchedCaptures.count >= 3) { + NSString *user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + Project *curPro = [[Project alloc] init]; + curPro.owner_user_name = user_global_key; + curPro.name = project_name; + //标记已读 + [[Coding_NetAPIManager sharedManager] request_Project_UpdateVisit_WithObj:curPro andBlock:^(id dataTemp, NSError *errorTemp) { + }]; + [weakSelf gotoPro:curPro]; + } } } }]; @@ -227,6 +242,15 @@ -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cel [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; } +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + CGFloat rowH = 44; + if (indexPath.section == 0) { + rowH = (indexPath.row == 0? 120: 80); + }else if (indexPath.section == 1 && indexPath.row == 0){//个人版、企业版 都不让创建公有项目了 + rowH = 0; + } + return rowH; +} #pragma mark NewProjectTypeViewController Delegate -(void)newProjectType:(NewProjectTypeViewController *)newProjectVC didSelectType:(NewProjectType)type{ @@ -244,7 +268,7 @@ -(void)newProjectType:(NewProjectTypeViewController *)newProjectVC didSelectType #pragma mark - Orientations - (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { diff --git a/Coding_iOS/Controllers/PRDetailViewController.m b/Coding_iOS/Controllers/PRDetailViewController.m index 7da5eddfb..318565cd3 100644 --- a/Coding_iOS/Controllers/PRDetailViewController.m +++ b/Coding_iOS/Controllers/PRDetailViewController.m @@ -210,14 +210,14 @@ - (void)actionMRPR:(UIButton *)sender{ } }else if (sender.tag == MRPRActionRefuse){//拒绝 tipStr = [_curMRPRInfo.mrpr isMR]? @"确定要拒绝这个 Merge Request 么?": @"确定要拒绝这个 Pull Request 么?"; - [[UIActionSheet bk_actionSheetCustomWithTitle:tipStr buttonTitles:@[@"确定"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:tipStr buttonTitles:@[@"确定"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf refuseMRPR]; } }] showInView:self.view]; }else if (sender.tag == MRPRActionCancel){//取消 tipStr = [_curMRPRInfo.mrpr isMR]? @"确定要取消这个 Merge Request 么?": @"确定要取消这个 Pull Request 么?"; - [[UIActionSheet bk_actionSheetCustomWithTitle:tipStr buttonTitles:@[@"确定"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:tipStr buttonTitles:@[@"确定"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf cancelMRPR]; } diff --git a/Coding_iOS/Controllers/PointRecordsViewController.m b/Coding_iOS/Controllers/PointRecordsViewController.m index 0e391bff6..2f58c3426 100644 --- a/Coding_iOS/Controllers/PointRecordsViewController.m +++ b/Coding_iOS/Controllers/PointRecordsViewController.m @@ -174,62 +174,6 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath - (void)rightNavBtnClicked{ AboutPointViewController *vc = [AboutPointViewController new]; [self.navigationController pushViewController:vc animated:YES]; - -// -// CGRect originFrame = CGRectMake(kScreen_Width - 15, 0, 0, 0); -// if (_isShowingTip) { -// [UIView animateWithDuration:0.3 animations:^{ -// self.tipContainerV.backgroundColor = [UIColor colorWithWhite:0 alpha:0]; -// self.tipBGV.frame = originFrame; -// } completion:^(BOOL finished) { -// [self.tipContainerV removeFromSuperview]; -// self.isShowingTip = NO; -// }]; -// }else{ -// NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; -// paragraphStyle.lineSpacing = kDevice_Is_iPhone4? 0: 5; -// if (!_tipContainerV) { -// _tipContainerV = [[UIView alloc] initWithFrame:self.view.bounds]; -// } -// if (!_tipBGV) { -// _tipBGV = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"tip_bg"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 15, 20, 30) resizingMode:UIImageResizingModeStretch]]; -// _tipBGV.frame = originFrame; -// _tipBGV.clipsToBounds = YES; -// [_tipContainerV addSubview:_tipBGV]; -// } -// if (!_tipL) { -// _tipL = [UILabel new]; -// _tipL.textColor = kColor222; -// _tipL.font = [UIFont systemFontOfSize:14]; -// _tipL.numberOfLines = 0; -// NSString *tipStr = -//@"1. 使用人民币 兑换 (请通过点击账户码币页面的”购买码币”,以充值的形式购买码币。码币与人民币的兑换标准是 1 码币= 50 元人民币(0.1 码币起购买),支持支付宝及微信付款)\n\ -//2. 冒泡 被管理员推荐上广场 奖励 0.01\n\ -//3. 邀请好友 注册 Coding 并绑定手机号 奖励 0.02mb\n\ -//4. 过生日赠送 0.1mb\n\ -//5. 完善 个人信息 奖励 0.1mb\n\ -//6. 完成 手机验证 奖励 0.1mb\n\ -//7. 开启 两步验证 奖励 0.1mb\n\ -//8. App 首次登录 奖励 0.1mb\n\ -//9. 我们不定期发布的其他形式的码币悬赏活动(请关注 Coding冒泡,Coding微博 及 Coding微信公众号),数量不等\n\ -//10. 转发 Coding微博,每周抽 1 名转发用户赠送 0.5mb\n\ -//11. 给 Coding 博客 投稿 奖励 1-2mb"; -// NSMutableAttributedString *tipAttrStr = [[NSMutableAttributedString alloc] initWithString:tipStr]; -// [tipAttrStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, tipStr.length)]; -// _tipL.attributedText = tipAttrStr; -// _tipL.frame = CGRectMake(15, 40, kScreen_Width - 15 * 4, 0); -// [_tipBGV addSubview:_tipL]; -// } -// CGFloat textHeight = [_tipL.text boundingRectWithSize:CGSizeMake(kScreen_Width - 15 * 4, CGFLOAT_MAX) options:(NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSParagraphStyleAttributeName: paragraphStyle, NSFontAttributeName: _tipL.font} context:nil].size.height; -// _tipL.height = textHeight; -// [self.view addSubview:self.tipContainerV]; -// [UIView animateWithDuration:0.3 animations:^{ -// self.tipContainerV.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; -// self.tipBGV.frame = CGRectMake(15, 0, kScreen_Width - 15 * 2, textHeight + 40 + 30); -// } completion:^(BOOL finished) { -// self.isShowingTip = YES; -// }]; -// } } @end diff --git a/Coding_iOS/Controllers/ProjectMemberActivityListViewController.m b/Coding_iOS/Controllers/ProjectMemberActivityListViewController.m index e5b6b5ebf..d8b6f2e7a 100755 --- a/Coding_iOS/Controllers/ProjectMemberActivityListViewController.m +++ b/Coding_iOS/Controllers/ProjectMemberActivityListViewController.m @@ -10,7 +10,7 @@ #import "UserInfoViewController.h" #import "EditTaskViewController.h" #import "TopicDetailViewController.h" -#import "FileListViewController.h" +#import "NFileListViewController.h" #import "FileViewController.h" #import "MRDetailViewController.h" @@ -64,9 +64,15 @@ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { #pragma mark toVC - (void)goToUserInfo:(User *)user{ - UserInfoViewController *vc = [[UserInfoViewController alloc] init]; - vc.curUser = user; - [self.navigationController pushViewController:vc animated:YES]; + if (kTarget_Enterprise) { + UserInfoDetailViewController *vc = [UserInfoDetailViewController new]; + vc.curUser = user; + [self.navigationController pushViewController:vc animated:YES]; + }else{ + UserInfoViewController *vc = [[UserInfoViewController alloc] init]; + vc.curUser = user; + [self.navigationController pushViewController:vc animated:YES]; + } } - (void)goToVCWithItem:(HtmlMediaItem *)clickedItem activity:(ProjectActivity *)proAct isContent:(BOOL)isContent inProject:(Project *)project{ @@ -81,23 +87,44 @@ - (void)goToVCWithItem:(HtmlMediaItem *)clickedItem activity:(ProjectActivity *) NSArray *pathArray = [proAct.project.full_name componentsSeparatedByString:@"/"]; linkPath = pathArray.count >= 2? [NSString stringWithFormat:@"/u/%@/p/%@/task/%@", pathArray[0], pathArray[1], proAct.task.id]: nil; }else if ([target_type isEqualToString:@"ProjectFile"]){ +// BOOL isFile = [proAct.type isEqualToString:@"file"]; +// NSArray *pathArray = [proAct.file.path componentsSeparatedByString:@"/"]; +// if (!isFile && pathArray.count >= 7){ +// //文件夹 +// ProjectFolder *folder; +// NSString *folderIdStr = pathArray[6]; +// if (![folderIdStr isEqualToString:@"default"] && [folderIdStr isPureInt]) { +// NSNumber *folderId = [NSNumber numberWithInteger:folderIdStr.integerValue]; +// folder = [ProjectFolder folderWithId:folderId]; +// folder.name = proAct.file.name; +// }else{ +// folder = [ProjectFolder defaultFolder]; +// } +// FileListViewController *vc = [[FileListViewController alloc] init]; +// vc.curProject = project; +// vc.curFolder = folder; +// vc.rootFolders = nil; +// [self.navigationController pushViewController:vc animated:YES]; +// }else{ +// if (isFile) { +// linkPath = proAct.file.path; +// } +// tipStr = isFile? @"文件不存在" :@"文件夹不存在"; +// } BOOL isFile = [proAct.type isEqualToString:@"file"]; NSArray *pathArray = [proAct.file.path componentsSeparatedByString:@"/"]; - if (!isFile && pathArray.count >= 7){ + if (!isFile && pathArray.count >= (kTarget_Enterprise? 5: 7)){ //文件夹 - ProjectFolder *folder; - NSString *folderIdStr = pathArray[6]; + ProjectFile *folder = nil; + NSString *folderIdStr = pathArray.lastObject; if (![folderIdStr isEqualToString:@"default"] && [folderIdStr isPureInt]) { NSNumber *folderId = [NSNumber numberWithInteger:folderIdStr.integerValue]; - folder = [ProjectFolder folderWithId:folderId]; + folder = [[ProjectFile alloc] initWithFileId:folderId inProject:project.name ofUser:project.owner_user_name]; folder.name = proAct.file.name; - }else{ - folder = [ProjectFolder defaultFolder]; } - FileListViewController *vc = [[FileListViewController alloc] init]; + NFileListViewController *vc = [[NFileListViewController alloc] init]; vc.curProject = project; vc.curFolder = folder; - vc.rootFolders = nil; [self.navigationController pushViewController:vc animated:YES]; }else{ if (isFile) { @@ -177,13 +204,19 @@ - (void)goToVCWithItem:(HtmlMediaItem *)clickedItem activity:(ProjectActivity *) }else if ([target_type isEqualToString:@"ProtectedBranch"]){ ProjectViewController *vc = [ProjectViewController codeVCWithCodeRef:proAct.ref_name andProject:project]; [self.navigationController pushViewController:vc animated:YES]; + }else if ([target_type isEqualToString:@"Release"]) { + if ([proAct.action isEqualToString:@"delete"]) { + tipStr = @"版本已删除"; + }else{ + linkPath = proAct.release_path; + } }else{ if ([target_type isEqualToString:@"Project"]){//转让项目之类的 - // }else if ([target_type isEqualToString:@"MergeRequestComment"]){//过期类型,已用CommitLineNote替代 - // }else if ([target_type isEqualToString:@"PullRequestComment"]){//过期类型,已用CommitLineNote替代 - // }else if ([target_type isEqualToString:@"ProjectStar"]){//不用解析 - // }else if ([target_type isEqualToString:@"ProjectWatcher"]){//不用解析 - // }else if ([target_type isEqualToString:@"QcTask"]){//还不能解析 +// }else if ([target_type isEqualToString:@"MergeRequestComment"]){//过期类型,已用CommitLineNote替代 +// }else if ([target_type isEqualToString:@"PullRequestComment"]){//过期类型,已用CommitLineNote替代 +// }else if ([target_type isEqualToString:@"ProjectStar"]){//不用解析 +// }else if ([target_type isEqualToString:@"ProjectWatcher"]){//不用解析 +// }else if ([target_type isEqualToString:@"QcTask"]){//还不能解析 }else{ tipStr = @"还不能查看详细信息呢~"; } diff --git a/Coding_iOS/Controllers/ProjectMemberListViewController.m b/Coding_iOS/Controllers/ProjectMemberListViewController.m index 35920e765..00b7f297b 100755 --- a/Coding_iOS/Controllers/ProjectMemberListViewController.m +++ b/Coding_iOS/Controllers/ProjectMemberListViewController.m @@ -35,15 +35,30 @@ @interface ProjectMemberListViewController () @implementation ProjectMemberListViewController - (void)setMyMemberArray:(NSMutableArray *)myMemberArray{ + [myMemberArray sortUsingComparator:^NSComparisonResult(ProjectMember *obj1, ProjectMember *obj2) { + return [[self p_sortWeightOfMember:obj2] compare:[self p_sortWeightOfMember:obj1]]; + }]; _myMemberArray = myMemberArray; - ProjectMember *mem = [_myMemberArray firstObject]; - if ([mem.user_id isEqualToNumber:[Login curLoginUser].id]) { - _selfRoleType = mem.type; - }else{ - _selfRoleType = @80;//普通成员 + + for (ProjectMember *mem in _myMemberArray) { + if ([mem.user_id isEqualToNumber:[Login curLoginUser].id]) { + _selfRoleType = mem.type; + break; + } } } +- (NSNumber *)p_sortWeightOfMember:(ProjectMember *)mem{ + CGFloat maxMemCount = 9999; + NSNumber *weight = nil; + BOOL isLoginUser = [mem.user_id isEqualToNumber:[Login curLoginUser].id]; + BOOL isAddedToWatcher = (_type == ProMemTypeTaskWatchers? [self.curTask hasWatcher:mem.user]: + _type == ProMemTypeTopicWatchers? [self.curTopic hasWatcher:mem.user]: + NO); + weight = @(mem.type.integerValue + (isLoginUser? maxMemCount: 0) + (isAddedToWatcher? maxMemCount * 2: 0)); + return weight; +} + - (void)willHiden{ [self.mySearchBar resignFirstResponder]; } @@ -73,7 +88,7 @@ - (void)loadView{ UISearchBar *searchBar = [[UISearchBar alloc] init]; searchBar.delegate = self; [searchBar sizeToFit]; - [searchBar setPlaceholder:@"昵称/个性后缀"]; + [searchBar setPlaceholder:@"昵称/用户名"]; searchBar; }); _myTableView.tableHeaderView = _mySearchBar; @@ -102,16 +117,6 @@ - (void)loadView{ if (resultData) { NSMutableArray *resultA = [NSObject arrayFromJSON:resultData ofObjects:@"ProjectMember"]; - __block NSUInteger mineIndex = 0; - [resultA enumerateObjectsUsingBlock:^(ProjectMember *obj, NSUInteger idx, BOOL *stop) { - if (obj.user_id.integerValue == [Login curLoginUser].id.integerValue) { - mineIndex = idx; - *stop = YES; - } - }]; - if (mineIndex > 0) { - [resultA exchangeObjectAtIndex:mineIndex withObjectAtIndex:0]; - } weakSelf.myMemberArray = resultA; [weakSelf.myTableView reloadData]; }else{ @@ -234,7 +239,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N if (weakSelf.type == ProMemTypeProject) { if (curMember.user_id.intValue == [Login curLoginUser].id.intValue) { // 自己,退出项目 - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"确定退出项目?" buttonTitles:nil destructiveTitle:@"确认退出" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"确定退出项目?" buttonTitles:nil destructiveTitle:@"确认退出" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf quitSelf_ProjectMember:curMember]; } @@ -356,7 +361,7 @@ - (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityBut }else if (index == 1){//修改权限 [self editTypeOfMember:mem]; }else if (index == 2){//移除成员 - [[UIActionSheet bk_actionSheetCustomWithTitle:@"移除该成员后,他将不再显示在项目中" buttonTitles:nil destructiveTitle:@"确认移除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:@"移除该成员后,他将不再显示在项目中" buttonTitles:nil destructiveTitle:@"确认移除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [self removeMember:mem]; } diff --git a/Coding_iOS/Controllers/ProjectSetting/ProjectAdvancedSettingViewController.m b/Coding_iOS/Controllers/ProjectSetting/ProjectAdvancedSettingViewController.m index fd0f6805d..7dd61b48c 100644 --- a/Coding_iOS/Controllers/ProjectSetting/ProjectAdvancedSettingViewController.m +++ b/Coding_iOS/Controllers/ProjectSetting/ProjectAdvancedSettingViewController.m @@ -165,7 +165,7 @@ -(BOOL)textFieldShouldReturn:(UITextField *)textField{ #pragma mark - Orientations - (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { diff --git a/Coding_iOS/Controllers/ProjectSetting/ProjectArchiveViewController.m b/Coding_iOS/Controllers/ProjectSetting/ProjectArchiveViewController.m index 1228ddfa4..053630f7f 100644 --- a/Coding_iOS/Controllers/ProjectSetting/ProjectArchiveViewController.m +++ b/Coding_iOS/Controllers/ProjectSetting/ProjectArchiveViewController.m @@ -140,7 +140,7 @@ -(BOOL)textFieldShouldReturn:(UITextField *)textField{ #pragma mark - Orientations - (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { diff --git a/Coding_iOS/Controllers/ProjectSetting/ProjectSetting.storyboard b/Coding_iOS/Controllers/ProjectSetting/ProjectSetting.storyboard index 30756451c..bb0f03179 100644 --- a/Coding_iOS/Controllers/ProjectSetting/ProjectSetting.storyboard +++ b/Coding_iOS/Controllers/ProjectSetting/ProjectSetting.storyboard @@ -1,12 +1,11 @@ - + - - + @@ -105,7 +104,7 @@ - + @@ -166,7 +165,7 @@ @@ -301,7 +300,7 @@ - + @@ -364,7 +363,7 @@ - + @@ -379,7 +378,7 @@ @@ -683,7 +690,7 @@ + diff --git a/Coding_iOS/Controllers/ProjectSetting/ProjectSettingViewController.m b/Coding_iOS/Controllers/ProjectSetting/ProjectSettingViewController.m index 09ce319b1..c6e37f807 100644 --- a/Coding_iOS/Controllers/ProjectSetting/ProjectSettingViewController.m +++ b/Coding_iOS/Controllers/ProjectSetting/ProjectSettingViewController.m @@ -14,9 +14,8 @@ #import "JDStatusBarNotification.h" #import "Coding_NetAPIManager.h" -@interface ProjectSettingViewController () +@interface ProjectSettingViewController () -@property (nonatomic, strong) UIBarButtonItem *submitButtonItem; @property (nonatomic, strong) UIImage *projectIconImage; @property (nonatomic, strong) MBProgressHUD *uploadHUD; @@ -37,7 +36,7 @@ - (void)viewDidLoad { // sep for (NSLayoutConstraint *cons in self.lines) { - cons.constant = 0.5; + cons.constant = kLine_MinHeight; } //tabview @@ -50,7 +49,6 @@ - (void)viewDidLoad { // self.descTextView.placeholder = @"填写项目描述..."; self.descTextView.text = self.project.description_mine; - self.descTextView.delegate = self; // self.projectImageView.layer.cornerRadius = 2; @@ -60,16 +58,15 @@ - (void)viewDidLoad { // 添加 “完成” 按钮 if ([self p_canEditPro]) { - self.submitButtonItem = [UIBarButtonItem itemWithBtnTitle:@"完成" target:self action:@selector(submit)]; - self.submitButtonItem.enabled = NO; - self.navigationItem.rightBarButtonItem = self.submitButtonItem; - + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"done_un_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(submit)]; + RAC(self, navigationItem.rightBarButtonItem.enabled) = [RACSignal combineLatest:@[self.projectNameF.rac_textSignal, self.descTextView.rac_textSignal] reduce:^id (NSString *name, NSString *desc){ BOOL hasChange = ![name isEqualToString:self.project.name] || ![desc isEqualToString:self.project.description_mine]; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:hasChange? @"done_Nav": @"done_un_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(submit)]; return @(hasChange); }]; } - + //HUD self.uploadHUD = [[MBProgressHUD alloc] initWithView:self.view]; self.uploadHUD.mode = MBProgressHUDModeDeterminate; @@ -83,20 +80,21 @@ - (void)viewDidLoad { -(void)submit{ self.project.name = [self.projectNameF.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; self.project.description_mine = [self.descTextView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; - - self.submitButtonItem.enabled = NO; + + self.navigationItem.rightBarButtonItem.enabled = NO; // 更新项目 [[Coding_NetAPIManager sharedManager] request_UpdateProject_WithObj:self.project andBlock:^(Project *data, NSError *error) { if (!error) { [self.navigationController popViewControllerAnimated:YES]; } - self.submitButtonItem.enabled = YES; + self.navigationItem.rightBarButtonItem.enabled = YES; }]; + } -(void)selectProjectImage{ - [[UIActionSheet bk_actionSheetCustomWithTitle:@"选择照片" buttonTitles:@[@"拍照",@"从相册选择"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:@"选择照片" buttonTitles:@[@"拍照",@"从相册选择"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index > 1) { return ; @@ -151,19 +149,6 @@ -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [picker dismissViewControllerAnimated:YES completion:nil]; } - --(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ - NSString *string = [textView.text stringByReplacingCharactersInRange:range withString:text]; - - if ([string isEqualToString:self.project.description_mine]) { - self.submitButtonItem.enabled = NO; - }else{ - self.submitButtonItem.enabled = YES; - } - - return YES; -} - - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. @@ -172,11 +157,16 @@ - (void)didReceiveMemoryWarning { #pragma mark UITableView - (BOOL)p_canEditPro{ - return _project.current_user_role_id.integerValue >= 90; + return _project.current_user_role_id.integerValue >= 90 || [self p_isOwner]; } - (BOOL)p_isOwner{ - return [self.project.owner_id isEqual:[Login curLoginUser].id]; + if (kTarget_Enterprise) { + return NO;//企业里面没有所有者 +// return [Login curLoginUser].isAdministrator.boolValue;//企业版里,企业管理员比项目所有者的权限更大。项目所有者无权 + }else{ + return [self.project.owner_id isEqual:[Login curLoginUser].id]; + } } -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ @@ -203,9 +193,12 @@ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger } } --(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath -{ - [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:13]; +-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ + if (indexPath.section == 0 && indexPath.row == 0) { + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:15 hasSectionLine:NO]; + }else{ + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:15]; + } } -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ @@ -217,7 +210,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath [tableView deselectRowAtIndexPath:indexPath animated:YES]; if (indexPath.section == 2) { __weak typeof(self) weakSelf = self; - [[UIActionSheet bk_actionSheetCustomWithTitle:@"确定退出项目?" buttonTitles:nil destructiveTitle:@"确认退出" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:@"确定退出项目?" buttonTitles:nil destructiveTitle:@"确认退出" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf quitPro]; } @@ -226,20 +219,17 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath } - (void)quitPro{ - ProjectMember *tempM = [ProjectMember new]; - tempM.user_id = [Login curLoginUser].id; - tempM.project_id = _project.id; __weak typeof(self) weakSelf = self; - [[Coding_NetAPIManager sharedManager] request_ProjectMember_Quit:tempM andBlock:^(id data, NSError *error) { + [[Coding_NetAPIManager sharedManager] request_ProjectQuit:_project.id andBlock:^(id data, NSError *error) { if (data) { - [self.navigationController popToRootViewControllerAnimated:YES]; + [weakSelf.navigationController popToRootViewControllerAnimated:YES]; } }]; } #pragma mark - Orientations - (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { diff --git a/Coding_iOS/Controllers/ProjectSetting/ProjectTransferSettingViewController.m b/Coding_iOS/Controllers/ProjectSetting/ProjectTransferSettingViewController.m index 84941c472..81e9e9f3e 100644 --- a/Coding_iOS/Controllers/ProjectSetting/ProjectTransferSettingViewController.m +++ b/Coding_iOS/Controllers/ProjectSetting/ProjectTransferSettingViewController.m @@ -187,7 +187,7 @@ -(BOOL)textFieldShouldReturn:(UITextField *)textField{ #pragma mark - Orientations - (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { diff --git a/Coding_iOS/Controllers/ProjectTweetSendViewController.m b/Coding_iOS/Controllers/ProjectTweetSendViewController.m index 4e74560e7..c5527b3c7 100644 --- a/Coding_iOS/Controllers/ProjectTweetSendViewController.m +++ b/Coding_iOS/Controllers/ProjectTweetSendViewController.m @@ -11,6 +11,7 @@ #import "WebContentManager.h" #import "EaseMarkdownTextView.h" #import "WebViewController.h" +#import "UIViewController+BackButtonHandler.h" @interface ProjectTweetSendViewController () @@ -72,6 +73,21 @@ - (void)viewDidAppear:(BOOL)animated{ } } +- (BOOL)navigationShouldPopOnBackButton{ + BOOL hasChanged = ![self.curTweet.raw ?: @"" isEqualToString:_editView.text]; + if (hasChanged) { + __weak typeof(self) weakSelf = self; + [[UIAlertController ea_alertViewWithTitle:@"提示" message:@"如果不保存,更改将丢失,是否确认返回?" buttonTitles:@[@"确认返回"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { + [weakSelf.navigationController popViewControllerAnimated:YES]; + } + }] show]; + return NO; + }else{ + return YES; + } +} + #pragma mark UISegmentedControl - (void)segmentedControlSelected:(id)sender{ UISegmentedControl *segmentedControl = (UISegmentedControl *)sender; diff --git a/Coding_iOS/Controllers/ProjectTypeExplanationViewController.h b/Coding_iOS/Controllers/ProjectTypeExplanationViewController.h new file mode 100644 index 000000000..729a275ce --- /dev/null +++ b/Coding_iOS/Controllers/ProjectTypeExplanationViewController.h @@ -0,0 +1,13 @@ +// +// ProjectTypeExplanationViewController.h +// Coding_Enterprise_iOS +// +// Created by Easeeeeeeeee on 2017/6/6. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "BaseViewController.h" + +@interface ProjectTypeExplanationViewController : BaseViewController + +@end diff --git a/Coding_iOS/Controllers/ProjectTypeExplanationViewController.m b/Coding_iOS/Controllers/ProjectTypeExplanationViewController.m new file mode 100644 index 000000000..cb7e17db3 --- /dev/null +++ b/Coding_iOS/Controllers/ProjectTypeExplanationViewController.m @@ -0,0 +1,38 @@ +// +// ProjectTypeExplanationViewController.m +// Coding_Enterprise_iOS +// +// Created by Easeeeeeeeee on 2017/6/6. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "ProjectTypeExplanationViewController.h" + +@interface ProjectTypeExplanationViewController () + +@end + +@implementation ProjectTypeExplanationViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. + self.title = @"成员权限说明"; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/Coding_iOS/Controllers/ProjectTypeExplanationViewController.xib b/Coding_iOS/Controllers/ProjectTypeExplanationViewController.xib new file mode 100644 index 000000000..2ce19640d --- /dev/null +++ b/Coding_iOS/Controllers/ProjectTypeExplanationViewController.xib @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Coding_iOS/Controllers/ProjectViewController.m b/Coding_iOS/Controllers/ProjectViewController.m index 2d3a0fc6d..d1cc36eca 100644 --- a/Coding_iOS/Controllers/ProjectViewController.m +++ b/Coding_iOS/Controllers/ProjectViewController.m @@ -19,12 +19,12 @@ #import "Coding_NetAPIManager.h" #import "UserInfoViewController.h" #import "AddUserViewController.h" -#import "ProjectFolderListView.h" +#import "NProjectFileListView.h" #import "ProjectCodeListView.h" #import "CodeListViewController.h" #import "CodeViewController.h" #import "ProjectMemberActivityListViewController.h" -#import "FileListViewController.h" +#import "NFileListViewController.h" #import "SettingTextViewController.h" #import "FolderToMoveViewController.h" #import "FileViewController.h" @@ -231,7 +231,6 @@ - (void)configRightBarButtonItemWithViewType:(ProjectViewType)viewType{ if ((viewType == ProjectViewTypeMembers && _myProject.current_user_role_id.integerValue >= 90) || viewType == ProjectViewTypeTasks || viewType == ProjectViewTypeTopics - || viewType == ProjectViewTypeFiles || viewType == ProjectViewTypeCodes) { navRightBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage @@ -318,12 +317,8 @@ - (void)refreshWithNewIndex:(NSInteger)newIndex{ break; case ProjectViewTypeFiles:{ curView = ({ - ProjectFolderListView *folderListView = [[ProjectFolderListView alloc] initWithFrame:self.view.bounds project:_myProject]; + NProjectFileListView *folderListView = [[NProjectFileListView alloc] initWithFrame:self.view.bounds project:_myProject folder:nil]; folderListView.containerVC = self; - folderListView.folderInProjectBlock = ^(ProjectFolders *rootFolders, ProjectFolder *clickedFolder, Project *inProject){ - DebugLog(@"folderInProjectBlock-----: %@- %@", clickedFolder.name, inProject.name); - [weakSelf goToVCWithRootFolder:rootFolders folder:clickedFolder inProject:inProject]; - }; folderListView; }); } @@ -376,9 +371,15 @@ - (void)refreshWithNewIndex:(NSInteger)newIndex{ #pragma mark toVC - (void)goToUserInfo:(User *)user{ - UserInfoViewController *vc = [[UserInfoViewController alloc] init]; - vc.curUser = user; - [self.navigationController pushViewController:vc animated:YES]; + if (kTarget_Enterprise) { + UserInfoDetailViewController *vc = [UserInfoDetailViewController new]; + vc.curUser = user; + [self.navigationController pushViewController:vc animated:YES]; + }else{ + UserInfoViewController *vc = [[UserInfoViewController alloc] init]; + vc.curUser = user; + [self.navigationController pushViewController:vc animated:YES]; + } } - (void)goToActivityListOfUser:(User *)user{ @@ -413,13 +414,13 @@ - (void)goToVCWith:(CodeTree_File *)codeTreeFile andRef:(NSString *)ref{ } } -- (void)goToVCWithRootFolder:(ProjectFolders *)rootFolders folder:(ProjectFolder *)folder inProject:(Project *)project{ - FileListViewController *vc = [[FileListViewController alloc] init]; - vc.rootFolders = rootFolders; - vc.curFolder = folder; - vc.curProject = project; - [self.navigationController pushViewController:vc animated:YES]; -} +//- (void)goToVCWithRootFolder:(ProjectFolders *)rootFolders folder:(ProjectFolder *)folder inProject:(Project *)project{ +// FileListViewController *vc = [[FileListViewController alloc] init]; +// vc.rootFolders = rootFolders; +// vc.curFolder = folder; +// vc.curProject = project; +// [self.navigationController pushViewController:vc animated:YES]; +//} - (void)goToVCWithItem:(HtmlMediaItem *)clickedItem activity:(ProjectActivity *)proAct isContent:(BOOL)isContent inProject:(Project *)project{ if (isContent) {//cell上面第二个Label NSString *target_type = proAct.target_type; @@ -432,23 +433,44 @@ - (void)goToVCWithItem:(HtmlMediaItem *)clickedItem activity:(ProjectActivity *) NSArray *pathArray = [proAct.project.full_name componentsSeparatedByString:@"/"]; linkPath = pathArray.count >= 2? [NSString stringWithFormat:@"/u/%@/p/%@/task/%@", pathArray[0], pathArray[1], proAct.task.id]: nil; }else if ([target_type isEqualToString:@"ProjectFile"]){ +// BOOL isFile = [proAct.type isEqualToString:@"file"]; +// NSArray *pathArray = [proAct.file.path componentsSeparatedByString:@"/"]; +// if (!isFile && pathArray.count >= 7){ +// //文件夹 +// ProjectFolder *folder; +// NSString *folderIdStr = pathArray[6]; +// if (![folderIdStr isEqualToString:@"default"] && [folderIdStr isPureInt]) { +// NSNumber *folderId = [NSNumber numberWithInteger:folderIdStr.integerValue]; +// folder = [ProjectFolder folderWithId:folderId]; +// folder.name = proAct.file.name; +// }else{ +// folder = [ProjectFolder defaultFolder]; +// } +// FileListViewController *vc = [[FileListViewController alloc] init]; +// vc.curProject = project; +// vc.curFolder = folder; +// vc.rootFolders = nil; +// [self.navigationController pushViewController:vc animated:YES]; +// }else{ +// if (isFile) { +// linkPath = proAct.file.path; +// } +// tipStr = isFile? @"文件不存在" :@"文件夹不存在"; +// } BOOL isFile = [proAct.type isEqualToString:@"file"]; NSArray *pathArray = [proAct.file.path componentsSeparatedByString:@"/"]; - if (!isFile && pathArray.count >= 7){ + if (!isFile && pathArray.count >= (kTarget_Enterprise? 5: 7)){ //文件夹 - ProjectFolder *folder; - NSString *folderIdStr = pathArray[6]; + ProjectFile *folder = nil; + NSString *folderIdStr = pathArray.lastObject; if (![folderIdStr isEqualToString:@"default"] && [folderIdStr isPureInt]) { NSNumber *folderId = [NSNumber numberWithInteger:folderIdStr.integerValue]; - folder = [ProjectFolder folderWithId:folderId]; + folder = [[ProjectFile alloc] initWithFileId:folderId inProject:project.name ofUser:project.owner_user_name]; folder.name = proAct.file.name; - }else{ - folder = [ProjectFolder defaultFolder]; } - FileListViewController *vc = [[FileListViewController alloc] init]; + NFileListViewController *vc = [[NFileListViewController alloc] init]; vc.curProject = project; vc.curFolder = folder; - vc.rootFolders = nil; [self.navigationController pushViewController:vc animated:YES]; }else{ if (isFile) { @@ -528,6 +550,12 @@ - (void)goToVCWithItem:(HtmlMediaItem *)clickedItem activity:(ProjectActivity *) }else if ([target_type isEqualToString:@"ProtectedBranch"]){ ProjectViewController *vc = [ProjectViewController codeVCWithCodeRef:proAct.ref_name andProject:project]; [self.navigationController pushViewController:vc animated:YES]; + }else if ([target_type isEqualToString:@"Release"]) { + if ([proAct.action isEqualToString:@"delete"]) { + tipStr = @"版本已删除"; + }else{ + linkPath = proAct.release_path; + } }else{ if ([target_type isEqualToString:@"Project"]){//转让项目之类的 // }else if ([target_type isEqualToString:@"MergeRequestComment"]){//过期类型,已用CommitLineNote替代 @@ -583,7 +611,7 @@ - (void)navRightBtnClicked{ __weak typeof(self) weakSelf = self; AddUserViewController *vc = [[AddUserViewController alloc] init]; vc.curProject = self.myProject; - vc.type = AddUserTypeProjectRoot; + vc.type = kTarget_Enterprise? AddUserTypeProjectCompany: AddUserTypeProjectRoot; if (_proMemberVC && _proMemberVC.myMemberArray) { [vc configAddedArrayWithMembers:_proMemberVC.myMemberArray]; } @@ -595,29 +623,36 @@ - (void)navRightBtnClicked{ [self.navigationController pushViewController:vc animated:YES]; } break; - case ProjectViewTypeFiles: - { - //新建文件夹 - __weak typeof(self) weakSelf = self; - [SettingTextViewController showSettingFolderNameVCFromVC:self withTitle:@"新建文件夹" textValue:nil type:SettingTypeNewFolderName doneBlock:^(NSString *textValue) { - DebugLog(@"%@", textValue); - [[Coding_NetAPIManager sharedManager] request_CreatFolder:textValue inFolder:nil inProject:weakSelf.myProject andBlock:^(id data, NSError *error) { - if (data) { - [NSObject showHudTipStr:@"创建文件夹成功"]; - ProjectFolderListView *folderListView = (ProjectFolderListView *)[weakSelf getCurContentView]; - if (folderListView && [folderListView isKindOfClass:[ProjectFolderListView class]]) { - [folderListView refreshToQueryData]; - } - } - }]; - }]; - - } - break; +// case ProjectViewTypeFiles: +// { +// //新建文件夹 +// __weak typeof(self) weakSelf = self; +// [SettingTextViewController showSettingFolderNameVCFromVC:self withTitle:@"新建文件夹" textValue:nil type:SettingTypeNewFolderName doneBlock:^(NSString *textValue) { +// DebugLog(@"%@", textValue); +// [[Coding_NetAPIManager sharedManager] request_CreatFolder:textValue inFolder:nil inProject:weakSelf.myProject andBlock:^(id data, NSError *error) { +// if (data) { +// [NSObject showHudTipStr:@"创建文件夹成功"]; +// ProjectFolderListView *folderListView = (ProjectFolderListView *)[weakSelf getCurContentView]; +// if (folderListView && [folderListView isKindOfClass:[ProjectFolderListView class]]) { +// [folderListView refreshToQueryData]; +// } +// } +// }]; +// }]; +// +// } +// break; case ProjectViewTypeCodes: { + NSMutableArray *actionTitles = @[@"上传图片", @"创建文本文件", @"查看提交记录"].mutableCopy; + if (!self.myCodeTree.can_edit) { + [actionTitles removeObjectsInRange:NSMakeRange(0, 2)]; + } __weak typeof(self) weakSelf = self; - [[UIActionSheet bk_actionSheetCustomWithTitle:nil buttonTitles:@[@"上传图片", @"创建文本文件", @"查看提交记录"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:nil buttonTitles:actionTitles destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (!weakSelf.myCodeTree.can_edit) { + index += 2; + } if (index == 0) { [(ProjectCodeListView *)[weakSelf getCurContentView] uploadImageClicked]; }else if (index == 1){ @@ -701,15 +736,15 @@ - (void)resetTaskCount { NSInteger watcherProcessing = [data[@"data"][@"watcherProcessing"] integerValue]; NSInteger creatorDone = [data[@"data"][@"creatorDone"] integerValue]; NSInteger creatorProcessing = [data[@"data"][@"creatorProcessing"] integerValue]; - weakSelf.myFliterMenu.items = @[[NSString stringWithFormat:@"所有任务(%ld)", ownerDone + ownerProcessing], - [NSString stringWithFormat:@"我关注的(%ld)", watcherDone + watcherProcessing], - [NSString stringWithFormat:@"我创建的(%ld)", creatorDone + creatorProcessing] - ]; - if (_role == TaskRoleTypeAll) { - weakSelf.screenView.tastArray = @[[NSString stringWithFormat:@"进行中的(%ld)", ownerProcessing], - [NSString stringWithFormat:@"已完成的(%ld)", ownerDone] - ]; - } + weakSelf.myFliterMenu.items = @[[NSString stringWithFormat:@"所有任务(%ld)", ownerDone + ownerProcessing], + [NSString stringWithFormat:@"我关注的(%ld)", watcherDone + watcherProcessing], + [NSString stringWithFormat:@"我创建的(%ld)", creatorDone + creatorProcessing] + ]; + if (_role == TaskRoleTypeAll) { + weakSelf.screenView.tastArray = @[[NSString stringWithFormat:@"进行中的(%ld)", ownerProcessing], + [NSString stringWithFormat:@"已完成的(%ld)", ownerDone] + ]; + } if (_role == TaskRoleTypeWatcher) { weakSelf.screenView.tastArray = @[[NSString stringWithFormat:@"进行中的(%ld)", watcherProcessing], [NSString stringWithFormat:@"已完成的(%ld)", watcherDone] @@ -720,7 +755,7 @@ - (void)resetTaskCount { [NSString stringWithFormat:@"已完成的(%ld)", creatorDone] ]; } - }]; + }]; } else { [[Coding_NetAPIManager sharedManager] request_tasks_searchWithUserId:nil role:TaskRoleTypeAll project_id:_myProject.id.stringValue andBlock:^(id data, NSError *error) { diff --git a/Coding_iOS/Controllers/ReviewCell.xib b/Coding_iOS/Controllers/ReviewCell.xib index 90bdad6cd..7dc864b49 100644 --- a/Coding_iOS/Controllers/ReviewCell.xib +++ b/Coding_iOS/Controllers/ReviewCell.xib @@ -1,12 +1,11 @@ - + - - + @@ -19,7 +18,7 @@ - + diff --git a/Coding_iOS/Controllers/ReviewerListController.m b/Coding_iOS/Controllers/ReviewerListController.m index 9b8effb4e..43f573d94 100644 --- a/Coding_iOS/Controllers/ReviewerListController.m +++ b/Coding_iOS/Controllers/ReviewerListController.m @@ -112,10 +112,17 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + //用 cell 去拿数据,特么很迷啊。。 ReviewCell *currentCell = [tableView cellForRowAtIndexPath:indexPath]; - UserInfoViewController *vc = [[UserInfoViewController alloc] init]; - vc.curUser = currentCell.user; - [self.navigationController pushViewController:vc animated:YES]; + if (kTarget_Enterprise) { + UserInfoDetailViewController *vc = [UserInfoDetailViewController new]; + vc.curUser = currentCell.user; + [self.navigationController pushViewController:vc animated:YES]; + }else{ + UserInfoViewController *vc = [[UserInfoViewController alloc] init]; + vc.curUser = currentCell.user; + [self.navigationController pushViewController:vc animated:YES]; + } } #pragma mark SWTableViewCellDelegate diff --git a/Coding_iOS/Controllers/ReviewerListController.xib b/Coding_iOS/Controllers/ReviewerListController.xib index 69a7ffdcb..9a7ea3bd4 100644 --- a/Coding_iOS/Controllers/ReviewerListController.xib +++ b/Coding_iOS/Controllers/ReviewerListController.xib @@ -1,8 +1,11 @@ - + + + + - + @@ -18,6 +21,7 @@ + diff --git a/Coding_iOS/Controllers/RootControllers/BaseViewController.m b/Coding_iOS/Controllers/RootControllers/BaseViewController.m index 37b77b8e3..571fe3d4e 100755 --- a/Coding_iOS/Controllers/RootControllers/BaseViewController.m +++ b/Coding_iOS/Controllers/RootControllers/BaseViewController.m @@ -46,7 +46,8 @@ #import "MRPRListViewController.h" #import "ProjectSettingViewController.h" #import "CodeListViewController.h" -#import "FileListViewController.h" +#import "NFileListViewController.h" +#import "TeamViewController.h" #import "UnReadManager.h" @@ -82,7 +83,7 @@ - (void)viewWillAppear:(BOOL)animated [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES]; - if (self.interfaceOrientation != UIInterfaceOrientationPortrait + if (UIApplication.sharedApplication.statusBarOrientation != UIInterfaceOrientationPortrait && !([self supportedInterfaceOrientations] & UIInterfaceOrientationMaskLandscapeLeft)) { [self forceChangeToOrientation:UIInterfaceOrientationPortrait]; } @@ -100,7 +101,7 @@ - (void)viewDidLoad{ // self.view.backgroundColor = kColorTableBG; self.view.backgroundColor = kColorTableSectionBg; - if (self.interfaceOrientation != UIInterfaceOrientationPortrait + if (UIApplication.sharedApplication.statusBarOrientation != UIInterfaceOrientationPortrait && !([self supportedInterfaceOrientations] & UIInterfaceOrientationMaskLandscapeLeft)) { [self forceChangeToOrientation:UIInterfaceOrientationPortrait]; } @@ -112,10 +113,555 @@ - (void)viewDidAppear:(BOOL)animated{ [self p_setupUserActivity]; } +- (void)tabBarItemClicked{ + DebugLog(@"\ntabBarItemClicked : %@", NSStringFromClass([self class])); +} + +#pragma mark - Orientations +- (BOOL)shouldAutorotate{ + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); +} + +- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { + return UIInterfaceOrientationPortrait; +} + +- (UIInterfaceOrientationMask)supportedInterfaceOrientations { + return UIInterfaceOrientationMaskPortrait; +} + +- (void)forceChangeToOrientation:(UIInterfaceOrientation)interfaceOrientation{ + [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:interfaceOrientation] forKey:@"orientation"]; +} + +#pragma mark Notification ++ (void)handleNotificationInfo:(NSDictionary *)userInfo applicationState:(UIApplicationState)applicationState{ + if (applicationState == UIApplicationStateInactive) { + //If the application state was inactive, this means the user pressed an action button from a notification. + //标记为已读 + NSString *notification_id = [userInfo objectForKey:@"notification_id"]; + if (notification_id) { + [[Coding_NetAPIManager sharedManager] request_markReadWithCodingTipIdStr:notification_id andBlock:^(id data, NSError *error) { + }]; + } + //弹出临时会话 + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + DebugLog(@"handleNotificationInfo : %@", userInfo); + NSString *param_url = [userInfo objectForKey:@"param_url"]; + [self presentLinkStr:param_url]; + }); + }else if (applicationState == UIApplicationStateActive){ + NSString *param_url = [userInfo objectForKey:@"param_url"]; + [self analyseVCFromLinkStr:param_url analyseMethod:AnalyseMethodTypeJustRefresh isNewVC:nil];//AnalyseMethodTypeJustRefresh + //标记未读 + UIViewController *presentingVC = [BaseViewController presentingVC]; + if ([presentingVC isKindOfClass:[Message_RootViewController class]]) { + [(Message_RootViewController *)presentingVC refresh]; + } + [[UnReadManager shareManager] updateUnRead]; + } +} + ++ (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr{ + return [self analyseVCFromLinkStr:linkStr analyseMethod:AnalyseMethodTypeForceCreate isNewVC:nil]; +} + ++ (void)presentLinkStr:(NSString *)linkStr{ + if (!linkStr || linkStr.length == 0) { + return; + } + BOOL isNewVC = YES; + UIViewController *vc = [self analyseVCFromLinkStr:linkStr analyseMethod:AnalyseMethodTypeLazyCreate isNewVC:&isNewVC]; + if (vc && isNewVC) { + [self presentVC:vc]; + }else if (!vc){ + if (![linkStr hasPrefix:kCodingAppScheme]) { + //网页 + WebViewController *webVc = [WebViewController webVCWithUrlStr:linkStr]; + [self presentVC:webVc]; + } + } +} + ++ (UIViewController *)presentingVC{ + UIWindow * window = [[UIApplication sharedApplication] keyWindow]; + if (window.windowLevel != UIWindowLevelNormal) + { + NSArray *windows = [[UIApplication sharedApplication] windows]; + for(UIWindow * tmpWin in windows) + { + if (tmpWin.windowLevel == UIWindowLevelNormal) + { + window = tmpWin; + break; + } + } + } + UIViewController *result = window.rootViewController; + while (result.presentedViewController) { + result = result.presentedViewController; + } + if ([result isKindOfClass:[RootTabViewController class]]) { + result = [(RootTabViewController *)result selectedViewController]; + } + if ([result isKindOfClass:[UINavigationController class]]) { + result = [(UINavigationController *)result topViewController]; + } + return result; +} + ++ (void)presentVC:(UIViewController *)viewController{ + if (!viewController) { + return; + } + UINavigationController *nav = [[BaseNavigationController alloc] initWithRootViewController:viewController]; + if (!viewController.navigationItem.leftBarButtonItem) { + viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"关闭" style:UIBarButtonItemStylePlain target:viewController action:@selector(dismissModalVC)]; + } + [[self presentingVC] presentViewController:nav animated:YES completion:nil]; +} ++ (void)goToVC:(UIViewController *)viewController{ + if (!viewController) { + return; + } + UINavigationController *nav = [self presentingVC].navigationController; + if (nav) { + [nav pushViewController:viewController animated:YES]; + } +} + +#pragma mark Login +- (void)loginOutToLoginVC{ + [Login doLogout]; + [((AppDelegate *)[UIApplication sharedApplication].delegate) setupLoginViewController]; +} + + +#pragma mark (URL - ViewController) 特么,放在这里放瞎了 + +#ifdef Target_Enterprise + +- (void)p_setupUserActivity{ + NSString *webStr = nil; + + // 主 Tab + if ([self isKindOfClass:Project_RootViewController.class]) {//Project + webStr = @"/user/projects"; + }else if ([self isKindOfClass:MyTask_RootViewController.class]){//Task + webStr = [NSString stringWithFormat:@"/user/tasks?owner=%@&status=1", [Login curLoginUser].id]; + }else if ([self isKindOfClass:Message_RootViewController.class]){//Message + webStr = @"/user/messages/basic"; + }else if ([self isKindOfClass:Me_RootViewController.class]){//User + webStr = @"/user/account/setting/basic"; + + // Project + }else if ([self isKindOfClass:NProjectViewController.class]){ + Project *curPro = ((NProjectViewController *)self).myProject; + webStr = [NSString stringWithFormat:@"/p/%@", curPro.name]; + }else if ([self isKindOfClass:ProjectViewController.class]){ + Project *curPro = ((ProjectViewController *)self).myProject; + ProjectViewType type = ((ProjectViewController *)self).curType; + NSString *sufStr = (type == ProjectViewTypeTasks? @"/tasks": + type == ProjectViewTypeFiles? @"/attachment": + type == ProjectViewTypeCodes? @"/git": + type == ProjectViewTypeMembers? @"/setting/member": + type == ProjectViewTypeActivities? @"":@""); + webStr = [NSString stringWithFormat:@"/p/%@%@", curPro.name, sufStr]; + }else if ([self isKindOfClass:EACodeBranchListViewController.class]){ + Project *curPro = ((EACodeBranchListViewController *)self).myProject; + webStr = [NSString stringWithFormat:@"/p/%@/git/branches", curPro.name]; + }else if ([self isKindOfClass:EACodeReleaseListViewController.class]){ + Project *curPro = ((EACodeReleaseListViewController *)self).myProject; + webStr = [NSString stringWithFormat:@"/p/%@/git/releases", curPro.name]; + }else if ([self isKindOfClass:MRPRListViewController.class]){ + Project *curPro = ((MRPRListViewController *)self).curProject; + BOOL isMR = ((MRPRListViewController *)self).isMR; + webStr = [NSString stringWithFormat:@"/p/%@/git/%@", curPro.name, isMR? @"merges": @"pulls/open"]; + }else if ([self isKindOfClass:UserOrProjectTweetsViewController.class]){ + Tweets *curTweets = ((UserOrProjectTweetsViewController *)self).curTweets; + if (curTweets.tweetType == TweetTypeProject) { + webStr = [NSString stringWithFormat:@"/p/%@/setting/notice", curTweets.curPro.name]; + }else if (curTweets.tweetType == TweetTypeUserSingle){ + webStr = [NSString stringWithFormat:@"/u/%@/bubble", curTweets.curUser.global_key]; + } + }else if ([self isKindOfClass:ProjectSettingViewController.class]){ + Project *curPro = ((ProjectSettingViewController *)self).project; + webStr = [NSString stringWithFormat:@"/p/%@/setting", curPro.name]; + + // Task + }else if ([self isKindOfClass:EditTaskViewController.class]){ + Task *curTask = ((EditTaskViewController *)self).myTask; + NSString *project_name = [curTask.backend_project_path componentsSeparatedByString:@"/"].lastObject; + webStr = [NSString stringWithFormat:@"/p/%@/task/%@", project_name, curTask.id]; + + // Tweet + }else if ([self isKindOfClass:TweetDetailViewController.class]){ + Tweet *curTweet = ((TweetDetailViewController *)self).curTweet; + if (curTweet.isProjectTweet) { + webStr = [NSString stringWithFormat:@"/p/%@/setting/notice/%@", curTweet.project.name, curTweet.id]; + }else{ + webStr = [NSString stringWithFormat:@"/u/%@/pp/%@", curTweet.user_global_key ?: curTweet.owner.global_key, curTweet.id]; + } + + // Message + }else if ([self isKindOfClass:ConversationViewController.class]){ + PrivateMessages *curPriMs = ((ConversationViewController *)self).myPriMsgs; + webStr = [NSString stringWithFormat:@"/user/messages/history/%@", curPriMs.curFriend.global_key]; + + // User + }else if ([self isKindOfClass:UserInfoViewController.class]){ + User *curU = ((UserInfoViewController *)self).curUser; + webStr = [NSString stringWithFormat:@"/u/%@", curU.global_key]; + + // Topic/File/MR/Code/Wiki/Release + }else if ([self isKindOfClass:FileViewController.class]){ + ProjectFile *curFile = ((FileViewController *)self).curFile; + if (curFile.project_owner_name && curFile.project_name) { + webStr = curFile.owner_preview; + }else if (curFile.owner_preview){ + webStr = [NSString stringWithFormat:@"/p/%@/attachment/default/preview/%@", curFile.project_name, curFile.file_id]; + } + }else if ([self isKindOfClass:MRDetailViewController.class] || [self isKindOfClass:PRDetailViewController.class]){ + MRPR *curMRPR = [self valueForKey:@"curMRPR"]; + NSString *path = curMRPR.path; + NSRange range = [path rangeOfString:@"/p/"]; + webStr = range.location == NSNotFound? path: [path substringFromIndex:range.location]; + }else if ([self isKindOfClass:CodeViewController.class]){ + Project *curPro = ((CodeViewController *) self).myProject; + CodeFile *curCF = ((CodeViewController *) self).myCodeFile; + webStr = [NSString stringWithFormat:@"/p/%@/git/blob/%@/%@", curPro.name, curCF.ref, curCF.path]; + }else if ([self isKindOfClass:WikiViewController.class]){ + WikiViewController *vc = (WikiViewController *)self; + webStr = [NSString stringWithFormat:@"/p/%@/wiki", vc.myProject.name]; + if (vc.iid) { + webStr = [webStr stringByAppendingFormat:@"/%@", vc.iid]; + if (vc.version.integerValue > 0) { + webStr = [webStr stringByAppendingFormat:@"?version=%@", vc.version]; + } + } + }else if ([self isKindOfClass:EACodeReleaseViewController.class]){ + EACodeRelease *curR = ((EACodeReleaseViewController *)self).curRelease; + webStr = [NSString stringWithFormat:@"/p/%@/git/releases/%@", curR.project.name, curR.tag_name]; + + // CodeList/FileList/Webview + }else if ([self isKindOfClass:CodeListViewController.class]){ + Project *curPro = ((CodeListViewController *) self).myProject; + CodeTree *curCT = ((CodeListViewController *) self).myCodeTree; + webStr = [NSString stringWithFormat:@"/p/%@/git/tree/%@/%@", curPro.name, curCT.ref, curCT.path]; + }else if ([self isKindOfClass:NFileListViewController.class]){ + Project *curPro = ((NFileListViewController *) self).curProject; + ProjectFile *curPF = ((NFileListViewController *) self).curFolder; + webStr = [NSString stringWithFormat:@"/p/%@/attachment/%@", curPro.name, curPF.file_id]; + }else if ([self isKindOfClass:WebViewController.class]){ + webStr = ((WebViewController *)self).request.URL.absoluteString; + } + + if (webStr) { + NSURL *webURL = nil; + if (![webStr hasPrefix:@"http"]) { + webURL = [NSURL URLWithString:webStr relativeToURL:[NSURL URLWithString:[NSObject baseURLStr]]]; + }else{ + webURL = [NSURL URLWithString:webStr]; + } + if (!_userActivity) { + _userActivity = [[NSUserActivity alloc]initWithActivityType:@"com.alex.handoffdemo"]; + _userActivity.title = @"CODING_ENTERPRISE"; + } + [_userActivity setWebpageURL:webURL]; + [_userActivity becomeCurrent]; + } +} + ++ (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(AnalyseMethodType)methodType isNewVC:(BOOL *)isNewVC{ + DebugLog(@"\n analyseVCFromLinkStr : %@", linkStr); + + NSString *lowerLinkStr = linkStr.lowercaseString; + if (!linkStr || linkStr.length <= 0) { + return nil; + }else if (!([linkStr hasPrefix:@"/"] || + [lowerLinkStr hasPrefix:kCodingAppScheme] || + [lowerLinkStr hasPrefix:kBaseUrlStr_Phone] || + [lowerLinkStr hasPrefix:[NSObject baseURLStr].lowercaseString] || + [lowerLinkStr hasPrefix:@"https://coding.net"])){//兼容一下先 + return nil; + } + NSRange pRange = [linkStr rangeOfString:@"/p/"]; + if (pRange.location != NSNotFound && + [linkStr rangeOfString:@"/u/"].location == NSNotFound && + [linkStr rangeOfString:@"/t/"].location == NSNotFound) {//强填 u + NSString *defaultTeamStr = [NSString stringWithFormat:@"/u/%@", [Login curLoginCompany].global_key ?: [NSObject baseCompany]]; + linkStr = [linkStr stringByReplacingCharactersInRange:NSMakeRange(pRange.location, 0) withString:defaultTeamStr]; + } + UIViewController *analyseVC = nil; + UIViewController *presentingVC = nil; + BOOL analyseVCIsNew = YES; + if (methodType != AnalyseMethodTypeForceCreate) { + presentingVC = [BaseViewController presentingVC]; + } + + NSString *teamRegexStr = @"/t/([^/]+)$";//AT某人 + NSString *userRegexStr = @"/u/([^/]+)$";//AT某人 + // NSString *userTweetRegexStr = @"/u/([^/]+)/bubble$";//某人的冒泡 + // NSString *ppRegexStr = @"/u/([^/]+)/pp/([0-9]+)";//冒泡 + NSString *pp_projectRegexStr = @"/[ut]/([^/]+)/p/([^\?]+)[\?]pp=([0-9]+)$";//项目内冒泡(含团队项目) + NSString *topicRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/topic/(\\d+)";//讨论(含团队项目) + NSString *taskRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/task/(\\d+)";//任务(含团队项目) + NSString *fileRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/attachment/([^/]+)/preview/(\\d+)";//文件(含团队项目) + NSString *gitMRPRCommitRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/git/(merge|pull|commit)/([^/#]+)";//MR(含团队项目) + NSString *conversionRegexStr = @"/user/messages/history/([^/]+)$";//私信 + // NSString *pp_topicRegexStr = @"/pp/topic/([0-9]+)$";//话题 + NSString *codeRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/git/blob/([^/]+)[/]?([^?]*)";//代码(含团队项目) + NSString *twoFARegexStr = @"/app_intercept/show_2fa";//两步验证 + NSString *projectRegexStr = @"/[ut]/([^/]+)/p/([^/]+)";//项目(含团队项目) + NSString *noticeRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/setting/notice/(\\d+)";//项目公告 + NSString *wikiRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/wiki/(\\d+)";//Wiki + NSString *releaseRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/git/releases/([^/]+)[/]?([^?]*)";//Release + NSArray *matchedCaptures = nil; + + if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:teamRegexStr]).count > 0) { + //团队 + TeamViewController *vc = [TeamViewController new]; + NSString *team_global_key = matchedCaptures[1]; + vc.curTeam = [Team teamWithGK:team_global_key]; + analyseVC = vc; + }else if ([linkStr hasSuffix:@"/admin"]){ + //企业 + TeamViewController *vc = [TeamViewController new]; + NSString *team_global_key = [NSObject baseCompany]; + vc.curTeam = [Team teamWithGK:team_global_key]; + analyseVC = vc; + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:noticeRegexStr]).count > 0){ + //项目公告 + NSString *owner_user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + NSString *pp_id = matchedCaptures[3]; + Project *curPro = [Project new]; + curPro.owner_user_name = owner_user_global_key; + curPro.name = project_name; + TweetDetailViewController *vc = [[TweetDetailViewController alloc] init]; + vc.curTweet = [Tweet tweetInProject:curPro andPPID:pp_id]; + analyseVC = vc; + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:wikiRegexStr]).count > 0){ + WikiViewController *vc = [WikiViewController new]; + Project *curPro = [Project new]; + curPro.owner_user_name = matchedCaptures[1]; + curPro.name = matchedCaptures[2]; + NSString *iid = matchedCaptures[3]; + vc.myProject = curPro; + [vc setWikiIid:@(iid.integerValue) version:nil]; + analyseVC = vc; + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:releaseRegexStr]).count > 0){ + EACodeReleaseViewController *vc = [EACodeReleaseViewController new]; + Project *curPro = [Project new]; + curPro.owner_user_name = matchedCaptures[1]; + curPro.name = matchedCaptures[2]; + EACodeRelease *curR = [EACodeRelease new]; + curR.project = curPro; + curR.tag_name = matchedCaptures[3]; + vc.curRelease = curR; + analyseVC = vc; + // }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:ppRegexStr]).count > 0){ + // //冒泡 + // NSString *user_global_key = matchedCaptures[1]; + // NSString *pp_id = matchedCaptures[2]; + // if ([presentingVC isKindOfClass:[TweetDetailViewController class]]) { + // TweetDetailViewController *vc = (TweetDetailViewController *)presentingVC; + // if ([vc.curTweet.id.stringValue isEqualToString:pp_id] + // && [vc.curTweet.owner.global_key isEqualToString:user_global_key]) { + // [vc refreshTweet]; + // analyseVCIsNew = NO; + // analyseVC = vc; + // } + // } + // if (!analyseVC) { + // TweetDetailViewController *vc = [[TweetDetailViewController alloc] init]; + // vc.curTweet = [Tweet tweetWithGlobalKey:user_global_key andPPID:pp_id]; + // analyseVC = vc; + // } + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:pp_projectRegexStr]).count > 0){ + //项目内冒泡 + NSString *owner_user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + NSString *pp_id = matchedCaptures[3]; + Project *curPro = [Project new]; + curPro.owner_user_name = owner_user_global_key; + curPro.name = project_name; + TweetDetailViewController *vc = [[TweetDetailViewController alloc] init]; + vc.curTweet = [Tweet tweetInProject:curPro andPPID:pp_id]; + analyseVC = vc; + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:gitMRPRCommitRegexStr]).count > 0){ + //MR + NSString *path = [matchedCaptures[0] stringByReplacingOccurrencesOfString:@"https://coding.net" withString:@""]; + +// NSString *defaultTeamStr = [NSString stringWithFormat:@"/u/%@", [Login curLoginCompany].global_key ?: [NSObject baseCompany]]; +// linkStr = [linkStr stringByReplacingCharactersInRange:NSMakeRange(pRange.location, 0) withString:defaultTeamStr]; + + + if ([matchedCaptures[3] isEqualToString:@"commit"]) { + if ([presentingVC isKindOfClass:[CommitFilesViewController class]]) { + CommitFilesViewController *vc = (CommitFilesViewController *)presentingVC; + if ([vc.commitId isEqualToString:matchedCaptures[3]] && + [vc.projectName isEqualToString:matchedCaptures[2]] && + [vc.ownerGK isEqualToString:matchedCaptures[1]]) { + [vc refresh]; + analyseVCIsNew = NO; + analyseVC = vc; + } + } + if (!analyseVC) { + analyseVC = [CommitFilesViewController vcWithPath:path]; + } + }else{ + if ([presentingVC isKindOfClass:[PRDetailViewController class]]) { + PRDetailViewController *vc = (PRDetailViewController *)presentingVC; + if ([vc.curMRPR.path isEqualToString:path]) { + [vc refresh]; + analyseVCIsNew = NO; + analyseVC = vc; + } + } + if (!analyseVC) { + if([path rangeOfString:@"merge"].location == NSNotFound) { + analyseVC = [PRDetailViewController vcWithPath:path]; + } else { + analyseVC = [MRDetailViewController vcWithPath:path]; + } + } + } + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:topicRegexStr]).count > 0){ + //讨论 + NSString *topic_id = matchedCaptures[3]; + if ([presentingVC isKindOfClass:[TopicDetailViewController class]]) { + TopicDetailViewController *vc = (TopicDetailViewController *)presentingVC; + if ([vc.curTopic.id.stringValue isEqualToString:topic_id]) { + [vc refreshTopic]; + analyseVCIsNew = NO; + analyseVC = vc; + } + } + if (!analyseVC) { + TopicDetailViewController *vc = [[TopicDetailViewController alloc] init]; + vc.curTopic = [ProjectTopic topicWithId:[NSNumber numberWithInteger:topic_id.integerValue]]; + analyseVC = vc; + } + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:taskRegexStr]).count > 0){ + //任务 + NSString *user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + NSString *taskId = matchedCaptures[3]; + NSString *backend_project_path = [NSString stringWithFormat:@"/user/%@/project/%@", user_global_key, project_name]; + if ([presentingVC isKindOfClass:[EditTaskViewController class]]) { + EditTaskViewController *vc = (EditTaskViewController *)presentingVC; + if ([vc.myTask.backend_project_path isEqualToString:backend_project_path] + && [vc.myTask.id.stringValue isEqualToString:taskId]) { + [vc queryToRefreshTaskDetail]; + analyseVCIsNew = NO; + analyseVC = vc; + } + } + if (!analyseVC) { + EditTaskViewController *vc = [[EditTaskViewController alloc] init]; + vc.myTask = [Task taskWithBackend_project_path:[NSString stringWithFormat:@"/user/%@/project/%@", user_global_key, project_name] andId:taskId]; + @weakify(vc); + vc.taskChangedBlock = ^(){ + @strongify(vc); + [vc dismissViewControllerAnimated:YES completion:nil]; + }; + analyseVC = vc; + } + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:fileRegexStr]).count > 0){ + //文件 + NSString *user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + NSString *fileId = matchedCaptures[4]; + if ([presentingVC isKindOfClass:[FileViewController class]]) { + FileViewController *vc = (FileViewController *)presentingVC; + if (vc.curFile.file_id.integerValue == fileId.integerValue) { + [vc requestFileData]; + analyseVCIsNew = NO; + analyseVC = vc; + } + } + if (!analyseVC) { + ProjectFile *curFile = [[ProjectFile alloc] initWithFileId:@(fileId.integerValue) inProject:project_name ofUser:user_global_key]; + FileViewController *vc = [FileViewController vcWithFile:curFile andVersion:nil]; + analyseVC = vc; + } + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:conversionRegexStr]).count > 0) { + //私信 + NSString *user_global_key = matchedCaptures[1]; + if ([presentingVC isKindOfClass:[ConversationViewController class]]) { + ConversationViewController *vc = (ConversationViewController *)presentingVC; + if ([vc.myPriMsgs.curFriend.global_key isEqualToString:user_global_key]) { + [vc doPoll]; + analyseVCIsNew = NO; + analyseVC = vc; + } + } + if (!analyseVC) { + ConversationViewController *vc = [[ConversationViewController alloc] init]; + vc.myPriMsgs = [PrivateMessages priMsgsWithUser:[User userWithGlobalKey:user_global_key]]; + analyseVC = vc; + } + }else if (methodType != AnalyseMethodTypeJustRefresh){ + if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:userRegexStr]).count > 0) { + //AT某人 + NSString *user_global_key = matchedCaptures[1]; + UserInfoDetailViewController *vc = [UserInfoDetailViewController new]; + vc.curUser = [User userWithGlobalKey:user_global_key]; + analyseVC = vc; + // }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:userTweetRegexStr]).count > 0){ + // //某人的冒泡 + // UserOrProjectTweetsViewController *vc = [[UserOrProjectTweetsViewController alloc] init]; + // NSString *user_global_key = matchedCaptures[1]; + // vc.curTweets = [Tweets tweetsWithUser:[User userWithGlobalKey:user_global_key]]; + // analyseVC = vc; + // }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:pp_topicRegexStr]).count > 0){ + // //话题 + // NSString *pp_topic_id = matchedCaptures[1]; + // CSTopicDetailVC *vc = [CSTopicDetailVC new]; + // vc.topicID = pp_topic_id.integerValue; + // analyseVC = vc; + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:codeRegexStr]).count > 0){ + //代码 + NSString *user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + NSString *ref = matchedCaptures[3]; + NSString *path = matchedCaptures.count >= 5? matchedCaptures[4]: @""; + + Project *curPro = [[Project alloc] init]; + curPro.owner_user_name = user_global_key; + curPro.name = project_name; + CodeFile *codeFile = [CodeFile codeFileWithRef:ref andPath:path]; + CodeViewController *vc = [CodeViewController codeVCWithProject:curPro andCodeFile:codeFile]; + analyseVC = vc; + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:twoFARegexStr]).count > 0){ + //两步验证 + analyseVC = [OTPListViewController new]; + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:projectRegexStr]).count > 0){ + //项目 + NSString *user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + Project *curPro = [[Project alloc] init]; + curPro.owner_user_name = user_global_key; + curPro.name = project_name; + NProjectViewController *vc = [[NProjectViewController alloc] init]; + vc.myProject = curPro; + analyseVC = vc; + } + } + if (isNewVC) { + *isNewVC = analyseVCIsNew; + } + return analyseVC; +} + +#else + - (void)p_setupUserActivity{ NSString *webStr = nil; -// 主 Tab + // 主 Tab if ([self isKindOfClass:Project_RootViewController.class]) {//Project webStr = @"/user/projects"; }else if ([self isKindOfClass:MyTask_RootViewController.class]){//Task @@ -123,14 +669,14 @@ - (void)p_setupUserActivity{ }else if ([self isKindOfClass:Tweet_RootViewController.class]){//Tweet Tweet_RootViewControllerType type = ((Tweet_RootViewController *)self).type; webStr = [NSString stringWithFormat:@"/pp%@", (type == Tweet_RootViewControllerTypeHot? @"/hot": - type == Tweet_RootViewControllerTypeFriend? @"/friends": - @"")]; + type == Tweet_RootViewControllerTypeFriend? @"/friends": + @"")]; }else if ([self isKindOfClass:Message_RootViewController.class]){//Message webStr = @"/user/messages/basic"; }else if ([self isKindOfClass:Me_RootViewController.class]){//User webStr = @"/user/account"; - -// Project + + // Project }else if ([self isKindOfClass:NProjectViewController.class]){ Project *curPro = ((NProjectViewController *)self).myProject; webStr = [NSString stringWithFormat:@"/u/%@/p/%@", curPro.owner_user_name, curPro.name]; @@ -165,14 +711,14 @@ - (void)p_setupUserActivity{ Project *curPro = ((ProjectSettingViewController *)self).project; webStr = [NSString stringWithFormat:@"/u/%@/p/%@/setting", curPro.owner_user_name, curPro.name]; -// Task + // Task }else if ([self isKindOfClass:EditTaskViewController.class]){ Task *curTask = ((EditTaskViewController *)self).myTask; NSString *project_path = curTask.backend_project_path.copy; project_path = [[project_path stringByReplacingOccurrencesOfString:@"/user/" withString:@"/u/"] stringByReplacingOccurrencesOfString:@"/project/" withString:@"/p/"]; webStr = [NSString stringWithFormat:@"%@/task/%@", project_path, curTask.id]; -// Tweet + // Tweet }else if ([self isKindOfClass:TweetDetailViewController.class]){ Tweet *curTweet = ((TweetDetailViewController *)self).curTweet; if (curTweet.isProjectTweet) { @@ -181,17 +727,17 @@ - (void)p_setupUserActivity{ webStr = [NSString stringWithFormat:@"/u/%@/pp/%@", curTweet.user_global_key ?: curTweet.owner.global_key, curTweet.id]; } -// Message + // Message }else if ([self isKindOfClass:ConversationViewController.class]){ PrivateMessages *curPriMs = ((ConversationViewController *)self).myPriMsgs; webStr = [NSString stringWithFormat:@"/user/messages/history/%@", curPriMs.curFriend.global_key]; -// User + // User }else if ([self isKindOfClass:UserInfoViewController.class]){ User *curU = ((UserInfoViewController *)self).curUser; webStr = [NSString stringWithFormat:@"/u/%@", curU.global_key]; -// Topic/File/MR/Code/Wiki/Release + // Topic/File/MR/Code/Wiki/Release }else if ([self isKindOfClass:TopicDetailViewController.class]){ ProjectTopic *curTopic = ((TopicDetailViewController *)self).curTopic; webStr = [NSString stringWithFormat:@"/u/%@/p/%@/topic/%@", curTopic.project.owner_user_name, curTopic.project.name, curTopic.id]; @@ -222,14 +768,14 @@ - (void)p_setupUserActivity{ EACodeRelease *curR = ((EACodeReleaseViewController *)self).curRelease; webStr = [NSString stringWithFormat:@"/u/%@/p/%@/git/releases/%@", curR.project.owner_user_name, curR.project.name, curR.tag_name]; -// CodeList/FileList/Webview + // CodeList/FileList/Webview }else if ([self isKindOfClass:CodeListViewController.class]){ Project *curPro = ((CodeListViewController *) self).myProject; CodeTree *curCT = ((CodeListViewController *) self).myCodeTree; webStr = [NSString stringWithFormat:@"/u/%@/p/%@/git/tree/%@/%@", curPro.owner_user_name, curPro.name, curCT.ref, curCT.path]; - }else if ([self isKindOfClass:FileListViewController.class]){ - Project *curPro = ((FileListViewController *) self).curProject; - ProjectFolder *curPF = ((FileListViewController *) self).curFolder; + }else if ([self isKindOfClass:NFileListViewController.class]){ + Project *curPro = ((NFileListViewController *) self).curProject; + ProjectFile *curPF = ((NFileListViewController *) self).curFolder; webStr = [NSString stringWithFormat:@"/u/%@/p/%@/attachment/%@", curPro.owner_user_name, curPro.name, curPF.file_id]; }else if ([self isKindOfClass:WebViewController.class]){ webStr = ((WebViewController *)self).request.URL.absoluteString; @@ -251,59 +797,6 @@ - (void)p_setupUserActivity{ } } -- (void)tabBarItemClicked{ - DebugLog(@"\ntabBarItemClicked : %@", NSStringFromClass([self class])); -} - -#pragma mark - Orientations -- (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); -} - -- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { - return UIInterfaceOrientationPortrait; -} - -- (UIInterfaceOrientationMask)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskPortrait; -} - -- (void)forceChangeToOrientation:(UIInterfaceOrientation)interfaceOrientation{ - [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:interfaceOrientation] forKey:@"orientation"]; -} - -#pragma mark Notification -+ (void)handleNotificationInfo:(NSDictionary *)userInfo applicationState:(UIApplicationState)applicationState{ - if (applicationState == UIApplicationStateInactive) { - //If the application state was inactive, this means the user pressed an action button from a notification. - //标记为已读 - NSString *notification_id = [userInfo objectForKey:@"notification_id"]; - if (notification_id) { - [[Coding_NetAPIManager sharedManager] request_markReadWithCodingTipIdStr:notification_id andBlock:^(id data, NSError *error) { - }]; - } - //弹出临时会话 - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - DebugLog(@"handleNotificationInfo : %@", userInfo); - NSString *param_url = [userInfo objectForKey:@"param_url"]; - [self presentLinkStr:param_url]; - }); - }else if (applicationState == UIApplicationStateActive){ - NSString *param_url = [userInfo objectForKey:@"param_url"]; - [self analyseVCFromLinkStr:param_url analyseMethod:AnalyseMethodTypeJustRefresh isNewVC:nil];//AnalyseMethodTypeJustRefresh - //标记未读 - UIViewController *presentingVC = [BaseViewController presentingVC]; - if ([presentingVC isKindOfClass:[Message_RootViewController class]]) { - [(Message_RootViewController *)presentingVC refresh]; - } - [[UnReadManager shareManager] updateUnRead]; - } -} - -+ (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr{ - return [self analyseVCFromLinkStr:linkStr analyseMethod:AnalyseMethodTypeForceCreate isNewVC:nil]; -} - + (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(AnalyseMethodType)methodType isNewVC:(BOOL *)isNewVC{ DebugLog(@"\n analyseVCFromLinkStr : %@", linkStr); @@ -336,6 +829,7 @@ + (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(An NSString *codeRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/git/blob/([^/]+)[/]?([^?]*)";//代码(含团队项目) NSString *twoFARegexStr = @"/app_intercept/show_2fa";//两步验证 NSString *projectRegexStr = @"/[ut]/([^/]+)/p/([^/]+)";//项目(含团队项目) + NSString *noticeRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/setting/notice/(\\d+)";//项目公告 NSString *wikiRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/wiki/(\\d+)";//Wiki NSString *releaseRegexStr = @"/[ut]/([^/]+)/p/([^/]+)/git/releases/([^/]+)[/]?([^?]*)";//Release NSArray *matchedCaptures = nil; @@ -357,6 +851,17 @@ + (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(An vc.curTweet = [Tweet tweetWithGlobalKey:user_global_key andPPID:pp_id]; analyseVC = vc; } + }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:noticeRegexStr]).count > 0){ + //项目公告 + NSString *owner_user_global_key = matchedCaptures[1]; + NSString *project_name = matchedCaptures[2]; + NSString *pp_id = matchedCaptures[3]; + Project *curPro = [Project new]; + curPro.owner_user_name = owner_user_global_key; + curPro.name = project_name; + TweetDetailViewController *vc = [[TweetDetailViewController alloc] init]; + vc.curTweet = [Tweet tweetInProject:curPro andPPID:pp_id]; + analyseVC = vc; }else if ((matchedCaptures = [linkStr captureComponentsMatchedByRegex:wikiRegexStr]).count > 0){ WikiViewController *vc = [WikiViewController new]; Project *curPro = [Project new]; @@ -416,7 +921,7 @@ + (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(An } if (!analyseVC) { if([path rangeOfString:@"merge"].location == NSNotFound) { - analyseVC = [PRDetailViewController vcWithPath:path]; + analyseVC = [PRDetailViewController vcWithPath:path]; } else { analyseVC = [MRDetailViewController vcWithPath:path]; } @@ -555,74 +1060,6 @@ + (UIViewController *)analyseVCFromLinkStr:(NSString *)linkStr analyseMethod:(An return analyseVC; } -+ (void)presentLinkStr:(NSString *)linkStr{ - if (!linkStr || linkStr.length == 0) { - return; - } - BOOL isNewVC = YES; - UIViewController *vc = [self analyseVCFromLinkStr:linkStr analyseMethod:AnalyseMethodTypeLazyCreate isNewVC:&isNewVC]; - if (vc && isNewVC) { - [self presentVC:vc]; - }else if (!vc){ - if (![linkStr hasPrefix:kCodingAppScheme]) { - //网页 - WebViewController *webVc = [WebViewController webVCWithUrlStr:linkStr]; - [self presentVC:webVc]; - } - } -} - -+ (UIViewController *)presentingVC{ - UIWindow * window = [[UIApplication sharedApplication] keyWindow]; - if (window.windowLevel != UIWindowLevelNormal) - { - NSArray *windows = [[UIApplication sharedApplication] windows]; - for(UIWindow * tmpWin in windows) - { - if (tmpWin.windowLevel == UIWindowLevelNormal) - { - window = tmpWin; - break; - } - } - } - UIViewController *result = window.rootViewController; - while (result.presentedViewController) { - result = result.presentedViewController; - } - if ([result isKindOfClass:[RootTabViewController class]]) { - result = [(RootTabViewController *)result selectedViewController]; - } - if ([result isKindOfClass:[UINavigationController class]]) { - result = [(UINavigationController *)result topViewController]; - } - return result; -} - -+ (void)presentVC:(UIViewController *)viewController{ - if (!viewController) { - return; - } - UINavigationController *nav = [[BaseNavigationController alloc] initWithRootViewController:viewController]; - if (!viewController.navigationItem.leftBarButtonItem) { - viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"关闭" style:UIBarButtonItemStylePlain target:viewController action:@selector(dismissModalVC)]; - } - [[self presentingVC] presentViewController:nav animated:YES completion:nil]; -} -+ (void)goToVC:(UIViewController *)viewController{ - if (!viewController) { - return; - } - UINavigationController *nav = [self presentingVC].navigationController; - if (nav) { - [nav pushViewController:viewController animated:YES]; - } -} - -#pragma mark Login -- (void)loginOutToLoginVC{ - [Login doLogout]; - [((AppDelegate *)[UIApplication sharedApplication].delegate) setupLoginViewController]; -} +#endif @end diff --git a/Coding_iOS/Controllers/RootControllers/Me_RootViewController.m b/Coding_iOS/Controllers/RootControllers/Me_RootViewController.m index a2b1b02d5..cbd1a31f1 100755 --- a/Coding_iOS/Controllers/RootControllers/Me_RootViewController.m +++ b/Coding_iOS/Controllers/RootControllers/Me_RootViewController.m @@ -18,6 +18,7 @@ #import "PointRecordsViewController.h" #import "AboutViewController.h" #import "HelpViewController.h" +#import "EditTopicViewController.h" #import "RDVTabBarController.h" #import "RDVTabBarItem.h" @@ -34,6 +35,239 @@ #import "FunctionTipsManager.h" #import "ShopViewController.h" +#import "MeRootCompanyCell.h" +#import "TeamViewController.h" + + + +#ifdef Target_Enterprise + +@interface Me_RootViewController () +@property (strong, nonatomic) UITableView *myTableView; +@property (nonatomic, strong) ODRefreshControl *refreshControl; + +@property (strong, nonatomic) User *curUser; +@property (strong, nonatomic) Team *curTeam; +@end + +@implementation Me_RootViewController + +- (void)tabBarItemClicked{ + [super tabBarItemClicked]; + if (_myTableView.contentOffset.y > 0) { + [_myTableView setContentOffset:CGPointZero animated:YES]; + }else if (!self.refreshControl.isAnimating){ + [self.refreshControl beginRefreshing]; + [self.myTableView setContentOffset:CGPointMake(0, -44)]; + [self refresh]; + } +} + +- (void)viewDidLoad{ + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.title = @"我"; + _curUser = [Login curLoginUser] ?: [User userWithGlobalKey:@""]; + _curTeam = [Login curLoginCompany] ?: [Team teamWithGK:[NSObject baseCompany]]; + // [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"addUserBtn_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(goToAddUser)] animated:NO]; + + // 添加myTableView + _myTableView = ({ + UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped]; + tableView.backgroundColor = kColorTableSectionBg; + tableView.dataSource = self; + tableView.delegate = self; + tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + [tableView registerClass:[UserInfoIconCell class] forCellReuseIdentifier:kCellIdentifier_UserInfoIconCell]; + [tableView registerClass:[MeRootUserCell class] forCellReuseIdentifier:kCellIdentifier_MeRootUserCell]; + [tableView registerClass:[MeRootCompanyCell class] forCellReuseIdentifier:kCellIdentifier_MeRootCompanyCell]; + [self.view addSubview:tableView]; + [tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; + UIEdgeInsets insets = UIEdgeInsetsMake(0, 0, CGRectGetHeight(self.rdv_tabBarController.tabBar.frame), 0); + tableView.contentInset = insets; + tableView.scrollIndicatorInsets = insets; + tableView.estimatedRowHeight = 0; + tableView.estimatedSectionHeaderHeight = 0; + tableView.estimatedSectionFooterHeight = 0; + tableView; + }); + + _refreshControl = [[ODRefreshControl alloc] initInScrollView:self.myTableView]; + [_refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged]; +} + +- (void)viewWillAppear:(BOOL)animated{ + [super viewWillAppear:animated]; + [self refresh]; +} + +- (void)refresh{ + __weak typeof(self) weakSelf = self; + [[Coding_NetAPIManager sharedManager] request_UserInfo_WithObj:_curUser andBlock:^(id data, NSError *error) { + if (data) { + weakSelf.curUser = data; + [[Coding_NetAPIManager sharedManager] request_UpdateIsAdministratorBlock:^(id dataI, NSError *errorI) { + if (dataI) { + weakSelf.curUser.isAdministrator = dataI; + [[Coding_NetAPIManager sharedManager] request_UpdateCompanyInfoBlock:^(id dataC, NSError *errorC) { + if (dataC) { + weakSelf.curTeam = dataC; + } + [weakSelf.myTableView reloadData]; + [weakSelf.refreshControl endRefreshing]; + }]; + }else{ + [weakSelf.myTableView reloadData]; + [weakSelf.refreshControl endRefreshing]; + } + }]; + }else{ + [weakSelf.refreshControl endRefreshing]; + } + }]; +} + +#pragma mark Table M +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ + return 4; +} +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + NSInteger row = (section ==0? 1: + section == 1? _curUser.isAdministrator.boolValue? 1: 0: + section == 2? 1: + 3); + return row; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + if (indexPath.section == 0) { + MeRootUserCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_MeRootUserCell forIndexPath:indexPath]; + cell.curUser = _curUser; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:0]; + return cell; + }else if (indexPath.section == 1){ + MeRootCompanyCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_MeRootCompanyCell forIndexPath:indexPath]; + cell.curCompany = _curTeam; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:0]; + return cell; + }else{ + UserInfoIconCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_UserInfoIconCell forIndexPath:indexPath]; + (indexPath.section == 2? [cell setTitle:@"本地文件" icon:@"user_info_file"]: + indexPath.row == 0? [cell setTitle:@"帮助中心" icon:@"user_info_help"]: + indexPath.row == 1? [cell setTitle:@"设置" icon:@"user_info_setup"]: + [cell setTitle:@"关于我们" icon:@"user_info_about"]); + cell.clipsToBounds = YES; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; + return cell; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + CGFloat cellHeight = 0; + if (indexPath.section == 0) { + cellHeight = [MeRootUserCell cellHeight]; + }else if (indexPath.section == 1){ + cellHeight = [MeRootCompanyCell cellHeight]; + }else{ + cellHeight = [UserInfoIconCell cellHeight]; + // cellHeight = (indexPath.section == 3 && indexPath.row == 0)? 0: [UserInfoIconCell cellHeight]; + } + return cellHeight; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + return kLine_MinHeight; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + return [UIView new]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ + return section == 0 || (section == 1 && !_curUser.isAdministrator.boolValue)? 1.0/[UIScreen mainScreen].scale: 15; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ + UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreen_Width, 15)]; + headerView.backgroundColor = kColorTableSectionBg; + return headerView; +} +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (indexPath.section == 0) { + [self goToMeDisplay]; + }else if (indexPath.section == 1){ + if (_curUser.isAdministrator.boolValue) { + TeamViewController *vc = [TeamViewController new]; + vc.curTeam = _curTeam; + [self.navigationController pushViewController:vc animated:YES]; + } + }else if (indexPath.section == 2){ + [self goToLocalFolders]; + }else{ + if (indexPath.row == 0) { + [self goToHelp]; + }else if (indexPath.row == 1){ + [self goToSetting]; + }else{ + [self goToAbout]; + } + } +} + +#pragma mark GoTo +- (void)goToAddUser{ + AddUserViewController *vc = [[AddUserViewController alloc] init]; + vc.type = AddUserTypeFollow; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)goToLocalFolders{ + LocalFoldersViewController *vc = [LocalFoldersViewController new]; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)goToPoint{ + PointRecordsViewController *vc = [PointRecordsViewController new]; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)goToSetting{ + SettingViewController *vc = [[SettingViewController alloc] init]; + vc.myUser = self.curUser; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)goToHelp{ + [self.navigationController pushViewController:[HelpViewController vcWithHelpStr] animated:YES]; +} + +- (void)goToAbout{ + [self.navigationController pushViewController:[AboutViewController new] animated:YES]; +} + +- (void)goToProjects{ + ProjectListViewController *vc = [[ProjectListViewController alloc] init]; + vc.curUser = _curUser; + vc.isFromMeRoot = YES; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)goToTeams{ + [self.navigationController pushViewController:[TeamListViewController new] animated:YES]; +} + +- (void)goToMeDisplay{ + SettingMineInfoViewController *vc = [[SettingMineInfoViewController alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; +} + +@end + +#else + @interface Me_RootViewController () @property (strong, nonatomic) UITableView *myTableView; @property (nonatomic, strong) ODRefreshControl *refreshControl; @@ -51,7 +285,7 @@ - (void)viewDidLoad{ self.title = @"我"; _curUser = [Login curLoginUser]? [Login curLoginUser]: [User userWithGlobalKey:@""]; [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"addUserBtn_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(goToAddUser)] animated:NO]; - + // 添加myTableView _myTableView = ({ UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped]; @@ -136,7 +370,7 @@ - (void)configHeader{ tipL.adjustsFontSizeToFitWidth = YES; tipL.minimumScaleFactor = .5; tipL.userInteractionEnabled = YES; -// tipL.text = _curUser.canUpgradeByCompleteUserInfo? @"完善个人信息,即可升级银牌会员": [NSString stringWithFormat:@"会员过期将自动降级到%@", _curUser.isUserInfoCompleted? @"银牌会员": @"普通会员"]; + // tipL.text = _curUser.canUpgradeByCompleteUserInfo? @"完善个人信息,即可升级银牌会员": [NSString stringWithFormat:@"会员过期将自动降级到%@", _curUser.isUserInfoCompleted? @"银牌会员": @"普通会员"]; tipL.text = _curUser.canUpgradeByCompleteUserInfo? @"完善个人信息,即可升级银牌会员": @"会员过期后将会自动降级"; [tipL bk_whenTapped:^{ if (weakSelf.curUser.canUpgradeByCompleteUserInfo) { @@ -194,7 +428,8 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N (indexPath.section == 1? (indexPath.row == 0? [cell setTitle:@"我的码币" icon:@"user_info_point"]: [cell setTitle:@"商城" icon:@"user_info_shop"]): indexPath.row == 0? [cell setTitle:@"本地文件" icon:@"user_info_file"]: - indexPath.row == 1? [cell setTitle:@"帮助与反馈" icon:@"user_info_help"]: +// indexPath.row == 1? [cell setTitle:@"帮助与反馈" icon:@"user_info_help"]: + indexPath.row == 1? [cell setTitle:@"意见反馈" icon:@"user_info_help"]: indexPath.row == 2? [cell setTitle:@"设置" icon:@"user_info_setup"]: [cell setTitle:@"关于我们" icon:@"user_info_about"]); @@ -210,15 +445,15 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N make.right.offset(-kPaddingLeftWidth); }]; } -// if (indexPath.section == 1 && indexPath.row == 1 && [[FunctionTipsManager shareManager] needToTip:kFunctionTipStr_Me_Shop]) { -//// cell.accessoryType = UITableViewCellAccessoryNone; -// CGFloat pointX = kScreen_Width - 40; -// CGFloat pointY = [UserInfoIconCell cellHeight]/2; -// [cell.contentView addBadgeTip:kBadgeTipStr withCenterPosition:CGPointMake(pointX, pointY)]; -// }else{ -//// cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; -// [cell.contentView removeBadgeTips]; -// } + // if (indexPath.section == 1 && indexPath.row == 1 && [[FunctionTipsManager shareManager] needToTip:kFunctionTipStr_Me_Shop]) { + //// cell.accessoryType = UITableViewCellAccessoryNone; + // CGFloat pointX = kScreen_Width - 40; + // CGFloat pointY = [UserInfoIconCell cellHeight]/2; + // [cell.contentView addBadgeTip:kBadgeTipStr withCenterPosition:CGPointMake(pointX, pointY)]; + // }else{ + //// cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + // [cell.contentView removeBadgeTips]; + // } [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; return cell; } @@ -229,7 +464,11 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa if (indexPath.section == 0) { cellHeight = indexPath.row == 0? [MeRootUserCell cellHeight]: [MeRootServiceCell cellHeight]; }else{ - cellHeight = [UserInfoIconCell cellHeight]; + if (indexPath.section == 2 && indexPath.row == 1) { + cellHeight = 0; + }else{ + cellHeight = [UserInfoIconCell cellHeight]; + } } return cellHeight; } @@ -263,7 +502,8 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath if (indexPath.row == 0) {//本地文件 [self goToLocalFolders]; }else if (indexPath.row == 1){//帮助与反馈 - [self goToHelp]; +// [self goToHelp]; + [self goToFeedBack]; }else if (indexPath.row == 2){//设置 [self goToSetting]; }else{//关于我们 @@ -308,6 +548,14 @@ - (void)goToHelp{ [self.navigationController pushViewController:[HelpViewController vcWithHelpStr] animated:YES]; } +- (void)goToFeedBack{ + EditTopicViewController *vc = [[EditTopicViewController alloc] init]; + vc.curProTopic = [ProjectTopic feedbackTopic]; + vc.type = TopicEditTypeFeedBack; + vc.topicChangedBlock = nil; + [self.navigationController pushViewController:vc animated:YES]; +} + - (void)goToAbout{ [self.navigationController pushViewController:[AboutViewController new] animated:YES]; } @@ -338,3 +586,7 @@ - (void)goToMeDisplay{ } @end + +#endif + + diff --git a/Coding_iOS/Controllers/RootControllers/Message_RootViewController.m b/Coding_iOS/Controllers/RootControllers/Message_RootViewController.m index 04bbdc357..0315fd2a4 100755 --- a/Coding_iOS/Controllers/RootControllers/Message_RootViewController.m +++ b/Coding_iOS/Controllers/RootControllers/Message_RootViewController.m @@ -6,6 +6,8 @@ // Copyright (c) 2014年 Coding. All rights reserved. // +#define kTopItemNum 1 + #import "Message_RootViewController.h" #import "ODRefreshControl.h" #import "Coding_NetAPIManager.h" @@ -24,7 +26,7 @@ @interface Message_RootViewController () @property (nonatomic, strong) UITableView *myTableView; @property (nonatomic, strong) ODRefreshControl *refreshControl; @property (strong, nonatomic) PrivateMessages *myPriMsgs; -@property (strong, nonatomic) NSMutableDictionary *notificationDict; +//@property (strong, nonatomic) NSMutableDictionary *notificationDict; @end @implementation Message_RootViewController @@ -115,21 +117,21 @@ - (void)dealloc{ - (void)sendMsgBtnClicked:(id)sender{ UsersViewController *vc = [[UsersViewController alloc] init]; - vc.curUsers = [Users usersWithOwner:[Login curLoginUser] Type:UsersTypeFriends_Message]; + vc.curUsers = [Users usersWithOwner:[Login curLoginUser] Type:kTarget_Enterprise? UsersType_CompanyMember: UsersTypeFriends_Message]; [self.navigationController pushViewController:vc animated:YES]; } - (void)refresh{ - __weak typeof(self) weakSelf = self; - [[Coding_NetAPIManager sharedManager] request_UnReadNotificationsWithBlock:^(id data, NSError *error) { - if (data) { - weakSelf.notificationDict = [NSMutableDictionary dictionaryWithDictionary:data]; - [weakSelf.myTableView reloadData]; - [weakSelf.myTableView configBlankPage:EaseBlankPageTypeMessageList hasData:(weakSelf.myPriMsgs.list.count > 0) hasError:(error != nil) offsetY:(3 * [ToMessageCell cellHeight]) reloadButtonBlock:^(id sender) { - [weakSelf refresh]; - }]; - } - }]; +// __weak typeof(self) weakSelf = self; +// [[Coding_NetAPIManager sharedManager] request_UnReadNotificationsWithBlock:^(id data, NSError *error) { +// if (data) { +// weakSelf.notificationDict = [NSMutableDictionary dictionaryWithDictionary:data]; +// [weakSelf.myTableView reloadData]; +// [weakSelf.myTableView configBlankPage:EaseBlankPageTypeMessageList hasData:(weakSelf.myPriMsgs.list.count > 0) hasError:(error != nil) offsetY:(kTopItemNum * [ToMessageCell cellHeight]) reloadButtonBlock:^(id sender) { +// [weakSelf refresh]; +// }]; +// } +// }]; [[UnReadManager shareManager] updateUnRead]; if (_myPriMsgs.isLoading) { @@ -156,7 +158,7 @@ - (void)sendRequest_PrivateMessages{ [weakSelf.myPriMsgs configWithObj:data]; [weakSelf.myTableView reloadData]; weakSelf.myTableView.showsInfiniteScrolling = weakSelf.myPriMsgs.canLoadMore; - [weakSelf.myTableView configBlankPage:EaseBlankPageTypeMessageList hasData:(weakSelf.myPriMsgs.list.count > 0) hasError:(error != nil) offsetY:(3 * [ToMessageCell cellHeight]) reloadButtonBlock:^(id sender) { + [weakSelf.myTableView configBlankPage:EaseBlankPageTypeMessageList hasData:(weakSelf.myPriMsgs.list.count > 0) hasError:(error != nil) offsetY:(kTopItemNum * [ToMessageCell cellHeight]) reloadButtonBlock:^(id sender) { [weakSelf refresh]; }]; } @@ -165,7 +167,7 @@ - (void)sendRequest_PrivateMessages{ #pragma mark Table M - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ - NSInteger row = 3; + NSInteger row = kTopItemNum; if (_myPriMsgs.list) { row += [_myPriMsgs.list count]; } @@ -173,27 +175,29 @@ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ - if (indexPath.row < 3) { + if (indexPath.row < kTopItemNum) { ToMessageCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_ToMessage forIndexPath:indexPath]; - switch (indexPath.row) { - case 0: - cell.type = ToMessageTypeAT; - cell.unreadCount = [_notificationDict objectForKey:kUnReadKey_notification_AT]; - break; - case 1: - cell.type = ToMessageTypeComment; - cell.unreadCount = [_notificationDict objectForKey:kUnReadKey_notification_Comment]; - break; - default: - cell.type = ToMessageTypeSystemNotification; - cell.unreadCount = [_notificationDict objectForKey:kUnReadKey_notification_System]; - break; - } + cell.type = ToMessageTypeAllNotification; + cell.unreadCount = [UnReadManager shareManager].notifications; +// switch (indexPath.row) { +// case 0: +// cell.type = ToMessageTypeAT; +// cell.unreadCount = [_notificationDict objectForKey:kUnReadKey_notification_AT]; +// break; +// case 1: +// cell.type = ToMessageTypeComment; +// cell.unreadCount = [_notificationDict objectForKey:kUnReadKey_notification_Comment]; +// break; +// default: +// cell.type = ToMessageTypeSystemNotification; +// cell.unreadCount = [_notificationDict objectForKey:kUnReadKey_notification_System]; +// break; +// } [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:75 hasSectionLine:NO]; return cell; }else{ ConversationCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_Conversation forIndexPath:indexPath]; - PrivateMessage *msg = [_myPriMsgs.list objectAtIndex:indexPath.row-3]; + PrivateMessage *msg = [_myPriMsgs.list objectAtIndex:indexPath.row-kTopItemNum]; cell.curPriMsg = msg; [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:75 hasSectionLine:NO]; return cell; @@ -202,7 +206,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ CGFloat cellHeight; - if (indexPath.row < 3) { + if (indexPath.row < kTopItemNum) { cellHeight = [ToMessageCell cellHeight]; }else{ cellHeight = [ConversationCell cellHeight]; @@ -212,12 +216,13 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; - if (indexPath.row < 3) { + if (indexPath.row < kTopItemNum) { TipsViewController *vc = [[TipsViewController alloc] init]; - vc.myCodingTips = [CodingTips codingTipsWithType:indexPath.row]; +// vc.myCodingTips = [CodingTips codingTipsWithType:indexPath.row]; + vc.myCodingTips = [CodingTips codingTipsWithType:ToMessageTypeAllNotification]; [self.navigationController pushViewController:vc animated:YES]; }else{ - PrivateMessage *curMsg = [_myPriMsgs.list objectAtIndex:indexPath.row-3]; + PrivateMessage *curMsg = [_myPriMsgs.list objectAtIndex:indexPath.row-kTopItemNum]; ConversationViewController *vc = [[ConversationViewController alloc] init]; User *curFriend = curMsg.friend; @@ -231,14 +236,14 @@ - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButto return @"删除会话"; } - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{ - return (indexPath.row >= 3); + return (indexPath.row >= kTopItemNum); } - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView setEditing:NO animated:YES]; - PrivateMessage *msg = [_myPriMsgs.list objectAtIndex:indexPath.row-3]; + PrivateMessage *msg = [_myPriMsgs.list objectAtIndex:indexPath.row-kTopItemNum]; __weak typeof(self) weakSelf = self; - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:[NSString stringWithFormat:@"这将删除你和 %@ 的所有私信", msg.friend.name] buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:[NSString stringWithFormat:@"这将删除你和 %@ 的所有私信", msg.friend.name] buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf removeConversation:msg inTableView:tableView]; } @@ -253,7 +258,7 @@ - (void)removeConversation:(PrivateMessage *)curMsg inTableView:(UITableView *)t if (data) { [weakSelf.myPriMsgs.list removeObject:data]; [weakSelf.myTableView reloadData]; - [weakSelf.myTableView configBlankPage:EaseBlankPageTypeMessageList hasData:(weakSelf.myPriMsgs.list.count > 0) hasError:(error != nil) offsetY:(3 * [ToMessageCell cellHeight]) reloadButtonBlock:^(id sender) { + [weakSelf.myTableView configBlankPage:EaseBlankPageTypeMessageList hasData:(weakSelf.myPriMsgs.list.count > 0) hasError:(error != nil) offsetY:(kTopItemNum * [ToMessageCell cellHeight]) reloadButtonBlock:^(id sender) { [weakSelf refresh]; }]; } diff --git a/Coding_iOS/Controllers/RootControllers/Project_RootViewController.m b/Coding_iOS/Controllers/RootControllers/Project_RootViewController.m index 67b3ece7e..48ae8110f 100644 --- a/Coding_iOS/Controllers/RootControllers/Project_RootViewController.m +++ b/Coding_iOS/Controllers/RootControllers/Project_RootViewController.m @@ -32,6 +32,433 @@ #import "WebViewController.h" #import "ProjectToChooseListViewController.h" #import "EATerminalViewController.h" +#import "KxMenu.h" + +#ifdef Target_Enterprise + +@interface Project_RootViewController () +@property (strong, nonatomic) NSMutableDictionary *myProjectsDict; +//@property (nonatomic, strong) PopMenu *myPopMenu; +//@property (nonatomic, strong) PopFliterMenu *myFliterMenu; +@property (strong, nonatomic) UIButton *titleBtn; +@property (nonatomic,assign) NSInteger selectNum; //筛选状态 +@end +@implementation Project_RootViewController +#pragma mark TabBar +- (void)tabBarItemClicked{ + [super tabBarItemClicked]; + if (_myCarousel.currentItemView && [_myCarousel.currentItemView isKindOfClass:[ProjectListView class]]) { + ProjectListView *listView = (ProjectListView *)_myCarousel.currentItemView; + [listView tabBarItemClicked]; + } +} + +- (BOOL)isRoot{ + return [self isMemberOfClass:[Project_RootViewController class]]; +} + +- (void)viewDidLoad{ + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.title = @"项目"; + [self configSegmentItems]; + _useNewStyle = TRUE; + _oldSelectedIndex = 0; + _selectNum = 0; + _myProjectsDict = [[NSMutableDictionary alloc] initWithCapacity:_segmentItems.count]; + //添加myCarousel + _myCarousel = ({ + iCarousel *icarousel = [[iCarousel alloc] init]; + icarousel.dataSource = self; + icarousel.delegate = self; + icarousel.decelerationRate = 1.0; + icarousel.scrollSpeed = 1.0; + icarousel.type = iCarouselTypeLinear; + icarousel.pagingEnabled = YES; + icarousel.clipsToBounds = YES; + icarousel.bounceDistance = 0.2; + [self.view addSubview:icarousel]; + [icarousel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; + icarousel; + }); + // __weak typeof(_myCarousel) weakCarousel = _myCarousel; + // //初始化过滤目录 + // _myFliterMenu = [[PopFliterMenu alloc] initWithFrame:CGRectMake(0, 64, kScreen_Width, kScreen_Height - 64) items:nil]; + // __weak typeof(self) weakSelf = self; + // _myFliterMenu.clickBlock = ^(NSInteger pageIndex){ + // [weakSelf mobClickFliterMenuIndex:pageIndex]; + // if (pageIndex==1000) { + // [weakSelf goToProjectSquareVC]; + // }else{ + // [weakCarousel scrollToItemAtIndex:pageIndex animated:NO]; + // weakSelf.selectNum = pageIndex; + // } + // }; + // _myFliterMenu.closeBlock=^(){ + // [weakSelf closeFliter]; + // }; + //初始化弹出菜单 + // NSArray *menuItems = @[ + // [MenuItem itemWithTitle:@"项目" iconName:@"pop_Project" index:0], + // [MenuItem itemWithTitle:@"任务" iconName:@"pop_Task" index:1], + // [MenuItem itemWithTitle:@"私信" iconName:@"pop_Message" index:4], + //// [MenuItem itemWithTitle:@"两步验证" iconName:@"pop_2FA" index:5], + // ]; + // if (!_myPopMenu) { + // _myPopMenu = [[PopMenu alloc] initWithFrame:CGRectMake(0, 64, kScreen_Width, kScreen_Height-64) items:menuItems]; + // _myPopMenu.perRowItemCount = 3; + // _myPopMenu.menuAnimationType = kPopMenuAnimationTypeSina; + // } + // @weakify(self); + // _myPopMenu.didSelectedItemCompletion = ^(MenuItem *selectedItem){ + // @strongify(self); + // if (!selectedItem) return; + // [MobClick event:kUmeng_Event_Request_ActionOfLocal label:[NSString stringWithFormat:@"首页_添加_%@", selectedItem.title]]; + // switch (selectedItem.index) { + // case 0: + // [self goToNewProjectVC]; + // break; + // case 1: + // [self goToNewTaskVC]; + // break; + // case 2: + // [self goToMessageVC]; + // break; + // case 3: + // [self goTo2FA]; + // break; + // default: + // NSLog(@"%@",selectedItem.title); + // break; + // } + // }; + // if ([self isRoot]) { + // [self setupTitleBtn]; + // } + [self setupNavBtn]; + self.icarouselScrollEnabled = NO; + [[StartImagesManager shareManager] handleStartLink];//如果 start_image 有对应的 link 的话,需要进入到相应的 web 页面 + + [self checkToShowLockedTip]; +} + +- (void)checkToShowLockedTip{ + if ([Login curLoginCompany].locked.boolValue) { + [[UIAlertController ea_alertViewWithTitle:@"服务已暂停" message:@"您订购的服务已过期,项目、任务等功能操作与高级权限将会失效。如需正常使用,请前往企业版网站订购。" buttonTitles:nil destructiveTitle:nil cancelTitle:@"知道了" andDidDismissBlock:nil] show]; + } +} + +- (void)viewWillAppear:(BOOL)animated{ + [super viewWillAppear:animated]; + if (_myCarousel) { + ProjectListView *listView = (ProjectListView *)_myCarousel.currentItemView; + if (listView) { + [listView refreshToQueryData]; + } + } + // [_myFliterMenu refreshMenuDate]; +} + +-(void)viewWillDisappear:(BOOL)animated{ + [super viewWillDisappear:animated]; + // [self closeMenu]; + // if (_myFliterMenu.showStatus) { + // [_myFliterMenu dismissMenu]; + // } +} +- (void)viewDidAppear:(BOOL)animated{ + [super viewDidAppear:animated]; + [[UnReadManager shareManager] updateUnRead]; +} + +- (void)mobClickFliterMenuIndex:(NSInteger)index{ + static NSArray *menuList; + if (!menuList) { + menuList = @[@"全部项目", + @"我创建的", + @"我参与的", + @"我关注的", + @"我收藏的", + @"项目广场"]; + } + [MobClick event:kUmeng_Event_Request_ActionOfLocal label:[NSString stringWithFormat:@"首页_筛选_%@", menuList.count > index? menuList[index]: menuList.lastObject]]; +} + +#pragma mark - sub class method +- (void)setIcarouselScrollEnabled:(BOOL)icarouselScrollEnabled{ + _myCarousel.scrollEnabled = icarouselScrollEnabled; +} +- (void)configSegmentItems{ + _segmentItems = @[@"全部项目",@"我创建的", @"我参与的",@"我关注的",@"我收藏的"]; +} +#pragma mark - nav item +- (void)setupNavBtn{ + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"addBtn_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(addItemClicked:)]; +} + +//- (void)setupTitleBtn{ +// if (!_titleBtn) { +// _titleBtn = [UIButton new]; +// [_titleBtn setTitleColor:kColorNavTitle forState:UIControlStateNormal]; +// [_titleBtn.titleLabel setFont:[UIFont systemFontOfSize:kNavTitleFontSize]]; +// [_titleBtn addTarget:self action:@selector(fliterClicked:) forControlEvents:UIControlEventTouchUpInside]; +// self.navigationItem.titleView = _titleBtn; +// [self setTitleBtnStr:@"全部项目"]; +// } +//} + +- (void)setTitleBtnStr:(NSString *)titleStr{ + if (_titleBtn) { + CGFloat titleWidth = [titleStr getWidthWithFont:_titleBtn.titleLabel.font constrainedToSize:CGSizeMake(kScreen_Width, 30)]; + CGFloat imageWidth = 12; + CGFloat btnWidth = titleWidth +imageWidth; + _titleBtn.frame = CGRectMake((kScreen_Width-btnWidth)/2, (44-30)/2, btnWidth, 30); + _titleBtn.titleEdgeInsets = UIEdgeInsetsMake(0, -imageWidth, 0, imageWidth); + _titleBtn.imageEdgeInsets = UIEdgeInsetsMake(0, titleWidth, 0, -titleWidth); + [_titleBtn setTitle:titleStr forState:UIControlStateNormal]; + [_titleBtn setImage:[UIImage imageNamed:@"btn_fliter_down"] forState:UIControlStateNormal]; + } +} + +- (void)setSelectNum:(NSInteger)selectNum{ + _selectNum = selectNum; + [self setTitleBtnStr:_segmentItems[_selectNum]]; +} + +-(void)addItemClicked:(id)sender{ + if ([KxMenu isShowingInView:kKeyWindow]) { + [KxMenu dismissMenu:YES]; + }else{ + [KxMenu setTitleFont:[UIFont systemFontOfSize:14]]; + [KxMenu setTintColor:[UIColor whiteColor]]; + [KxMenu setLineColor:kColorDDD]; + [KxMenu setYOffset:CGRectGetMaxY(self.navigationController.navigationBar.frame)]; + + NSMutableArray *menuItems = [@[ + [KxMenuItem menuItem:@"新项目" image:[UIImage imageNamed:@"quick_menu_icon_project"] target:self action:@selector(goToNewProjectVC)], + [KxMenuItem menuItem:@"新任务" image:[UIImage imageNamed:@"quick_menu_icon_task"] target:self action:@selector(goToNewTaskVC)], + [KxMenuItem menuItem:@"新私信" image:[UIImage imageNamed:@"quick_menu_icon_message"] target:self action:@selector(goToMessageVC)], + [KxMenuItem menuItem:@"两步验证" image:[UIImage imageNamed:@"quick_menu_icon_2fa"] target:self action:@selector(goTo2FA)], + ] mutableCopy]; + [menuItems setValue:kColor222 forKey:@"foreColor"]; + CGRect senderFrame = CGRectMake(kScreen_Width - (kDevice_Is_iPhone6Plus? 30: 26), 5, 0, 0); + [KxMenu showMenuInView:kKeyWindow + fromRect:senderFrame + menuItems:menuItems]; + } + + // [self closeFliter]; + // if (!_myPopMenu.isShowed) { + // [_myPopMenu showMenuAtView:kKeyWindow startPoint:CGPointMake(0, -100) endPoint:CGPointMake(0, -100)]; + // } else{ + // [self closeMenu]; + // } +} + +//-(void)fliterClicked:(id)sender{ +// [self closeMenu]; +// if (_myFliterMenu.showStatus == YES) { +// [_myFliterMenu dismissMenu]; +// }else { +// _myFliterMenu.selectNum = _selectNum >= 3? _selectNum + 1: _selectNum; +// [_myFliterMenu showMenuAtView:kKeyWindow]; +// } +//} +//-(void)closeFliter{ +// if ([_myFliterMenu showStatus]) { +// [_myFliterMenu dismissMenu]; +// } +//} +//-(void)closeMenu{ +// if ([_myPopMenu isShowed]) { +// [_myPopMenu dismissMenu]; +// } +//} + +#pragma mark iCarousel M +- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel{ + return _segmentItems.count; +} +- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view{ + Projects *curPros = [_myProjectsDict objectForKey:[NSNumber numberWithUnsignedInteger:index]]; + if (!curPros) { + curPros = [self projectsWithIndex:index]; + [_myProjectsDict setObject:curPros forKey:[NSNumber numberWithUnsignedInteger:index]]; + } + ProjectListView *listView = (ProjectListView *)view; + if (listView) { + [listView setProjects:curPros]; + }else{ + __weak Project_RootViewController *weakSelf = self; + listView = [[ProjectListView alloc] initWithFrame:carousel.bounds projects:curPros block:^(Project *project) { + [weakSelf goToProject:project]; + DebugLog(@"\n=====%@", project.name); + } tabBarHeight:CGRectGetHeight(self.rdv_tabBarController.tabBar.frame)]; + + listView.clickButtonBlock=^(EaseBlankPageType curType) { + switch (curType) { + case EaseBlankPageTypeProject_ALL: + case EaseBlankPageTypeProject_CREATE: + case EaseBlankPageTypeProject_JOIN: + [weakSelf goToNewProjectVC]; + break; + case EaseBlankPageTypeProject_WATCHED: + case EaseBlankPageTypeProject_STARED: + [weakSelf goToProjectSquareVC]; + break; + default: + break; + } + }; + //使用新系列Cell样式 + listView.useNewStyle = _useNewStyle; + // if ([self isRoot]) {//根视图设置,子类不设置 + // [listView setSearchBlock:^{ + // [weakSelf goToSearchVC]; + // } andScanBlock:^{ + // [weakSelf scanBtnClicked]; + // }]; + // } + } + [listView setSubScrollsToTop:(index == carousel.currentItemIndex)]; + return listView; +} + +- (Projects *)projectsWithIndex:(NSUInteger)index{ + return [Projects projectsWithType:index andUser:nil]; +} + +- (void)carouselDidScroll:(iCarousel *)carousel{ + [self.view endEditing:YES]; + if (_mySegmentControl) { + float offset = carousel.scrollOffset; + if (offset > 0) { + [_mySegmentControl moveIndexWithProgress:offset]; + } + } +} + +- (void)carouselCurrentItemIndexDidChange:(iCarousel *)carousel{ + if (_mySegmentControl) { + _mySegmentControl.currentIndex = carousel.currentItemIndex; + } + if (_oldSelectedIndex != carousel.currentItemIndex) { + _oldSelectedIndex = carousel.currentItemIndex; + ProjectListView *curView = (ProjectListView *)carousel.currentItemView; + [curView refreshToQueryData]; + } + [carousel.visibleItemViews enumerateObjectsUsingBlock:^(UIView *obj, NSUInteger idx, BOOL *stop) { + [obj setSubScrollsToTop:(obj == carousel.currentItemView)]; + }]; +} +#pragma mark VC +- (void)goToNewProjectVC{ + UIStoryboard *newProjectStoryboard = [UIStoryboard storyboardWithName:@"NewProject" bundle:nil]; + UIViewController *newProjectVC = [newProjectStoryboard instantiateViewControllerWithIdentifier:@"NewProjectVC"]; + [self.navigationController pushViewController:newProjectVC animated:YES]; +} +- (void)goToNewTaskVC{ + ProjectToChooseListViewController *chooseVC = [[ProjectToChooseListViewController alloc] init]; + [self.navigationController pushViewController:chooseVC animated:YES]; +} + +- (void)goToNewTweetVC{ + TweetSendViewController *vc = [[TweetSendViewController alloc] init]; + vc.sendNextTweet = ^(Tweet *nextTweet){ + [[Coding_NetAPIManager sharedManager] request_Tweet_DoTweet_WithObj:nextTweet andBlock:^(id data, NSError *error) { + if (data) { + [Tweet deleteSendData];//发送成功后删除草稿 + }else{ + [nextTweet saveSendData];//发送失败,保存草稿 + } + }]; + }; + UINavigationController *nav = [[BaseNavigationController alloc] initWithRootViewController:vc]; + [self.parentViewController presentViewController:nav animated:YES completion:nil]; +} +- (void)goTo2FA{ + OTPListViewController *vc = [OTPListViewController new]; + [self.navigationController pushViewController:vc animated:YES]; +} +- (void)goToProject:(Project *)project{ + NProjectViewController *vc = [[NProjectViewController alloc] init]; + vc.myProject = project; + [self.navigationController pushViewController:vc animated:YES]; +} +- (void)goToAddUserVC{ + AddUserViewController *vc = [[AddUserViewController alloc] init]; + vc.type = AddUserTypeFollow; + [self.navigationController pushViewController:vc animated:YES]; +} +- (void)goToMessageVC{ + UsersViewController *vc = [[UsersViewController alloc] init]; + vc.curUsers = [Users usersWithOwner:[Login curLoginUser] Type:UsersType_CompanyMember]; + [self.navigationController pushViewController:vc animated:YES]; +} +- (void)goToProjectSquareVC{ + ProjectSquareViewController *vc=[ProjectSquareViewController new]; + [self.navigationController pushViewController:vc animated:YES]; +} +-(void)goToSearchVC{ + // [self closeFliter]; + // [self closeMenu]; + SearchViewController *vc=[SearchViewController new]; + BaseNavigationController *searchNav=[[BaseNavigationController alloc]initWithRootViewController:vc]; + [self.navigationController presentViewController:searchNav animated:NO completion:nil]; +} +#pragma mark scan QR-Code +- (void)scanBtnClicked{ + [MobClick event:kUmeng_Event_Request_ActionOfLocal label:@"首页_扫描二维码"]; + ZXScanCodeViewController *vc = [ZXScanCodeViewController new]; + __weak typeof(self) weakSelf = self; + vc.scanResultBlock = ^(ZXScanCodeViewController *vc, NSString *resultStr){ + [weakSelf dealWithScanResult:resultStr ofVC:vc]; + }; + [self.navigationController pushViewController:vc animated:YES]; +} +- (void)dealWithScanResult:(NSString *)resultStr ofVC:(ZXScanCodeViewController *)vc{ + if ([OTPListViewController handleScanResult:resultStr ofVC:vc]) { + return; + } + UIViewController *nextVC = [BaseViewController analyseVCFromLinkStr:resultStr]; + NSURL *URL = [NSURL URLWithString:resultStr]; + if (nextVC) { + [self.navigationController pushViewController:nextVC animated:YES]; + }else if ([[URL host] hasSuffix:@"coding.net"]){ + //网页 + WebViewController *webVc = [WebViewController webVCWithUrlStr:resultStr]; + [self.navigationController pushViewController:webVc animated:YES]; + }else if ([[UIApplication sharedApplication] canOpenURL:URL]){ + [[UIAlertController ea_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"可能存在风险,是否打开此链接?\n「%@」", resultStr] buttonTitles:@[@"打开链接"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { + [[UIApplication sharedApplication] openURL:URL]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self.navigationController popViewControllerAnimated:YES]; + }); + }else{ + [self.navigationController popViewControllerAnimated:YES]; + } + }] show]; + }else if (resultStr.length > 0){ + [[UIAlertController ea_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"已识别此二维码内容为:\n「%@」", resultStr] buttonTitles:@[@"复制链接"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { + [[UIPasteboard generalPasteboard] setString:resultStr]; + } + [self.navigationController popViewControllerAnimated:YES]; + }] show]; + }else{ + [[UIAlertController ea_alertViewWithTitle:@"无效条码" message:@"未检测到条码信息" buttonTitles:@[@"重试"] destructiveTitle:nil cancelTitle:nil andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (![vc isScaning]) { + [vc startScan]; + } + }] show]; + } +} +@end + +#else @interface Project_RootViewController () @property (strong, nonatomic) NSMutableDictionary *myProjectsDict; @@ -143,8 +570,8 @@ - (void)viewDidLoad{ } [self setupNavBtn]; self.icarouselScrollEnabled = NO; -// [[StartImagesManager shareManager] handleStartLink];//如果 start_image 有对应的 link 的话,需要进入到相应的 web 页面 -// [self setupTerminalButton]; + // [[StartImagesManager shareManager] handleStartLink];//如果 start_image 有对应的 link 的话,需要进入到相应的 web 页面 + // [self setupTerminalButton]; } - (void)setupTerminalButton{ @@ -220,13 +647,13 @@ - (void)setupTitleBtn{ [_titleBtn setTitleColor:kColorNavTitle forState:UIControlStateNormal]; [_titleBtn.titleLabel setFont:[UIFont systemFontOfSize:kNavTitleFontSize]]; [_titleBtn addTarget:self action:@selector(fliterClicked:) forControlEvents:UIControlEventTouchUpInside]; + self.navigationItem.titleView = _titleBtn; [self setTitleBtnStr:@"全部项目"]; } - self.navigationItem.titleView = _titleBtn; } - (void)setTitleBtnStr:(NSString *)titleStr{ - if (_titleBtn) { + if (_titleBtn.titleLabel.text.length != titleStr.length) { CGFloat titleWidth = [titleStr getWidthWithFont:_titleBtn.titleLabel.font constrainedToSize:CGSizeMake(kScreen_Width, 30)]; CGFloat imageWidth = 12; CGFloat btnWidth = titleWidth +imageWidth; @@ -235,6 +662,8 @@ - (void)setTitleBtnStr:(NSString *)titleStr{ _titleBtn.imageEdgeInsets = UIEdgeInsetsMake(0, titleWidth, 0, -titleWidth); [_titleBtn setTitle:titleStr forState:UIControlStateNormal]; [_titleBtn setImage:[UIImage imageNamed:@"btn_fliter_down"] forState:UIControlStateNormal]; + }else{ + [_titleBtn setTitle:titleStr forState:UIControlStateNormal]; } } @@ -368,10 +797,11 @@ - (void)goToNewTaskVC{ - (void)goToNewTweetVC{ TweetSendViewController *vc = [[TweetSendViewController alloc] init]; vc.sendNextTweet = ^(Tweet *nextTweet){ - [nextTweet saveSendData];//发送前保存草稿 [[Coding_NetAPIManager sharedManager] request_Tweet_DoTweet_WithObj:nextTweet andBlock:^(id data, NSError *error) { if (data) { [Tweet deleteSendData];//发送成功后删除草稿 + }else{ + [nextTweet saveSendData];//发送失败,保存草稿 } }]; }; @@ -431,11 +861,8 @@ - (void)dealWithScanResult:(NSString *)resultStr ofVC:(ZXScanCodeViewController WebViewController *webVc = [WebViewController webVCWithUrlStr:resultStr]; [self.navigationController pushViewController:webVc animated:YES]; }else if ([[UIApplication sharedApplication] canOpenURL:URL]){ - UIAlertView *alertV = [UIAlertView bk_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"可能存在风险,是否打开此链接?\n「%@」", resultStr]]; - [alertV bk_setCancelButtonWithTitle:@"取消" handler:nil]; - [alertV bk_addButtonWithTitle:@"打开链接" handler:nil]; - [alertV bk_setWillDismissBlock:^(UIAlertView *al, NSInteger index) { - if (index == 1) { + [[UIAlertController ea_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"可能存在风险,是否打开此链接?\n「%@」", resultStr] buttonTitles:@[@"打开链接"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { [[UIApplication sharedApplication] openURL:URL]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.navigationController popViewControllerAnimated:YES]; @@ -443,27 +870,24 @@ - (void)dealWithScanResult:(NSString *)resultStr ofVC:(ZXScanCodeViewController }else{ [self.navigationController popViewControllerAnimated:YES]; } - }]; - [alertV show]; + }] show]; }else if (resultStr.length > 0){ - UIAlertView *alertV = [UIAlertView bk_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"已识别此二维码内容为:\n「%@」", resultStr]]; - [alertV bk_setCancelButtonWithTitle:@"取消" handler:nil]; - [alertV bk_addButtonWithTitle:@"复制链接" handler:nil]; - [alertV bk_setWillDismissBlock:^(UIAlertView *al, NSInteger index) { - if (index == 1) { + [[UIAlertController ea_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"已识别此二维码内容为:\n「%@」", resultStr] buttonTitles:@[@"复制链接"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { [[UIPasteboard generalPasteboard] setString:resultStr]; } [self.navigationController popViewControllerAnimated:YES]; - }]; - [alertV show]; + }] show]; }else{ - UIAlertView *alertV = [UIAlertView bk_alertViewWithTitle:@"无效条码" message:@"未检测到条码信息"]; - [alertV bk_addButtonWithTitle:@"重试" handler:^{ + [[UIAlertController ea_alertViewWithTitle:@"无效条码" message:@"未检测到条码信息" buttonTitles:@[@"重试"] destructiveTitle:nil cancelTitle:nil andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (![vc isScaning]) { [vc startScan]; } - }]; - [alertV show]; + }] show]; } } @end + +#endif + + diff --git a/Coding_iOS/Controllers/RootControllers/RootTabViewController.m b/Coding_iOS/Controllers/RootControllers/RootTabViewController.m index 508bd0cd0..f009159d0 100644 --- a/Coding_iOS/Controllers/RootControllers/RootTabViewController.m +++ b/Coding_iOS/Controllers/RootControllers/RootTabViewController.m @@ -68,12 +68,6 @@ - (void)setupViewControllers { MyTask_RootViewController *mytask = [[MyTask_RootViewController alloc] init]; UINavigationController *nav_mytask = [[BaseNavigationController alloc] initWithRootViewController:mytask]; - RKSwipeBetweenViewControllers *nav_tweet = [RKSwipeBetweenViewControllers newSwipeBetweenViewControllers]; - [nav_tweet.viewControllerArray addObjectsFromArray:@[[Tweet_RootViewController newTweetVCWithType:Tweet_RootViewControllerTypeAll], - [Tweet_RootViewController newTweetVCWithType:Tweet_RootViewControllerTypeFriend], - [Tweet_RootViewController newTweetVCWithType:Tweet_RootViewControllerTypeHot]]]; - nav_tweet.buttonText = @[@"冒泡广场", @"朋友圈", @"热门冒泡"]; - Message_RootViewController *message = [[Message_RootViewController alloc] init]; RAC(message, rdv_tabBarItem.badgeValue) = [RACSignal combineLatest:@[RACObserve([UnReadManager shareManager], messages), RACObserve([UnReadManager shareManager], notifications)] @@ -94,15 +88,32 @@ - (void)setupViewControllers { Me_RootViewController *me = [[Me_RootViewController alloc] init]; UINavigationController *nav_me = [[BaseNavigationController alloc] initWithRootViewController:me]; - [self setViewControllers:@[nav_project, nav_mytask, nav_tweet, nav_message, nav_me]]; + if (kTarget_Enterprise) { + [self setViewControllers:@[nav_project, nav_mytask, nav_message, nav_me]]; + }else{ + RKSwipeBetweenViewControllers *nav_tweet = [RKSwipeBetweenViewControllers newSwipeBetweenViewControllers]; + [nav_tweet.viewControllerArray addObjectsFromArray:@[[Tweet_RootViewController newTweetVCWithType:Tweet_RootViewControllerTypeAll], + [Tweet_RootViewController newTweetVCWithType:Tweet_RootViewControllerTypeFriend], + [Tweet_RootViewController newTweetVCWithType:Tweet_RootViewControllerTypeHot]]]; + nav_tweet.buttonText = @[@"冒泡广场", @"朋友圈", @"热门冒泡"]; + + [self setViewControllers:@[nav_project, nav_mytask, nav_tweet, nav_message, nav_me]]; + } [self customizeTabBarForController]; self.delegate = self; } - (void)customizeTabBarForController { - NSArray *tabBarItemImages = @[@"project", @"task", @"tweet", @"privatemessage", @"me"]; - NSArray *tabBarItemTitles = @[@"项目", @"任务", @"冒泡", @"消息", @"我"]; + NSArray *tabBarItemImages; + NSArray *tabBarItemTitles; + if (kTarget_Enterprise) { + tabBarItemImages = @[@"project", @"task", @"privatemessage", @"me"]; + tabBarItemTitles = @[@"项目", @"任务", @"消息", @"我的"]; + }else{ + tabBarItemImages = @[@"project", @"task", @"tweet", @"privatemessage", @"me"]; + tabBarItemTitles = @[@"项目", @"任务", @"冒泡", @"消息", @"我"]; + } NSInteger index = 0; for (RDVTabBarItem *item in [[self tabBar] items]) { item.titlePositionAdjustment = UIOffsetMake(0, 3); diff --git a/Coding_iOS/Controllers/RootControllers/Tweet_RootViewController.m b/Coding_iOS/Controllers/RootControllers/Tweet_RootViewController.m index f5f3ef149..ecdaea5bf 100755 --- a/Coding_iOS/Controllers/RootControllers/Tweet_RootViewController.m +++ b/Coding_iOS/Controllers/RootControllers/Tweet_RootViewController.m @@ -231,7 +231,6 @@ - (void)sendTweet{ __weak typeof(self) weakSelf = self; TweetSendViewController *vc = [[TweetSendViewController alloc] init]; vc.sendNextTweet = ^(Tweet *nextTweet){ - [nextTweet saveSendData];//发送前保存草稿 [[Coding_NetAPIManager sharedManager] request_Tweet_DoTweet_WithObj:nextTweet andBlock:^(id data, NSError *error) { if (data) { [Tweet deleteSendData];//发送成功后删除草稿 @@ -253,8 +252,9 @@ - (void)sendTweet{ weakSelf.view.blankPageView.clickButtonBlock=^(EaseBlankPageType curType) { [weakSelf sendTweet]; }; + }else{ + [nextTweet saveSendData];//发送失败,保存草稿 } - }]; }; @@ -408,7 +408,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N if ([Login isLoginUserGlobalKey:weakSelf.commentToUser.global_key]) { ESWeakSelf - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { ESStrongSelf if (index == 0 && _self.commentIndex >= 0) { Comment *comment = [_self.commentTweet.comment_list objectAtIndex:_self.commentIndex]; @@ -445,7 +445,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N ESWeakSelf - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { ESStrongSelf if (index == 0) { [_self deleteTweet:_self.deleteTweet outTweetsIndex:_self.deleteTweetsIndex]; diff --git a/Coding_iOS/Controllers/Search/mock_hotTopiclist.geojson b/Coding_iOS/Controllers/Search/mock_hotTopiclist.geojson index 6799c1bde..06702768f 100644 --- a/Coding_iOS/Controllers/Search/mock_hotTopiclist.geojson +++ b/Coding_iOS/Controllers/Search/mock_hotTopiclist.geojson @@ -1 +1 @@ -{"code":0,"data":[{"watched":false,"user_count":52,"hot_tweet":{"id":59630,"owner_id":446,"owner":{"sex":0,"birthday":"7007-01-01","location":"广东 广州","company":"广州大麦","slogan":"学我者生,似我者死","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/826adb47-69d1-4b80-a05e-5303125d2df6.JPG?imageMogr2/auto-orient/format/jpeg/crop/!559x559a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/826adb47-69d1-4b80-a05e-5303125d2df6.JPG?imageMogr2/auto-orient/format/jpeg/crop/!559x559a0a0","created_at":1405501095000,"last_logined_at":1436405182000,"global_key":"james_cai","name":"james_cai","name_pinyin":"","updated_at":1405501095000,"path":"/u/james_cai","status":1,"is_member":0,"id":446,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437026214000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/218\" rel\u003d\"nofollow\"\u003e#码币#\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/smiling_imp.png\" title\u003d\"smiling_imp\"\u003e\u003c/p\u003e","path":"/u/james_cai/pp/59630","activity_id":0,"liked":false,"like_users":[]},"name":"码币","created_at":1433145105000,"id":218,"user_list":[{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-05-26","location":"广东 广州","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0735b8c9-e4f6-49e4-b947-0dfee78e842e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a0a50","gravatar":"https://dn-coding-net-avatar.qbox.me/fbb695ba-7023-47c6-b84b-dd813a0219c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/0735b8c9-e4f6-49e4-b947-0dfee78e842e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a0a50","created_at":1433598571000,"last_logined_at":1436266893000,"global_key":"poorguy","name":"poorguy","name_pinyin":"","updated_at":1433598571000,"path":"/u/poorguy","status":1,"is_member":0,"id":106315,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"江西 南昌","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/45e59eef-7421-4f00-93bb-45c4fd3119f5.png?imageMogr2/auto-orient/format/png/crop/!280x280a0a31","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/45e59eef-7421-4f00-93bb-45c4fd3119f5.png?imageMogr2/auto-orient/format/png/crop/!280x280a0a31","created_at":1405577422000,"last_logined_at":1436511843000,"global_key":"hvsy","name":"苏梦华","name_pinyin":"|smh|sumenghua","updated_at":1405577422000,"path":"/u/hvsy","status":1,"is_member":0,"id":1231,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-07-27","location":"北京 朝阳区","company":"cnepay","slogan":"世界那么大, 我想去看看","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/dedb067ecae8155b87428ac7920dd0ae.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/dedb067ecae8155b87428ac7920dd0ae.jpg","created_at":1405659032000,"last_logined_at":1434873266000,"global_key":"yinheli","name":"yinheli","name_pinyin":"","updated_at":1405659032000,"path":"/u/yinheli","status":1,"is_member":0,"id":1890,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-10-31","location":"江苏 苏州","company":"pinklian","slogan":"Making Love Out of Nothing at All","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","created_at":1413989470000,"last_logined_at":1436850094000,"global_key":"desmond","name":"desmond","name_pinyin":"","updated_at":1413989470000,"path":"/u/desmond","status":1,"is_member":0,"id":36755,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-06-21","location":"江苏 南京","company":"viva tech","slogan":"KEEP SIMPLE","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9081b035-427f-40cb-89f4-8cff6664da6f.jpg?imageMogr2/auto-orient/format/jpeg/crop/!400x400a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9081b035-427f-40cb-89f4-8cff6664da6f.jpg?imageMogr2/auto-orient/format/jpeg/crop/!400x400a0a0","created_at":1406882231000,"last_logined_at":1436504747000,"global_key":"dr2009","name":"dr2009","name_pinyin":"","updated_at":1406882231000,"path":"/u/dr2009","status":1,"is_member":0,"id":5814,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-11-08","location":"广东 广州","company":"sponia","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7cc9d1d9-5ba4-478c-96ae-5ca39e715bfd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!506x506a0a3","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7cc9d1d9-5ba4-478c-96ae-5ca39e715bfd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!506x506a0a3","created_at":1414399181000,"last_logined_at":1436755097000,"global_key":"whisky","name":"whisky","name_pinyin":"","updated_at":1414399181000,"path":"/u/whisky","status":1,"is_member":0,"id":37581,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-04-09","location":"江苏 无锡","company":"南京帆软软件有限公司","slogan":"然而这并没有什么卵用","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/802c48fc-a9c7-43d0-9b08-930767f56b2a.png?imageMogr2/auto-orient/format/png/crop/!512x512a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/e11eca9e-6c35-4ca8-98ef-c433416b3f38.png","lavatar":"https://dn-coding-net-production-static.qbox.me/802c48fc-a9c7-43d0-9b08-930767f56b2a.png?imageMogr2/auto-orient/format/png/crop/!512x512a0a0","created_at":1429069193000,"last_logined_at":1434631207000,"global_key":"huhamhire","name":"huhamhire","name_pinyin":"","updated_at":1429069193000,"path":"/u/huhamhire","status":1,"is_member":0,"id":95452,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1992-01-01","location":"上海 ","company":"携程","slogan":"To be better me","introduction":"","avatar":"/static/fruit_avatar/Fruit-7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/a44a2da5-c3fb-4240-80eb-835b3cedffe2.jpg","lavatar":"/static/fruit_avatar/Fruit-7.png","created_at":1432042116000,"last_logined_at":1436925662000,"global_key":"michel","name":"michel","name_pinyin":"","updated_at":1432042116000,"path":"/u/michel","status":1,"is_member":0,"id":102255,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"2014-07-22","location":"江苏 苏州","company":"","slogan":"冗码一生(13:28)","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a2fbe81e-5f9e-4e55-b09b-87c875c18cd7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1406006889000,"last_logined_at":1437033413000,"global_key":"liuxey","name":"Liuxey","name_pinyin":"","updated_at":1406006889000,"path":"/u/liuxey","status":1,"is_member":0,"id":2530,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":28,"hot_tweet":{"id":59561,"owner_id":35907,"owner":{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012241000,"likes":3,"comments":6,"comment_list":[{"id":133573,"tweet_id":59561,"owner_id":2279,"owner":{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437029897000,"content":"P的一手好图啊"},{"id":133482,"tweet_id":59561,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437022090000,"content":"0.02\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/persevere.png\" title\u003d\"persevere\"\u003e"},{"id":133407,"tweet_id":59561,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437015144000,"content":"你這讓我們還怎麼抱猴子啊…"},{"id":133389,"tweet_id":59561,"owner_id":113646,"owner":{"sex":1,"birthday":"1995-01-01","location":"","company":"","slogan":"把猴子抱回家","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/8a8f4840-a7f6-48d2-9a17-6c46e66eb212.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","created_at":1436779066000,"last_logined_at":1437016596000,"global_key":"mian","name":"豆芽芽","name_pinyin":"|dyy|douyaya","updated_at":1436779066000,"path":"/u/mian","status":1,"is_member":0,"id":113646,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012523000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/songyiwei\" rel\u003d\"nofollow\"\u003e@这个人出现在\u003c/a\u003e 黑我洋葱猴\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"},{"id":133385,"tweet_id":59561,"owner_id":51246,"owner":{"sex":0,"birthday":"1990-01-01","location":"江苏 南京","company":"南京安元科技有限公司","slogan":"好好学习,天天向上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","created_at":1417770252000,"last_logined_at":1437008173000,"global_key":"songyiwei","name":"这个人出现在","name_pinyin":"|zgrcxz|zhegerenchuxianzai","updated_at":1417770252000,"path":"/u/songyiwei","status":1,"is_member":0,"id":51246,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012380000,"content":"这是我第一次这么“讨厌”这个猴子logo"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/141\" rel\u003d\"nofollow\"\u003e#抠一段#\u003c/a\u003e 一个程序员忧心忡忡的去找禅师,他虔诚的跪在禅师面前说:禅师啊禅师,coding最近出了一个活动,只要要在微信上回答对了问题,就可以获得大圣归来的电影票两张,可是我不知道答案啊,你能告诉我吗?问题是 coding的最大特点是什么?”禅师看了一眼面前的程序员并没有说话,从旁边拿出coding的LOGO摆在程序员面前,程序员看了看说道:“我知道了禅师,你的意思是coding最大特点就是LOGO上写的,他是一个高大上的云技术产品?”禅师突然站起来脱掉裤子把屁股对着程序员,然后大叫道:“你这么笨怎么当程序员啊?我的意思是CODING最大的特点是可以上去卖屁股!”\u003cbr\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/8eca012c-a65b-46ef-b07c-c96fdffef515.png\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/8eca012c-a65b-46ef-b07c-c96fdffef515.png\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/itsing/pp/59561","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1990-06-10","location":"深圳","company":"Coding.net","slogan":"\u0026lt;img src\u003d1 onerror\u003dalert(1)\u0026gt;","introduction":"嗯?","avatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","gravatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","lavatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","created_at":1399045331000,"last_logined_at":1437033487000,"global_key":"wzw","name":"wzw","name_pinyin":"","updated_at":1399045331000,"path":"/u/wzw","status":1,"is_member":0,"id":1,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-02-18","location":"广东 江门","company":"袂卓建材搬运有限公司","slogan":"散文式php鲁迅都看不懂","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f4f7314c-c59f-42d4-a9c0-55f098644c79.jpg?imageMogr2/auto-orient/format/jpeg/crop/!251x251a0a25","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f4f7314c-c59f-42d4-a9c0-55f098644c79.jpg?imageMogr2/auto-orient/format/jpeg/crop/!251x251a0a25","created_at":1409455457000,"last_logined_at":1437010518000,"global_key":"zhlhuang","name":"zhlhuang","name_pinyin":"","updated_at":1409455457000,"path":"/u/zhlhuang","status":1,"is_member":0,"id":29746,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-01-01","location":"江苏 南京","company":"南京安元科技有限公司","slogan":"好好学习,天天向上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","created_at":1417770252000,"last_logined_at":1437008173000,"global_key":"songyiwei","name":"这个人出现在","name_pinyin":"|zgrcxz|zhegerenchuxianzai","updated_at":1417770252000,"path":"/u/songyiwei","status":1,"is_member":0,"id":51246,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"抠一段","created_at":1430199383000,"id":141,"user_list":[{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-11-16","location":"","company":"Coding.Net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/66fbd5f0-9a76-44c7-93c9-9e0e6b7afdd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!509x509a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a5ec1d31-c771-4b35-8cd8-ca613b174e83.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/66fbd5f0-9a76-44c7-93c9-9e0e6b7afdd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!509x509a0a0","created_at":1399056643000,"last_logined_at":1437032308000,"global_key":"Michael","name":"Michael","name_pinyin":"","updated_at":1399056643000,"path":"/u/Michael","status":1,"is_member":0,"id":5,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/706eb577-6a88-464d-b635-e759067019d6.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1434507370000,"last_logined_at":1436411863000,"global_key":"jpr1990","name":"jpr1990","name_pinyin":"","updated_at":1434507370000,"path":"/u/jpr1990","status":1,"is_member":0,"id":108268,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"山西 临汾","company":"无","slogan":"没有座右铭","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/3d16e65a-57e1-4cf3-b721-0e7187183eb3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!572x572a0a14","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/3d16e65a-57e1-4cf3-b721-0e7187183eb3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!572x572a0a14","created_at":1412417441000,"last_logined_at":1437039950000,"global_key":"fiy","name":"我是FT","name_pinyin":"|ws|woshi","updated_at":1412417441000,"path":"/u/fiy","status":1,"is_member":0,"id":33957,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":46,"hot_tweet":{"id":59614,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437023678000,"likes":0,"comments":9,"comment_list":[{"id":133682,"tweet_id":59614,"owner_id":78328,"owner":{"sex":0,"birthday":"1989-07-24","location":"吉林 长春","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-15.png","gravatar":"https://dn-coding-net-avatar.qbox.me/94ca25da-4dfa-44f9-8f94-27bb334a8f31.jpg","lavatar":"/static/fruit_avatar/Fruit-15.png","created_at":1422346827000,"last_logined_at":1437022035000,"global_key":"CarlJia","name":"CarlJia","name_pinyin":"","updated_at":1422346827000,"path":"/u/CarlJia","status":1,"is_member":0,"id":78328,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437047025613,"content":"archlinux"},{"id":133652,"tweet_id":59614,"owner_id":37841,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"求知若饥,虚心若愚。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9dc4bddc-040d-478a-bb31-c7c0b08a029e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9dc4bddc-040d-478a-bb31-c7c0b08a029e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1414495800000,"last_logined_at":1436875094000,"global_key":"JZQT","name":"JZQT","name_pinyin":"","updated_at":1414495800000,"path":"/u/JZQT","status":1,"is_member":0,"id":37841,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437040624000,"content":"deepin"},{"id":133550,"tweet_id":59614,"owner_id":2279,"owner":{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437029214000,"content":"桌面就用乌班图ubuntu,服务器就用centos"},{"id":133537,"tweet_id":59614,"owner_id":89816,"owner":{"sex":0,"birthday":"1989-12-14","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1a19d540-c936-415d-a837-6061378d94dc.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!128x128a16a57","gravatar":"https://dn-coding-net-avatar.qbox.me/ce7795e8-c3cd-460f-b08d-d2f74d3eb835.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/1a19d540-c936-415d-a837-6061378d94dc.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!128x128a16a57","created_at":1427773948000,"last_logined_at":1437015872000,"global_key":"zhgxun","name":"zhgxun","name_pinyin":"","updated_at":1427773948000,"path":"/u/zhgxun","status":1,"is_member":0,"id":89816,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437028404000,"content":"ubuntu我一直用,就是软件比较好装一些,会出问题,上次突然一直停留在登录界面,图形界面进不去,命令行可以使用,后来直接重装。重装成本太大,环境安装,开发工具,各种,折腾不住,年底准备穷,买苹果系统应该更稳定一些。"},{"id":133531,"tweet_id":59614,"owner_id":17884,"owner":{"sex":0,"birthday":"2014-08-01","location":"江苏 无锡","company":"同程旅游","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-2.png","gravatar":"https://dn-coding-net-avatar.qbox.me/5dc4795c-bbdf-48f2-815f-95cae63b101e.jpg","lavatar":"/static/fruit_avatar/Fruit-2.png","created_at":1408692750000,"last_logined_at":1437016730000,"global_key":"renzhaoxu","name":"renzhao","name_pinyin":"","updated_at":1408692750000,"path":"/u/renzhaoxu","status":1,"is_member":0,"id":17884,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437027830000,"content":"deepin"}],"device":"OPPO Find7","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/200\" rel\u003d\"nofollow\"\u003e#万能的冒泡#\u003c/a\u003e 个人使用Linux,哪个版本较好?\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/100.png\" title\u003d\"100\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/100.png\" title\u003d\"100\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/100.png\" title\u003d\"100\"\u003e\u003c/p\u003e","path":"/u/TXisfine/pp/59614","activity_id":0,"liked":false,"like_users":[]},"name":"万能的冒泡","created_at":1432201941000,"id":200,"user_list":[{"sex":0,"birthday":"1995-08-05","location":"吉林 长春","company":"无","slogan":"呵呵","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35e124f2-f601-436c-843b-074b146a2e3d.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/c2267416-299b-493f-a4d8-0b6346ad03ea.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/35e124f2-f601-436c-843b-074b146a2e3d.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1419831794000,"last_logined_at":1434873688000,"global_key":"f12998765","name":"F_xi","name_pinyin":"","updated_at":1419831794000,"path":"/u/f12998765","status":1,"is_member":0,"id":63693,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 徐汇区","company":"","slogan":"不翻墙搜Google www.886404.org","introduction":"","avatar":"/static/fruit_avatar/Fruit-19.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-19.png","created_at":1408153237000,"last_logined_at":1434985959000,"global_key":"fising","name":"fising","name_pinyin":"","updated_at":1408153237000,"path":"/u/fising","status":1,"is_member":0,"id":11977,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1989-08-17","location":"广东深圳","company":"官方打杂妹","slogan":"我就是潘潘潘潘潘哈哈","introduction":"恩","avatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","created_at":1399839374000,"last_logined_at":1436491923000,"global_key":"panpan","name":"潘潘","name_pinyin":"|pp|panpan","updated_at":1399839374000,"path":"/u/panpan","status":1,"is_member":0,"id":15,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1992-01-01","location":"上海 ","company":"携程","slogan":"To be better me","introduction":"","avatar":"/static/fruit_avatar/Fruit-7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/a44a2da5-c3fb-4240-80eb-835b3cedffe2.jpg","lavatar":"/static/fruit_avatar/Fruit-7.png","created_at":1432042116000,"last_logined_at":1436925662000,"global_key":"michel","name":"michel","name_pinyin":"","updated_at":1432042116000,"path":"/u/michel","status":1,"is_member":0,"id":102255,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"河南 济源","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d06af4ba2ffae3614a4bcad606a29c09.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d06af4ba2ffae3614a4bcad606a29c09.jpg","created_at":1405607752000,"last_logined_at":1436944144000,"global_key":"liu","name":"liu","name_pinyin":"","updated_at":1405607752000,"path":"/u/liu","status":1,"is_member":0,"id":1607,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-02-15","location":"上海 杨浦区","company":"dsoon","slogan":"哈哈哈哈^_^","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/615d587c-cef6-4155-af09-9e921291eb0d.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/3663ae0e-548b-4d8f-a841-122873c6a21f.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/615d587c-cef6-4155-af09-9e921291eb0d.jpg","created_at":1430890572000,"last_logined_at":1437007727000,"global_key":"wqc","name":"王全才","name_pinyin":"|wqc|wangquancai","updated_at":1430890572000,"path":"/u/wqc","status":1,"is_member":0,"id":99742,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"天津 ","company":"科技","slogan":"All for one,one for all","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8b5fa550-db3d-43f9-a45c-bdaca2dcc491.png?imageMogr2/auto-orient/format/jpg/crop/!484x484a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8b5fa550-db3d-43f9-a45c-bdaca2dcc491.png?imageMogr2/auto-orient/format/jpg/crop/!484x484a8a0","created_at":1414376815000,"last_logined_at":1436167058000,"global_key":"kevinlin","name":"kevinlin","name_pinyin":"","updated_at":1414376815000,"path":"/u/kevinlin","status":1,"is_member":0,"id":37474,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1987-06-09","location":"北京 海淀区","company":"10020","slogan":"个性签名","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/48f2b078-9e3b-4d00-bea5-ecc9d2a2505c.png","gravatar":"https://dn-coding-net-avatar.qbox.me/239c0825-71cf-4d1d-89f6-e7f22ff8db95.png","lavatar":"https://dn-coding-net-avatar.qbox.me/48f2b078-9e3b-4d00-bea5-ecc9d2a2505c.png","created_at":1430019086000,"last_logined_at":1434731377000,"global_key":"z__","name":"_z_","name_pinyin":"","updated_at":1430019086000,"path":"/u/z__","status":1,"is_member":0,"id":97932,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":8,"hot_tweet":{"id":59554,"owner_id":37549,"owner":{"sex":0,"birthday":"1991-01-01","location":"河南 平顶山","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","gravatar":"https://dn-coding-net-avatar.qbox.me/82fd233b-6fc2-4537-8197-69f5b9fc2391.png","lavatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","created_at":1414393497000,"last_logined_at":1435737068000,"global_key":"binsee","name":"杉木","name_pinyin":"|sm|shanmu","updated_at":1414393497000,"path":"/u/binsee","status":1,"is_member":0,"id":37549,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010073000,"likes":1,"comments":5,"comment_list":[{"id":133490,"tweet_id":59554,"owner_id":37549,"owner":{"sex":0,"birthday":"1991-01-01","location":"河南 平顶山","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","gravatar":"https://dn-coding-net-avatar.qbox.me/82fd233b-6fc2-4537-8197-69f5b9fc2391.png","lavatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","created_at":1414393497000,"last_logined_at":1435737068000,"global_key":"binsee","name":"杉木","name_pinyin":"|sm|shanmu","updated_at":1414393497000,"path":"/u/binsee","status":1,"is_member":0,"id":37549,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437022391000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/jaysun\" rel\u003d\"nofollow\"\u003e@卡基猫\u003c/a\u003e , \u003ca class\u003d\"at-someone\" href\u003d\"/u/liuxey\" rel\u003d\"nofollow\"\u003e@Liuxey\u003c/a\u003e 你们懂的好多..."},{"id":133374,"tweet_id":59554,"owner_id":2530,"owner":{"sex":2,"birthday":"2014-07-22","location":"江苏 苏州","company":"","slogan":"冗码一生(13:28)","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a2fbe81e-5f9e-4e55-b09b-87c875c18cd7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1406006889000,"last_logined_at":1437033413000,"global_key":"liuxey","name":"Liuxey","name_pinyin":"","updated_at":1406006889000,"path":"/u/liuxey","status":1,"is_member":0,"id":2530,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437011075000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/jaysun\" rel\u003d\"nofollow\"\u003e@卡基猫\u003c/a\u003e 我的意思就是这个。。。"},{"id":133370,"tweet_id":59554,"owner_id":2455,"owner":{"sex":2,"birthday":"1990-05-04","location":"北京","company":"永希","slogan":"https://a-hope.cn","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","created_at":1405998676000,"last_logined_at":1436187451000,"global_key":"jaysun","name":"卡基猫","name_pinyin":"|kjm|kajimao","updated_at":1405998676000,"path":"/u/jaysun","status":1,"is_member":0,"id":2455,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010921000,"content":"但流血不是七天啊"},{"id":133369,"tweet_id":59554,"owner_id":2455,"owner":{"sex":2,"birthday":"1990-05-04","location":"北京","company":"永希","slogan":"https://a-hope.cn","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","created_at":1405998676000,"last_logined_at":1436187451000,"global_key":"jaysun","name":"卡基猫","name_pinyin":"|kjm|kajimao","updated_at":1405998676000,"path":"/u/jaysun","status":1,"is_member":0,"id":2455,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010910000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/liuxey\" rel\u003d\"nofollow\"\u003e@Liuxey\u003c/a\u003e 经期一般是七天。。"},{"id":133368,"tweet_id":59554,"owner_id":2530,"owner":{"sex":2,"birthday":"2014-07-22","location":"江苏 苏州","company":"","slogan":"冗码一生(13:28)","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a2fbe81e-5f9e-4e55-b09b-87c875c18cd7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1406006889000,"last_logined_at":1437033413000,"global_key":"liuxey","name":"Liuxey","name_pinyin":"","updated_at":1406006889000,"path":"/u/liuxey","status":1,"is_member":0,"id":2530,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010779000,"content":"为什么要七天。。。"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/312\" rel\u003d\"nofollow\"\u003e#每日一乐#\u003c/a\u003e   闺蜜说:“这个世界上估计只有男人才会得晕血症吧!”\u003cbr\u003e\u003cbr\u003e  我问:“为什么呢?”\u003cbr\u003e\u003cbr\u003e  闺蜜说:“要是女人得晕血症,一个月要晕7天呢!”\u003c/p\u003e","path":"/u/binsee/pp/59554","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1985-01-01","location":"广东 广州","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ed58d4ae-e17e-48fd-9f49-eeba3b26589a.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","created_at":1430075407000,"last_logined_at":1436791946000,"global_key":"bumy","name":"riverlong","name_pinyin":"","updated_at":1430075407000,"path":"/u/bumy","status":1,"is_member":0,"id":98041,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"每日一乐","created_at":1434856286000,"id":312,"user_list":[{"sex":1,"birthday":"1993-08-21","location":"四川 成都","company":"成都方米科技有限公司","slogan":"我是一枚","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9155a097-f4d8-4ee3-91dc-2df92b0954d2.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/d10efda1-73e9-418e-89e2-e0de56f029e7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/9155a097-f4d8-4ee3-91dc-2df92b0954d2.jpg","created_at":1430990335000,"last_logined_at":1436439646000,"global_key":"abc-com","name":"DaisyYang","name_pinyin":"","updated_at":1430990335000,"path":"/u/abc-com","status":1,"is_member":0,"id":100051,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/706eb577-6a88-464d-b635-e759067019d6.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1434507370000,"last_logined_at":1436411863000,"global_key":"jpr1990","name":"jpr1990","name_pinyin":"","updated_at":1434507370000,"path":"/u/jpr1990","status":1,"is_member":0,"id":108268,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-02-28","location":"北京 ","company":"36Kr","slogan":"如果爱我就不要离开我~","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/65b08186-949e-4ece-9fb8-64e640ca0115.png?imageMogr2/auto-orient/format/png/crop/!155x155a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/b902ad6d-e908-4487-b0b7-48795a95d177.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/65b08186-949e-4ece-9fb8-64e640ca0115.png?imageMogr2/auto-orient/format/png/crop/!155x155a0a0","created_at":1431348077000,"last_logined_at":1437029991000,"global_key":"36kr","name":"36kr","name_pinyin":"","updated_at":1431348077000,"path":"/u/36kr","status":1,"is_member":0,"id":100761,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1997-01-28","location":"广东 梅州","company":"盛夏游戏工作室","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/583713de-9669-4f78-85b4-75ee3a7c28ad.jpg?imageMogr2/auto-orient/format/jpeg/crop/!240x240a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/0c96e409-da6b-4a3e-8e05-8a54e14f4ae4.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/583713de-9669-4f78-85b4-75ee3a7c28ad.jpg?imageMogr2/auto-orient/format/jpeg/crop/!240x240a0a0","created_at":1428286874000,"last_logined_at":1436234486000,"global_key":"951203598","name":"951203598","name_pinyin":"","updated_at":1428286874000,"path":"/u/951203598","status":1,"is_member":0,"id":92390,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-10-31","location":"江苏 苏州","company":"pinklian","slogan":"Making Love Out of Nothing at All","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","created_at":1413989470000,"last_logined_at":1436850094000,"global_key":"desmond","name":"desmond","name_pinyin":"","updated_at":1413989470000,"path":"/u/desmond","status":1,"is_member":0,"id":36755,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1900-01-19","location":"安徽 六安","company":"上海米途信息科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b42a5fd1-e37e-402a-9a51-dda8d7805035.jpg?imageMogr2/auto-orient/format/jpeg/crop/!390x390a10a10","gravatar":"https://dn-coding-net-avatar.qbox.me/d83bb38d-537a-450d-a219-9633b514bbbf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b42a5fd1-e37e-402a-9a51-dda8d7805035.jpg?imageMogr2/auto-orient/format/jpeg/crop/!390x390a10a10","created_at":1432003073000,"last_logined_at":1436783776000,"global_key":"aakng","name":"aakng","name_pinyin":"","updated_at":1432003073000,"path":"/u/aakng","status":1,"is_member":0,"id":102068,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-01-01","location":"河南 平顶山","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","gravatar":"https://dn-coding-net-avatar.qbox.me/82fd233b-6fc2-4537-8197-69f5b9fc2391.png","lavatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","created_at":1414393497000,"last_logined_at":1435737068000,"global_key":"binsee","name":"杉木","name_pinyin":"|sm|shanmu","updated_at":1414393497000,"path":"/u/binsee","status":1,"is_member":0,"id":37549,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1995-07-24","location":"四川 成都","company":"打杂集团创始人兼首席执行官兼董事长","slogan":"从众是平庸的开始","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7e648364-e13b-4d46-9cb4-cfdcec893d38.jpg?imageMogr2/auto-orient/format/jpeg/crop/!281x281a123a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7e648364-e13b-4d46-9cb4-cfdcec893d38.jpg?imageMogr2/auto-orient/format/jpeg/crop/!281x281a123a0","created_at":1417079181000,"last_logined_at":1437009978000,"global_key":"tian_q","name":"一花一叶是菩提","name_pinyin":"|yhyyspt|yihuayiyeshiputi","updated_at":1417079181000,"path":"/u/tian_q","status":1,"is_member":0,"id":48651,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":30,"hot_tweet":{"id":59550,"owner_id":42283,"owner":{"sex":0,"birthday":"1992-04-26","location":"广东 深圳","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","created_at":1415842099000,"last_logined_at":1436967252000,"global_key":"cuminlo","name":"cuminlo","name_pinyin":"","updated_at":1415842099000,"path":"/u/cuminlo","status":1,"is_member":0,"id":42283,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437009277000,"likes":0,"comments":3,"comment_list":[{"id":133383,"tweet_id":59550,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012115000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/cuminlo\" rel\u003d\"nofollow\"\u003e@cuminlo\u003c/a\u003e 是水泡没有了,有质量的冒泡还是有推荐得码币的"},{"id":133379,"tweet_id":59550,"owner_id":42283,"owner":{"sex":0,"birthday":"1992-04-26","location":"广东 深圳","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","created_at":1415842099000,"last_logined_at":1436967252000,"global_key":"cuminlo","name":"cuminlo","name_pinyin":"","updated_at":1415842099000,"path":"/u/cuminlo","status":1,"is_member":0,"id":42283,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437011795000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 被你一说发现了。 冒泡没有了么?"},{"id":133360,"tweet_id":59550,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437009930000,"content":"难道没发现现在水泡没码币了么"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/288\" rel\u003d\"nofollow\"\u003e#为了码币#\u003c/a\u003e ma bi\u003c/p\u003e","path":"/u/cuminlo/pp/59550","activity_id":0,"liked":false,"like_users":[]},"name":"为了码币","created_at":1434204235000,"id":288,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"不coding非码农","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b800825d17736051cc68dd6a5343f3ce.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b800825d17736051cc68dd6a5343f3ce.png","created_at":1408324753000,"last_logined_at":1436068674000,"global_key":"zybupt","name":"zybupt","name_pinyin":"","updated_at":1408324753000,"path":"/u/zybupt","status":1,"is_member":0,"id":12620,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-6.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-6.png","created_at":1408006885000,"last_logined_at":1436780464000,"global_key":"Mr_right","name":"Mr_right","name_pinyin":"","updated_at":1408006885000,"path":"/u/Mr_right","status":1,"is_member":0,"id":10208,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-11-09","location":"北京 海淀区","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-1.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-1.png","created_at":1411703062000,"last_logined_at":1436778015000,"global_key":"darren_wang","name":"王伟","name_pinyin":"|wangwei|ww","updated_at":1411703062000,"path":"/u/darren_wang","status":1,"is_member":0,"id":33094,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-11-19","location":"","company":"","slogan":"没事瞎折腾","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"https://dn-coding-net-avatar.qbox.me/1c6b907a-ad1b-4c85-b3cb-f8e7338d9873.jpg","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1427522739000,"last_logined_at":1435660771000,"global_key":"Kepp","name":"Kepp","name_pinyin":"","updated_at":1427522739000,"path":"/u/Kepp","status":1,"is_member":0,"id":89067,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-11-05","location":"安徽 合肥","company":"中擎","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-8.png","gravatar":"https://dn-coding-net-avatar.qbox.me/2c6c1af6-e8bd-4f26-9987-2c76d66cb94d.jpg","lavatar":"/static/fruit_avatar/Fruit-8.png","created_at":1433906667000,"last_logined_at":1435224039000,"global_key":"newley1105","name":"newley1105","name_pinyin":"","updated_at":1433906667000,"path":"/u/newley1105","status":1,"is_member":0,"id":107032,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 徐汇区","company":"","slogan":"不翻墙搜Google www.886404.org","introduction":"","avatar":"/static/fruit_avatar/Fruit-19.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-19.png","created_at":1408153237000,"last_logined_at":1434985959000,"global_key":"fising","name":"fising","name_pinyin":"","updated_at":1408153237000,"path":"/u/fising","status":1,"is_member":0,"id":11977,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1999-08-18","location":"天津 西青区","company":"打杂","slogan":"打杂","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ae033658-9214-49b5-97c4-ed5af842be07.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ac1fd523-418b-4cff-a0f8-bcf5f5c31784.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ae033658-9214-49b5-97c4-ed5af842be07.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1423120668000,"last_logined_at":1437049106313,"global_key":"longsichao","name":"隆斯朝","name_pinyin":"|lsc|longsichao","updated_at":1423120668000,"path":"/u/longsichao","status":1,"is_member":0,"id":79835,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-04-30","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/3ff266cd-f806-41dc-bb32-884d4166e5f6.jpg?imageMogr2/auto-orient/format/jpeg/crop/!358x358a160a6","gravatar":"https://dn-coding-net-avatar.qbox.me/4ba3bc8f-351b-46fc-8fa7-88412f49725d.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/3ff266cd-f806-41dc-bb32-884d4166e5f6.jpg?imageMogr2/auto-orient/format/jpeg/crop/!358x358a160a6","created_at":1433751124000,"last_logined_at":1436860265000,"global_key":"Miloer","name":"Miloer","name_pinyin":"","updated_at":1433751124000,"path":"/u/Miloer","status":1,"is_member":0,"id":106695,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1999-01-01","location":"山东 淄博","company":"在校学生","slogan":"Nothing is absolute.","introduction":"","avatar":"/static/fruit_avatar/Fruit-1.png","gravatar":"https://dn-coding-net-avatar.qbox.me/2110b6a2-f244-47c4-8b97-8f5fc3ebe481.jpg","lavatar":"/static/fruit_avatar/Fruit-1.png","created_at":1424637774000,"last_logined_at":1435598200000,"global_key":"ephoton","name":"Apriky","name_pinyin":"","updated_at":1424637774000,"path":"/u/ephoton","status":1,"is_member":0,"id":81669,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":25,"hot_tweet":{"id":59643,"owner_id":79236,"owner":{"sex":0,"birthday":"1985-01-01","location":"山东 临沂","company":"临沂宁可网络","slogan":"有我更精彩","introduction":"","avatar":"/static/fruit_avatar/Fruit-15.png","gravatar":"https://dn-coding-net-avatar.qbox.me/81e0f2cd-dba8-47e7-97c3-7cf728cdf184.jpg","lavatar":"/static/fruit_avatar/Fruit-15.png","created_at":1422840787000,"last_logined_at":1435983829000,"global_key":"lidw","name":"lidw","name_pinyin":"","updated_at":1422840787000,"path":"/u/lidw","status":1,"is_member":0,"id":79236,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437028776000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/391\" rel\u003d\"nofollow\"\u003e#来点音乐#\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/sleepy.png\" title\u003d\"sleepy\"\u003e\u003c/p\u003e","path":"/u/lidw/pp/59643","activity_id":0,"liked":false,"like_users":[]},"name":"来点音乐","created_at":1436317386000,"id":391,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"四川 成都","company":"汇通天下","slogan":"用穿越春夏秋冬的坚持,去创造和享受美好的事物","introduction":"","avatar":"/static/fruit_avatar/Fruit-10.png","gravatar":"https://dn-coding-net-avatar.qbox.me/d909aa07-bf14-4d6e-be99-966e1a6e994d.jpg","lavatar":"/static/fruit_avatar/Fruit-10.png","created_at":1422500345000,"last_logined_at":1436867508000,"global_key":"wyqbailey","name":"wyqbailey","name_pinyin":"","updated_at":1422500345000,"path":"/u/wyqbailey","status":1,"is_member":0,"id":78678,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"广东 深圳","company":"Coding.net","slogan":"大圣赐我火眼金睛发现一切BUG 。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/5c1769a9-9acd-47c5-963b-29a933d910f3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","created_at":1433735819000,"last_logined_at":1437046822137,"global_key":"zhct","name":"zhct","name_pinyin":"","updated_at":1433735819000,"path":"/u/zhct","status":1,"is_member":0,"id":106621,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-04-24","location":"河北 廊坊","company":"微度网络科技","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/c7f4d93144536315c0c5d3e2f41502ee.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/c7f4d93144536315c0c5d3e2f41502ee.jpg","created_at":1406170973000,"last_logined_at":1436568771000,"global_key":"widuu","name":"widuu","name_pinyin":"","updated_at":1406170973000,"path":"/u/widuu","status":1,"is_member":0,"id":3405,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-07-28","location":"江苏 常州","company":"风豪科技","slogan":"挥舞着大宝剑的屠龙战士","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b1b923bf-ea48-473f-9907-e76910b088a7.png?imageMogr2/auto-orient/format/png/crop/!476x476a307a18","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b1b923bf-ea48-473f-9907-e76910b088a7.png?imageMogr2/auto-orient/format/png/crop/!476x476a307a18","created_at":1415925645000,"last_logined_at":1436694267000,"global_key":"sevenbanana","name":"sevenbanana","name_pinyin":"","updated_at":1415925645000,"path":"/u/sevenbanana","status":1,"is_member":0,"id":43183,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-11-20","location":"山东 淄博","company":"","slogan":"微笑待人,心中却操翻全世界。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/505374ef-5edf-4db1-b62f-bfd33256ce22.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a1a1","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/505374ef-5edf-4db1-b62f-bfd33256ce22.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a1a1","created_at":1407745110000,"last_logined_at":1437031181000,"global_key":"pangzhen","name":"庞震","name_pinyin":"|pz|pangzhen","updated_at":1407745110000,"path":"/u/pangzhen","status":1,"is_member":0,"id":8459,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-05-11","location":"四川 成都","company":"一袋","slogan":"everything will be ok","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ebe778ec-db00-4304-9675-31f422118ae9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!567x567a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/40f2bc16-26e4-439a-b6f4-d2704975bac8.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ebe778ec-db00-4304-9675-31f422118ae9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!567x567a0a0","created_at":1409212210000,"last_logined_at":1436620909000,"global_key":"imzhi","name":"imzhi","name_pinyin":"","updated_at":1409212210000,"path":"/u/imzhi","status":1,"is_member":0,"id":25949,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-5.png","gravatar":"https://dn-coding-net-avatar.qbox.me/8c4116e9-17b4-40c4-a291-589c59b70e21.jpg","lavatar":"/static/fruit_avatar/Fruit-5.png","created_at":1426649728000,"last_logined_at":1436665474000,"global_key":"JUN1991","name":"JUN1991","name_pinyin":"","updated_at":1426649728000,"path":"/u/JUN1991","status":1,"is_member":0,"id":85691,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-4.png","gravatar":"https://dn-coding-net-avatar.qbox.me/ad51f196-9407-4676-9015-b48c2cb931a1.jpg","lavatar":"/static/fruit_avatar/Fruit-4.png","created_at":1436257583000,"last_logined_at":1436495431000,"global_key":"wangrr","name":"wangrr","name_pinyin":"","updated_at":1436257583000,"path":"/u/wangrr","status":1,"is_member":0,"id":112206,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":27,"hot_tweet":{"id":59677,"owner_id":95080,"owner":{"sex":0,"birthday":"2015-03-13","location":"四川 成都","company":"西南交通大学","slogan":"all for one\u0026one for all","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/13fbf842-10d1-422b-84b5-f010b35a8320.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/13fbf842-10d1-422b-84b5-f010b35a8320.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/13fbf842-10d1-422b-84b5-f010b35a8320.jpg","created_at":1428937098000,"last_logined_at":1437036414000,"global_key":"leov","name":"leov","name_pinyin":"","updated_at":1428937098000,"path":"/u/leov","status":1,"is_member":0,"id":95080,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437036538000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/383\" rel\u003d\"nofollow\"\u003e#码市#\u003c/a\u003e coding的状态中\u003c/p\u003e","path":"/u/leov/pp/59677","activity_id":0,"liked":false,"like_users":[]},"name":"码市","created_at":1436168268000,"id":383,"user_list":[{"sex":1,"birthday":"1992-08-18","location":"四川 成都","company":"伯德梦想","slogan":"什么事慢慢来,不要催。","introduction":"","avatar":"/static/fruit_avatar/Fruit-10.png","gravatar":"https://dn-coding-net-avatar.qbox.me/fbf8911e-a297-4aff-9372-1cc85bc81a6f.jpg","lavatar":"/static/fruit_avatar/Fruit-10.png","created_at":1428544838000,"last_logined_at":1436083491000,"global_key":"zhaoxiaoling","name":"zhaoxiaoling","name_pinyin":"","updated_at":1428544838000,"path":"/u/zhaoxiaoling","status":1,"is_member":0,"id":93599,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-12-07","location":"广东 广州","company":"在路上","slogan":"你猜","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","created_at":1412759505000,"last_logined_at":1437012838000,"global_key":"seekwe","name":"seekwe","name_pinyin":"","updated_at":1412759505000,"path":"/u/seekwe","status":1,"is_member":0,"id":34258,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-01-01","location":"广东 深圳","company":"平安科技","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/f0ecaa35-cd7a-4633-8aaa-f10847ed1943.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1435233051000,"last_logined_at":1436420838000,"global_key":"jasondu","name":"jasondu","name_pinyin":"","updated_at":1435233051000,"path":"/u/jasondu","status":1,"is_member":0,"id":109725,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 浦东新区","company":"Hi Team","slogan":"我的代码我做主","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/3ffb4c23-c211-4d07-9021-a9f9bb5ddcef.PNG?imageMogr2/auto-orient/format/png/crop/!387x387a28a5","gravatar":"https://dn-coding-net-avatar.qbox.me/7507595b-7698-4b82-9c1c-30e424e81215.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/3ffb4c23-c211-4d07-9021-a9f9bb5ddcef.PNG?imageMogr2/auto-orient/format/png/crop/!387x387a28a5","created_at":1423468244000,"last_logined_at":1436939408000,"global_key":"peterjc","name":"peterjc","name_pinyin":"","updated_at":1423468244000,"path":"/u/peterjc","status":1,"is_member":0,"id":80427,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-5.png","gravatar":"https://dn-coding-net-avatar.qbox.me/8c4116e9-17b4-40c4-a291-589c59b70e21.jpg","lavatar":"/static/fruit_avatar/Fruit-5.png","created_at":1426649728000,"last_logined_at":1436665474000,"global_key":"JUN1991","name":"JUN1991","name_pinyin":"","updated_at":1426649728000,"path":"/u/JUN1991","status":1,"is_member":0,"id":85691,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-10-06","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"https://dn-coding-net-avatar.qbox.me/2e57547e-c365-4c32-84cb-69591a24cc62.jpg","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1416285401000,"last_logined_at":1436345301000,"global_key":"zhhw9210","name":"沙壤土","name_pinyin":"|srt|sharangtu","updated_at":1416285401000,"path":"/u/zhhw9210","status":1,"is_member":0,"id":45375,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-04-26","location":"广东 深圳","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","created_at":1415842099000,"last_logined_at":1436967252000,"global_key":"cuminlo","name":"cuminlo","name_pinyin":"","updated_at":1415842099000,"path":"/u/cuminlo","status":1,"is_member":0,"id":42283,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1989-08-17","location":"广东深圳","company":"官方打杂妹","slogan":"我就是潘潘潘潘潘哈哈","introduction":"恩","avatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","created_at":1399839374000,"last_logined_at":1436491923000,"global_key":"panpan","name":"潘潘","name_pinyin":"|pp|panpan","updated_at":1399839374000,"path":"/u/panpan","status":1,"is_member":0,"id":15,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":6,"hot_tweet":{"id":59501,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436976162000,"likes":0,"comments":1,"comment_list":[{"id":133270,"tweet_id":59501,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436976327000,"content":"圖過不來…一會兒補上"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e綠皮車今非昔比,這節綠皮車不僅是臥鋪,還是軟臥,而且還是高級軟臥!一共八個包廂,每個包廂兩張床,裡面有沙發和衛生間,床腳有個顯示器。 \u003ca class\u003d\"topic\" href\u003d\"/pp/topic/24\" rel\u003d\"nofollow\"\u003e#coding #\u003c/a\u003e 行 \u003ca href\u003d\"http://t.cn/RLtHcFo\" target\u003d\"_blank\" class\u003d\" auto-link\" rel\u003d\"nofollow\"\u003ehttp://t.cn/RLtHcFo\u003c/a\u003e\u003c/p\u003e","path":"/u/fwolf/pp/59501","activity_id":0,"liked":false,"like_users":[]},"name":"coding","created_at":1429625299000,"id":24,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"","company":"sdut","slogan":"sdut","introduction":"","avatar":"/static/fruit_avatar/Fruit-20.png","gravatar":"https://dn-coding-net-avatar.qbox.me/0f58a707-578a-43c8-a35c-d21c14944d94.jpg","lavatar":"/static/fruit_avatar/Fruit-20.png","created_at":1433674552000,"last_logined_at":1436841045000,"global_key":"zhuna","name":"zhuna","name_pinyin":"","updated_at":1433674552000,"path":"/u/zhuna","status":1,"is_member":0,"id":106469,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-12-06","location":"江苏 无锡","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/2212a32f00cca72b5561aef00ebb5dc7.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/2212a32f00cca72b5561aef00ebb5dc7.png","created_at":1408351432000,"last_logined_at":1436708505000,"global_key":"timothyqiu","name":"timothyqiu","name_pinyin":"","updated_at":1408351432000,"path":"/u/timothyqiu","status":1,"is_member":0,"id":13153,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1996-01-29","location":"吉林 长春","company":"无","slogan":"null","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5633b9d2-8cbf-497e-b4c3-8bf0bca40ed7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5633b9d2-8cbf-497e-b4c3-8bf0bca40ed7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1408532116000,"last_logined_at":1436077557000,"global_key":"kingwl","name":"kingwl","name_pinyin":"","updated_at":1408532116000,"path":"/u/kingwl","status":1,"is_member":0,"id":15134,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"Coding my life...","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/65e692ec-66c2-4732-9b8e-937189590f01.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/b89b7a59-3148-4751-a9ff-5f696b1218cc.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/65e692ec-66c2-4732-9b8e-937189590f01.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1435375435000,"last_logined_at":1437009402000,"global_key":"donychen","name":"donychen","name_pinyin":"","updated_at":1435375435000,"path":"/u/donychen","status":1,"is_member":0,"id":110001,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":58096,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436534710000,"likes":0,"comments":14,"comment_list":[{"id":131485,"tweet_id":58096,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436596385000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 不和你們這些遊山玩水的傢伙們夜話…"},{"id":131458,"tweet_id":58096,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436587046000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/fwolf\" rel\u003d\"nofollow\"\u003e@Fwolf\u003c/a\u003e 时间是周五晚上 地点还在考虑要不要现场直播"},{"id":131457,"tweet_id":58096,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436587012000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/djyuning\" rel\u003d\"nofollow\"\u003e@妖刀\u003c/a\u003e 嘉宾现在正在游山玩水"},{"id":131390,"tweet_id":58096,"owner_id":94169,"owner":{"sex":0,"birthday":"1987-08-20","location":"重庆 大渡口区","company":"tPeriod Tech","slogan":"奇迹总会发生在我身上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b02065e5-c6db-472d-8cff-d3da20da492a.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!541x541a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/aa4592ce-cda4-442a-9abb-4269dc018ce0.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b02065e5-c6db-472d-8cff-d3da20da492a.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!541x541a0a0","created_at":1428641852000,"last_logined_at":1436495272000,"global_key":"djyuning","name":"妖刀","name_pinyin":"|yd|yaodao","updated_at":1428641852000,"path":"/u/djyuning","status":1,"is_member":0,"id":94169,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436570332000,"content":"嘉宾不会是听错了吧?跑深山架篝火去啦?呵呵"},{"id":131330,"tweet_id":58096,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436539688000,"content":"本泡应该浮动在水面\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/376\" rel\u003d\"nofollow\"\u003e#Coding 夜话#\u003c/a\u003e \u003c/p\u003e \n\u003ch3 id\u003d\"user-content-coding-夜话推迟一周发布\"\u003eCoding 夜话推迟一周发布\u003c/h3\u003e \n\u003cp\u003e各位泡友,抱歉的通知,由于本期夜话的嘉宾还深陷深山老林,暂时无法回归人类社会,故夜话推迟到下周五。对此我深表歉意和感到遗憾。\u003c/p\u003e","path":"/u/kloze/pp/58096","activity_id":0,"liked":false,"like_users":[]},"name":"Coding 夜话","created_at":1435931535000,"id":376,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":9,"hot_tweet":{"id":59310,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436928380000,"likes":1,"comments":9,"comment_list":[{"id":133015,"tweet_id":59310,"owner_id":54212,"owner":{"sex":0,"birthday":"1994-08-31","location":"江苏 南京","company":"幕(木)游(有)公司","slogan":"做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","created_at":1418705066000,"last_logined_at":1436600011000,"global_key":"Morph_Zhou","name":"Morph_Zhou","name_pinyin":"","updated_at":1418705066000,"path":"/u/Morph_Zhou","status":1,"is_member":0,"id":54212,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436940181000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 然而已经没有了.."},{"id":133013,"tweet_id":59310,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436940114000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/Morph_Zhou\" rel\u003d\"nofollow\"\u003e@Morph_Zhou\u003c/a\u003e 资源自行搜索。。"},{"id":133000,"tweet_id":59310,"owner_id":54212,"owner":{"sex":0,"birthday":"1994-08-31","location":"江苏 南京","company":"幕(木)游(有)公司","slogan":"做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","created_at":1418705066000,"last_logined_at":1436600011000,"global_key":"Morph_Zhou","name":"Morph_Zhou","name_pinyin":"","updated_at":1418705066000,"path":"/u/Morph_Zhou","status":1,"is_member":0,"id":54212,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436937842000,"content":"资源资源...."},{"id":132952,"tweet_id":59310,"owner_id":107805,"owner":{"sex":1,"birthday":"1990-11-06","location":"广西 柳州","company":"昊客","slogan":"然并卵,微博@爱抠鼻屎的怪大婶","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/2c589fcd-b33f-4688-ac0d-5cc3f88d3ca3.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/0a63d54a-1ab0-4c75-8214-f161423626a5.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/2c589fcd-b33f-4688-ac0d-5cc3f88d3ca3.jpg","created_at":1434335589000,"last_logined_at":1436863461000,"global_key":"annakia","name":"annakia","name_pinyin":"","updated_at":1434335589000,"path":"/u/annakia","status":1,"is_member":0,"id":107805,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436931341000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 啊。难道我记错了是4分钟?"},{"id":132949,"tweet_id":59310,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436931235000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/annakia\" rel\u003d\"nofollow\"\u003e@annakia\u003c/a\u003e 我擦。。还有10分钟?"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/424\" rel\u003d\"nofollow\"\u003e#优衣库#\u003c/a\u003e \u003c/p\u003e \n\u003ch4 id\u003d\"user-content-对于不知道优衣库的同学,这里集合贴\"\u003e对于不知道优衣库的同学,这里集合贴\u003c/h4\u003e \n\u003cp\u003e\u003ca href\u003d\"http://mp.weixin.qq.com/s?__biz\u003dMzA4MTMyMDEwNg\u003d\u003d\u0026amp;mid\u003d208239752\u0026amp;idx\u003d1\u0026amp;sn\u003d62f7df610d36b12fc8ca089561755d1a\u0026amp;scene\u003d1\u0026amp;key\u003dc76941211a49ab58fd8a9a4fb5cb54c29b2fbcd67766f7c8c942aff14ebf902fbe25ab4ea4a53af2ffb38b9d1eac15f4\u0026amp;ascene\u003d0\u0026amp;uin\u003dMjM2MDQwNjU%3D\u0026amp;devicetype\u003diMac+MacBookPro11\" target\u003d\"_blank\" class\u003d\" auto-link\" rel\u003d\"nofollow\"\u003ehttp://mp.weixin.qq.com/s?__biz\u003dMzA4MTMyMDEwNg\u003d\u003d\u0026amp;mid\u003d208239752\u0026amp;idx\u003d1\u0026amp;sn\u003d62f7df610d36b12fc8ca089561755d1a\u0026amp;scene\u003d1\u0026amp;key\u003dc76941211a49ab58fd8a9a4fb5cb54c29b2fbcd67766f7c8c942aff14ebf902fbe25ab4ea4a53af2ffb38b9d1eac15f4\u0026amp;ascene\u003d0\u0026amp;uin\u003dMjM2MDQwNjU%253D%26devicetype%3DiMac+MacBookPro11%2C1+OSX+OSX+10.10.3+build(14D136)\u0026amp;version\u003d11020012\u0026amp;pass_ticket\u003dolGiuWJhoCKfQrMX2WKOUC08QSo4wAJOiAUXi1K7FcM%3D\u003c/a\u003e\u003c/p\u003e","path":"/u/kloze/pp/59310","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1993-12-03","location":"北京 石景山区","company":"博看文思","slogan":"......","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e4d1302-3276-43b4-9ee8-cbbae8fd9633.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/76d6805f-0181-4bb4-95a1-82add25d161f.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/0e4d1302-3276-43b4-9ee8-cbbae8fd9633.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1420375111000,"last_logined_at":1436499437000,"global_key":"wangkang","name":"王康","name_pinyin":"|wangkang|wk","updated_at":1420375111000,"path":"/u/wangkang","status":1,"is_member":0,"id":68838,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"优衣库","created_at":1436927129000,"id":424,"user_list":[{"sex":1,"birthday":"1989-10-13","location":"河南 焦作","company":"","slogan":"前端开发 加油!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/437af37d-94db-4028-8846-f0cfe8ef46f1.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/28d632af-e4da-4f64-8797-03ef16aee603.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/437af37d-94db-4028-8846-f0cfe8ef46f1.jpg","created_at":1425371492000,"last_logined_at":1437031269000,"global_key":"2ni","name":"2ni","name_pinyin":"","updated_at":1425371492000,"path":"/u/2ni","status":1,"is_member":0,"id":83165,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-01-01","location":"江苏 南京","company":"南京安元科技有限公司","slogan":"好好学习,天天向上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","created_at":1417770252000,"last_logined_at":1437008173000,"global_key":"songyiwei","name":"这个人出现在","name_pinyin":"|zgrcxz|zhegerenchuxianzai","updated_at":1417770252000,"path":"/u/songyiwei","status":1,"is_member":0,"id":51246,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/706eb577-6a88-464d-b635-e759067019d6.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1434507370000,"last_logined_at":1436411863000,"global_key":"jpr1990","name":"jpr1990","name_pinyin":"","updated_at":1434507370000,"path":"/u/jpr1990","status":1,"is_member":0,"id":108268,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-12-07","location":"广东 广州","company":"在路上","slogan":"你猜","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","created_at":1412759505000,"last_logined_at":1437012838000,"global_key":"seekwe","name":"seekwe","name_pinyin":"","updated_at":1412759505000,"path":"/u/seekwe","status":1,"is_member":0,"id":34258,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1988-12-18","location":"江西 南昌","company":"上海裁软","slogan":"Study hard and make progress every day","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d7d4afe4-9440-4d2d-a141-62ff26c9a42b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!480x480a0a8","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d7d4afe4-9440-4d2d-a141-62ff26c9a42b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!480x480a0a8","created_at":1405580241000,"last_logined_at":1436619815000,"global_key":"yvsh","name":"littleyue","name_pinyin":"","updated_at":1405580241000,"path":"/u/yvsh","status":1,"is_member":0,"id":1292,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":5,"hot_tweet":{"id":59612,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437023631000,"likes":4,"comments":1,"comment_list":[{"id":133523,"tweet_id":59612,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437026843000,"content":"新技能 get"}],"device":"OPPO Find7","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/335\" rel\u003d\"nofollow\"\u003e#gif#\u003c/a\u003e 【新技能get√】感觉自己终于能到很多地方了。\u003cbr\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/dd3a700f-ddb9-4ab9-a866-45b9f932ffad.gif\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/dd3a700f-ddb9-4ab9-a866-45b9f932ffad.gif\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/TXisfine/pp/59612","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1991-10-20","location":"湖北 武汉","company":"undefined,none,error.","slogan":"KISS","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","gravatar":"https://dn-coding-net-avatar.qbox.me/542aa98c-1183-442e-8744-907750cdddbb.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","created_at":1419861720000,"last_logined_at":1437038279000,"global_key":"wenki","name":"wenki","name_pinyin":"","updated_at":1419861720000,"path":"/u/wenki","status":1,"is_member":0,"id":64169,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1986-08-16","location":"山东 青岛","company":"保密","slogan":"有点想法很好,有点行动更好","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ea91de1-b5bc-45a0-b972-da612a9c08fb.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/500c922c-1b6b-4408-9296-5fe7c44a43bd.png","lavatar":"https://dn-coding-net-production-static.qbox.me/9ea91de1-b5bc-45a0-b972-da612a9c08fb.jpg","created_at":1409097666000,"last_logined_at":1437031418000,"global_key":"silverwing","name":"愚夫","name_pinyin":"|yf|yufu","updated_at":1409097666000,"path":"/u/silverwing","status":1,"is_member":0,"id":22811,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"gif","created_at":1435323487000,"id":335,"user_list":[{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1990-05-04","location":"北京","company":"永希","slogan":"https://a-hope.cn","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","created_at":1405998676000,"last_logined_at":1436187451000,"global_key":"jaysun","name":"卡基猫","name_pinyin":"|kjm|kajimao","updated_at":1405998676000,"path":"/u/jaysun","status":1,"is_member":0,"id":2455,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1994-09-11","location":"广东 深圳","company":"","slogan":"Simplicity is the ultimate sophistication.","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d0b84a18-3dde-43d7-b3e0-3ffbe785df90.png?imageMogr2/auto-orient/format/png/crop/!240x240a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/cd9a28a2-b6b6-4883-84ee-af727c01a662.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/d0b84a18-3dde-43d7-b3e0-3ffbe785df90.png?imageMogr2/auto-orient/format/png/crop/!240x240a0a0","created_at":1422087534000,"last_logined_at":1436842049000,"global_key":"chnhyg","name":"小模样儿","name_pinyin":"|xmye|xiaomoyanger","updated_at":1422087534000,"path":"/u/chnhyg","status":1,"is_member":0,"id":77755,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-06-10","location":"深圳","company":"Coding.net","slogan":"\u0026lt;img src\u003d1 onerror\u003dalert(1)\u0026gt;","introduction":"嗯?","avatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","gravatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","lavatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","created_at":1399045331000,"last_logined_at":1437033487000,"global_key":"wzw","name":"wzw","name_pinyin":"","updated_at":1399045331000,"path":"/u/wzw","status":1,"is_member":0,"id":1,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":6,"hot_tweet":{"id":56708,"owner_id":65953,"owner":{"sex":0,"birthday":"1991-04-03","location":"江苏 南京","company":"南京厚建","slogan":"Stay Hungry, Stay Foolish! Be a B dever","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/89bd6ea6-3e6c-4cee-b44b-3690e3857713.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","created_at":1419996323000,"last_logined_at":1436884485000,"global_key":"milker","name":"Milker","name_pinyin":"","updated_at":1419996323000,"path":"/u/milker","status":1,"is_member":0,"id":65953,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436284641000,"likes":0,"comments":0,"comment_list":[],"device":"华为 荣耀6","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/371\" rel\u003d\"nofollow\"\u003e#爱码诗#\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/smiley.png\" title\u003d\"smiley\"\u003e\u003cimg class\u003d\"emotion monkey\" src\u003d\"https://coding.net/static/coding-emotions/coding-emoji-09.png\" title\u003d\"内急\"\u003e\u003c/p\u003e","path":"/u/milker/pp/56708","activity_id":0,"liked":false,"like_users":[]},"name":"爱码诗","created_at":1435855932000,"id":371,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"山东 淄博","company":"sdut","slogan":"just coding ,just fun!","introduction":"","avatar":"/static/fruit_avatar/Fruit-11.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-11.png","created_at":1416744216000,"last_logined_at":1436710993000,"global_key":"lixinxing","name":"lixinxing","name_pinyin":"","updated_at":1416744216000,"path":"/u/lixinxing","status":1,"is_member":0,"id":47280,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"北京 朝阳区","company":"NSB","slogan":"刚兴趣的","introduction":"","avatar":"/static/fruit_avatar/Fruit-3.png","gravatar":"https://dn-coding-net-avatar.qbox.me/62a91da2-f336-4aac-bc68-b554ab383fc9.jpg","lavatar":"/static/fruit_avatar/Fruit-3.png","created_at":1421161473000,"last_logined_at":1437013178000,"global_key":"zhangyuhan","name":"zhangyuhan","name_pinyin":"","updated_at":1421161473000,"path":"/u/zhangyuhan","status":1,"is_member":0,"id":74975,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"sdut","slogan":"sdut","introduction":"","avatar":"/static/fruit_avatar/Fruit-20.png","gravatar":"https://dn-coding-net-avatar.qbox.me/0f58a707-578a-43c8-a35c-d21c14944d94.jpg","lavatar":"/static/fruit_avatar/Fruit-20.png","created_at":1433674552000,"last_logined_at":1436841045000,"global_key":"zhuna","name":"zhuna","name_pinyin":"","updated_at":1433674552000,"path":"/u/zhuna","status":1,"is_member":0,"id":106469,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-05-11","location":"广东 深圳","company":"森普航科","slogan":"xxx","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8d6da319-d09a-41f9-b90d-28156bedd492.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/f972df9d-67d3-4b55-b845-99c266b10473.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/8d6da319-d09a-41f9-b90d-28156bedd492.jpg","created_at":1433677544000,"last_logined_at":1436939933000,"global_key":"yao1243","name":"yao1243","name_pinyin":"","updated_at":1433677544000,"path":"/u/yao1243","status":1,"is_member":0,"id":106476,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-04-03","location":"江苏 南京","company":"南京厚建","slogan":"Stay Hungry, Stay Foolish! Be a B dever","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/89bd6ea6-3e6c-4cee-b44b-3690e3857713.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","created_at":1419996323000,"last_logined_at":1436884485000,"global_key":"milker","name":"Milker","name_pinyin":"","updated_at":1419996323000,"path":"/u/milker","status":1,"is_member":0,"id":65953,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1996-12-12","location":"江苏 ","company":"卖萌集团","slogan":"LL 大法好!舰C大法好!node大法好!nico大法好!nexus大法好!Coding大法好!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/15b151ef-2df1-457a-913f-ec62d7b536fd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!800x800a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15b151ef-2df1-457a-913f-ec62d7b536fd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!800x800a0a0","created_at":1417169502000,"last_logined_at":1436696171000,"global_key":"luojia","name":"天朝冰冻型队长舰QAQ","name_pinyin":"|tcbdxdcj|tianchaobingdongxingduichangjian","updated_at":1417169502000,"path":"/u/luojia","status":1,"is_member":0,"id":49005,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":2,"hot_tweet":{"id":59432,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436957749000,"likes":1,"comments":5,"comment_list":[{"id":133240,"tweet_id":59432,"owner_id":50262,"owner":{"sex":0,"birthday":"1989-02-03","location":"河南 郑州","company":"郑州信源信息技术股份有限公司","slogan":"为啥不是挣钱的挣?","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ed0cc43b-3246-4a9c-8eb2-bb578d90c042.gif?imageMogr2/auto-orient/format/jpg/crop/!200x200a82a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a30a816c-b7e9-491d-99ee-80fc41c8a152.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ed0cc43b-3246-4a9c-8eb2-bb578d90c042.gif?imageMogr2/auto-orient/format/jpg/crop/!200x200a82a0","created_at":1417580750000,"last_logined_at":1436971661000,"global_key":"kevinzheng","name":"啊郑","name_pinyin":"|az|azheng","updated_at":1417580750000,"path":"/u/kevinzheng","status":1,"is_member":0,"id":50262,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436972412000,"content":"0.01 马币到手"},{"id":133237,"tweet_id":59432,"owner_id":64057,"owner":{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436971634000,"content":"赶明天,俺试试"},{"id":133189,"tweet_id":59432,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436961310000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/linqun\" rel\u003d\"nofollow\"\u003e@孜然麻辣熊大大\u003c/a\u003e 有点用 每次下他家的软件很烦 必须注册 登录下载"},{"id":133176,"tweet_id":59432,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436958045000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 就是告诉Oracle我已经同意你的霸王条款了"},{"id":133173,"tweet_id":59432,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436957797000,"content":"绕过注册 \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/smile.png\" title\u003d\"smile\"\u003e"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/385\" rel\u003d\"nofollow\"\u003e#熊大大小课堂#\u003c/a\u003e 下载Oracle官方JDK\u003cbr\u003e 只需要加个Header就可以了\u003cbr\u003e Example:\u003c/p\u003e \n\u003cpre\u003e\u003ccode\u003ewget --no-check-certificate --no-cookies --header \"Cookie: oraclelicense\u003daccept-securebackup-cookie\" http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.rpm\n\u003c/code\u003e\u003c/pre\u003e","path":"/u/linqun/pp/59432","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"熊大大小课堂","created_at":1436238476000,"id":385,"user_list":[{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1998-05-15","location":"江苏 苏州","company":"","slogan":"逗比","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ff6be095-d349-4ce6-94c1-92649f549e53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a178a0","gravatar":"https://dn-coding-net-avatar.qbox.me/b40d153e-5bc3-49bf-8863-8e607e419a9e.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ff6be095-d349-4ce6-94c1-92649f549e53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a178a0","created_at":1410177912000,"last_logined_at":1437029996000,"global_key":"zrmlx","name":"孜然麻辣熊","name_pinyin":"|zrmlx|ziranmalaxiong","updated_at":1410177912000,"path":"/u/zrmlx","status":1,"is_member":0,"id":31525,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":2,"hot_tweet":{"id":58867,"owner_id":8259,"owner":{"sex":0,"birthday":"1991-10-28","location":"广东 广州","company":"广州曦和信息科技有限公司","slogan":"间歇性洗澡忘带内裤综合症","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","created_at":1407465734000,"last_logined_at":1436955652000,"global_key":"jackatlas","name":"jackatlas","name_pinyin":"","updated_at":1407465734000,"path":"/u/jackatlas","status":1,"is_member":0,"id":8259,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436776815000,"likes":1,"comments":2,"comment_list":[{"id":132595,"tweet_id":58867,"owner_id":8259,"owner":{"sex":0,"birthday":"1991-10-28","location":"广东 广州","company":"广州曦和信息科技有限公司","slogan":"间歇性洗澡忘带内裤综合症","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","created_at":1407465734000,"last_logined_at":1436955652000,"global_key":"jackatlas","name":"jackatlas","name_pinyin":"","updated_at":1407465734000,"path":"/u/jackatlas","status":1,"is_member":0,"id":8259,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436853131000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/panpan\" rel\u003d\"nofollow\"\u003e@潘潘\u003c/a\u003e 没有啦,只是感慨一下~"},{"id":132302,"tweet_id":58867,"owner_id":15,"owner":{"sex":1,"birthday":"1989-08-17","location":"广东深圳","company":"官方打杂妹","slogan":"我就是潘潘潘潘潘哈哈","introduction":"恩","avatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","created_at":1399839374000,"last_logined_at":1436491923000,"global_key":"panpan","name":"潘潘","name_pinyin":"|pp|panpan","updated_at":1399839374000,"path":"/u/panpan","status":1,"is_member":0,"id":15,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436780441000,"content":"所以这是个招聘贴?"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/314\" rel\u003d\"nofollow\"\u003e#ReactJS#\u003c/a\u003e \u003cbr\u003e 看了 Coding 的《React 构建 WebIDE 的应用实践》ppt,Flux架构、测试,有许多值得学习的地方,遗憾没机会到现场。\u003c/p\u003e \n\u003cp\u003e另,靠谱设计师紧缺啊……\u003c/p\u003e","path":"/u/jackatlas/pp/58867","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1991-06-03","location":"","company":"SideChef","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/87bcbe6c-c8e9-4cb3-86a1-0733637cbbd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!738x738a44a0","gravatar":"https://dn-coding-net-avatar.qbox.me/69839658-becc-495a-848d-196474aca65c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/87bcbe6c-c8e9-4cb3-86a1-0733637cbbd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!738x738a44a0","created_at":1409075241000,"last_logined_at":1435990113000,"global_key":"xiequan","name":"xiequan","name_pinyin":"","updated_at":1409075241000,"path":"/u/xiequan","status":1,"is_member":0,"id":22789,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"ReactJS","created_at":1434984022000,"id":314,"user_list":[{"sex":0,"birthday":"1990-02-12","location":"广东 深圳 ","company":"Coding.net","slogan":"新的体验总是好的...","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/e3438bf4-8e93-4a6d-b116-683b9a30c992.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4f0761bd-9dc1-4ce4-8d13-778ad2b16587.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/e3438bf4-8e93-4a6d-b116-683b9a30c992.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1399058281000,"last_logined_at":1437048147982,"global_key":"bluishoul","name":"彭博","name_pinyin":"|pb|pengbo","updated_at":1399058281000,"path":"/u/bluishoul","status":1,"is_member":0,"id":7,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-10-28","location":"广东 广州","company":"广州曦和信息科技有限公司","slogan":"间歇性洗澡忘带内裤综合症","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","created_at":1407465734000,"last_logined_at":1436955652000,"global_key":"jackatlas","name":"jackatlas","name_pinyin":"","updated_at":1407465734000,"path":"/u/jackatlas","status":1,"is_member":0,"id":8259,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":55512,"owner_id":45858,"owner":{"sex":1,"birthday":"1990-11-17","location":"上海 长宁区","company":"coding","slogan":"做个呆萌的吃货","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","created_at":1416369632000,"last_logined_at":1436436740000,"global_key":"wangziying","name":"wangziying","name_pinyin":"","updated_at":1416369632000,"path":"/u/wangziying","status":1,"is_member":0,"id":45858,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436018003000,"likes":9,"comments":26,"comment_list":[{"id":128356,"tweet_id":55512,"owner_id":78571,"owner":{"sex":0,"birthday":"1985-01-01","location":"江苏 南京","company":"四季大通","slogan":"是金子总会发光的,是银子总会花光的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f81220ce-1b3e-4d00-b8a8-b80718d98f3b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!272x272a85a59","gravatar":"https://dn-coding-net-avatar.qbox.me/3e07669d-6ad8-4a65-91c9-4faa21070006.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/f81220ce-1b3e-4d00-b8a8-b80718d98f3b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!272x272a85a59","created_at":1422436075000,"last_logined_at":1437034333000,"global_key":"steam","name":"steam","name_pinyin":"","updated_at":1422436075000,"path":"/u/steam","status":1,"is_member":0,"id":78571,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436148186000,"content":"卵有用"},{"id":128174,"tweet_id":55512,"owner_id":45858,"owner":{"sex":1,"birthday":"1990-11-17","location":"上海 长宁区","company":"coding","slogan":"做个呆萌的吃货","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","created_at":1416369632000,"last_logined_at":1436436740000,"global_key":"wangziying","name":"wangziying","name_pinyin":"","updated_at":1416369632000,"path":"/u/wangziying","status":1,"is_member":0,"id":45858,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436099482000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/hainuo\" rel\u003d\"nofollow\"\u003e@刘峰\u003c/a\u003e 神马?rio不和饮料一样。。。"},{"id":128120,"tweet_id":55512,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436089125000,"content":"回复了这么多都没有抓住重点 #那朋友是有的# 这才是争论的挤掉"},{"id":128076,"tweet_id":55512,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436078184000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/wangziying\" rel\u003d\"nofollow\"\u003e@wangziying\u003c/a\u003e 论一个女孩子要跟朋友喝酒。。。。。。"},{"id":128074,"tweet_id":55512,"owner_id":34878,"owner":{"sex":0,"birthday":"1985-01-13","location":"上海 长宁区","company":"coding.net","slogan":"将来的你,一定会感谢现在拼命努力的自己!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/4d643669-e855-4eb1-b49f-ce526194a0e0.jpg?imageMogr2/auto-orient/format/jpeg/crop/!398x398a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/4d643669-e855-4eb1-b49f-ce526194a0e0.jpg?imageMogr2/auto-orient/format/jpeg/crop/!398x398a0a0","created_at":1413187080000,"last_logined_at":1436532041000,"global_key":"duwan","name":"杜万","name_pinyin":"|dw|duwan","updated_at":1413187080000,"path":"/u/duwan","status":1,"is_member":0,"id":34878,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436078028000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/sinkcup\" rel\u003d\"nofollow\"\u003e@sinkcup\u003c/a\u003e 消息真灵通"}],"device":"iPhone 6","location":"","coord":"","address":"","content":"\u003cp\u003e布置的如此少女心。\u003cbr\u003e 都是我一个人逛宜家一个人扛桌子一个人拼。\u003cbr\u003e \u003ca class\u003d\"topic\" href\u003d\"/pp/topic/379\" rel\u003d\"nofollow\"\u003e#男盆友有卵用#\u003c/a\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/2e7907d4-339a-474c-8505-6ff38f05efe1.jpg\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/2e7907d4-339a-474c-8505-6ff38f05efe1.jpg\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/wangziying/pp/55512","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1985-01-01","location":"湖北 咸宁","company":"","slogan":"座右铭未填写","introduction":"","avatar":"/static/fruit_avatar/Fruit-11.png","gravatar":"https://dn-coding-net-avatar.qbox.me/7d7a75b8-48fe-45d3-9027-7ca6f72c3285.jpg","lavatar":"/static/fruit_avatar/Fruit-11.png","created_at":1419096035000,"last_logined_at":1429602069000,"global_key":"hhhhhzx","name":"hhhhhzx","name_pinyin":"","updated_at":1419096035000,"path":"/u/hhhhhzx","status":1,"is_member":0,"id":57703,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-07-01","location":"","company":"","slogan":"为开发疯狂","introduction":"","avatar":"/static/fruit_avatar/Fruit-16.png","gravatar":"https://dn-coding-net-avatar.qbox.me/8067b583-7857-4b88-909e-669d366797c5.jpg","lavatar":"/static/fruit_avatar/Fruit-16.png","created_at":1427784114000,"last_logined_at":1436921948000,"global_key":"497192","name":"GloryMan","name_pinyin":"","updated_at":1427784114000,"path":"/u/497192","status":1,"is_member":0,"id":89867,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"北京 海淀区","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9101209f-8245-4f23-95d8-4acda257fa93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9101209f-8245-4f23-95d8-4acda257fa93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a0a0","created_at":1414995075000,"last_logined_at":1436928983000,"global_key":"soloist","name":"独奏","name_pinyin":"|dz|duzou","updated_at":1414995075000,"path":"/u/soloist","status":1,"is_member":0,"id":38679,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9bd51290-92b1-41fc-ba90-4aa5e8b37c3e.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9bd51290-92b1-41fc-ba90-4aa5e8b37c3e.jpg","created_at":1407920925000,"last_logined_at":1435399310000,"global_key":"pcmadman","name":"pcmadman","name_pinyin":"","updated_at":1407920925000,"path":"/u/pcmadman","status":1,"is_member":0,"id":8886,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1985-06-07","location":"广东 深圳","company":"","slogan":"只爱自己爱的人","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1402474269000,"last_logined_at":1436954777000,"global_key":"lingling","name":"灵灵","name_pinyin":"|ll|lingling","updated_at":1402474269000,"path":"/u/lingling","status":1,"is_member":0,"id":35,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"广东 深圳","company":"Coding.net","slogan":"大圣赐我火眼金睛发现一切BUG 。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/5c1769a9-9acd-47c5-963b-29a933d910f3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","created_at":1433735819000,"last_logined_at":1437046822137,"global_key":"zhct","name":"zhct","name_pinyin":"","updated_at":1433735819000,"path":"/u/zhct","status":1,"is_member":0,"id":106621,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"男盆友有卵用","created_at":1436018003000,"id":379,"user_list":[{"sex":1,"birthday":"1990-11-17","location":"上海 长宁区","company":"coding","slogan":"做个呆萌的吃货","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","created_at":1416369632000,"last_logined_at":1436436740000,"global_key":"wangziying","name":"wangziying","name_pinyin":"","updated_at":1416369632000,"path":"/u/wangziying","status":1,"is_member":0,"id":45858,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":59581,"owner_id":58133,"owner":{"sex":0,"birthday":"1990-02-17","location":"浙江 杭州","company":"","slogan":"Talk is cheap, show me the Code !","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ce5470f4-ed0b-4803-bf0e-c46b65ea881c.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","created_at":1419146313000,"last_logined_at":1436445476000,"global_key":"rickytan","name":"rickytan","name_pinyin":"","updated_at":1419146313000,"path":"/u/rickytan","status":1,"is_member":0,"id":58133,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437015856000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/344\" rel\u003d\"nofollow\"\u003e#NSHipster#\u003c/a\u003e ReactiveCocoa是一个将函数响应式编程范例带入Objective-C的开源库。\u003ca href\u003d\"http://nshipster.cn/reactivecocoa/\" target\u003d\"_blank\" class\u003d\" auto-link\" rel\u003d\"nofollow\"\u003ehttp://nshipster.cn/reactivecocoa/\u003c/a\u003e\u003c/p\u003e","path":"/u/rickytan/pp/59581","activity_id":0,"liked":false,"like_users":[]},"name":"NSHipster","created_at":1435499364000,"id":344,"user_list":[{"sex":0,"birthday":"1990-02-17","location":"浙江 杭州","company":"","slogan":"Talk is cheap, show me the Code !","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ce5470f4-ed0b-4803-bf0e-c46b65ea881c.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","created_at":1419146313000,"last_logined_at":1436445476000,"global_key":"rickytan","name":"rickytan","name_pinyin":"","updated_at":1419146313000,"path":"/u/rickytan","status":1,"is_member":0,"id":58133,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":2,"hot_tweet":{"id":58527,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436677408000,"likes":6,"comments":4,"comment_list":[{"id":131966,"tweet_id":58527,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436711239000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/sinkcup\" rel\u003d\"nofollow\"\u003e@sinkcup\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"},{"id":131964,"tweet_id":58527,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436711225000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/lichi93\" rel\u003d\"nofollow\"\u003e@小七七\u003c/a\u003e 我也不知道啊!\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"},{"id":131927,"tweet_id":58527,"owner_id":64057,"owner":{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436705670000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/lichi93\" rel\u003d\"nofollow\"\u003e@小七七\u003c/a\u003e 北戴河吧……嘿嘿"},{"id":131906,"tweet_id":58527,"owner_id":17567,"owner":{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436700642000,"content":"哈哈哈是吗?这哪\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/373\" rel\u003d\"nofollow\"\u003e#Coding壁纸#\u003c/a\u003e 台湾风光\u003c/p\u003e \n\u003cp\u003e\u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/fc3d2c22-7d03-4628-80b5-347c6da2382a.jpg\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/fc3d2c22-7d03-4628-80b5-347c6da2382a.jpg\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/TXisfine/pp/58527","activity_id":0,"liked":false,"like_users":[{"sex":1,"birthday":"1995-01-01","location":"","company":"","slogan":"把猴子抱回家","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/8a8f4840-a7f6-48d2-9a17-6c46e66eb212.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","created_at":1436779066000,"last_logined_at":1437016596000,"global_key":"mian","name":"豆芽芽","name_pinyin":"|dyy|douyaya","updated_at":1436779066000,"path":"/u/mian","status":1,"is_member":0,"id":113646,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-02-04","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1417670875000,"last_logined_at":1435509299000,"global_key":"appletang","name":"青天黎明","name_pinyin":"|qingtianliming|qtlm","updated_at":1417670875000,"path":"/u/appletang","status":1,"is_member":0,"id":50636,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-12-23","location":"广东 深圳 ","company":"Coding.net","slogan":"岂能尽如人意,但求无愧我心","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ef54d4ed-9c94-4963-bfe0-3bab5b7ab7a8.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ef54d4ed-9c94-4963-bfe0-3bab5b7ab7a8.jpg","created_at":1399066489000,"last_logined_at":1437047462695,"global_key":"zhlmmc","name":"zhlmmc","name_pinyin":"","updated_at":1399066489000,"path":"/u/zhlmmc","status":1,"is_member":0,"id":8,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6cfa25fc-794c-4a0d-8695-27c4219a4cda.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6cfa25fc-794c-4a0d-8695-27c4219a4cda.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1416498539000,"last_logined_at":1436770502000,"global_key":"esec","name":"Esec","name_pinyin":"","updated_at":1416498539000,"path":"/u/esec","status":1,"is_member":0,"id":46682,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1985-06-07","location":"广东 深圳","company":"","slogan":"只爱自己爱的人","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1402474269000,"last_logined_at":1436954777000,"global_key":"lingling","name":"灵灵","name_pinyin":"|ll|lingling","updated_at":1402474269000,"path":"/u/lingling","status":1,"is_member":0,"id":35,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"Coding壁纸","created_at":1435882115000,"id":373,"user_list":[{"sex":0,"birthday":"1990-10-17","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-2.png","gravatar":"https://dn-coding-net-avatar.qbox.me/1431273e-8432-476d-ad4d-e746b477fb86.jpg","lavatar":"/static/fruit_avatar/Fruit-2.png","created_at":1435884228000,"last_logined_at":1435981050000,"global_key":"goudaxiong","name":"goudaxiong","name_pinyin":"","updated_at":1435884228000,"path":"/u/goudaxiong","status":1,"is_member":0,"id":111166,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":58530,"owner_id":17567,"owner":{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436678017000,"likes":12,"comments":14,"comment_list":[{"id":131926,"tweet_id":58530,"owner_id":64057,"owner":{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436705627000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/succubus\" rel\u003d\"nofollow\"\u003e@FJH在这里\u003c/a\u003e 鼓掌^o^"},{"id":131870,"tweet_id":58530,"owner_id":101897,"owner":{"sex":1,"birthday":"1990-05-03","location":"","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","gravatar":"https://dn-coding-net-avatar.qbox.me/c6044d92-1932-492d-b32c-fd701d356884.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","created_at":1431924662000,"last_logined_at":1436975481000,"global_key":"succubus","name":"FJH在这里","name_pinyin":"|zzl|zaizheli","updated_at":1431924662000,"path":"/u/succubus","status":1,"is_member":0,"id":101897,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436690130000,"content":"“谢谢大家我们在一起了”"},{"id":131854,"tweet_id":58530,"owner_id":293,"owner":{"sex":0,"birthday":"1991-07-16","location":"广东 广州","company":"DJI","slogan":"厚积而薄发","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/4e81c8b4-a2af-479f-be17-48ad3d0615b7.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/4e81c8b4-a2af-479f-be17-48ad3d0615b7.jpg","created_at":1404914994000,"last_logined_at":1436071730000,"global_key":"martin","name":"martin","name_pinyin":"","updated_at":1404914994000,"path":"/u/martin","status":1,"is_member":0,"id":293,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436687996000,"content":"在一起!"},{"id":131837,"tweet_id":58530,"owner_id":36142,"owner":{"sex":0,"birthday":"1989-11-09","location":"江苏 苏州","company":"外星","slogan":"像我这样拉风帅气的码农,还能有第二个?~","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","created_at":1413787731000,"last_logined_at":1436654446000,"global_key":"brainqi","name":"BrainQi","name_pinyin":"","updated_at":1413787731000,"path":"/u/brainqi","status":1,"is_member":0,"id":36142,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436683147000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/fwolf\" rel\u003d\"nofollow\"\u003e@Fwolf\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/sweat_smile.png\" title\u003d\"sweat_smile\"\u003e"},{"id":131824,"tweet_id":58530,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436681442000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/brainqi\" rel\u003d\"nofollow\"\u003e@BrainQi\u003c/a\u003e 你這明顯是有企圖的"}],"device":"iPhone 6","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/411\" rel\u003d\"nofollow\"\u003e#JS大会#\u003c/a\u003e 和\u003ca class\u003d\"at-someone\" href\u003d\"/u/tsl0922\" rel\u003d\"nofollow\"\u003e@tsl0922\u003c/a\u003e 情侣装哦\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/grin.png\" title\u003d\"grin\"\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/2a19507d-bac5-4b27-b353-bd015f7dcfc9.jpg\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/2a19507d-bac5-4b27-b353-bd015f7dcfc9.jpg\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/lichi93/pp/58530","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1993-02-04","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1417670875000,"last_logined_at":1435509299000,"global_key":"appletang","name":"青天黎明","name_pinyin":"|qingtianliming|qtlm","updated_at":1417670875000,"path":"/u/appletang","status":1,"is_member":0,"id":50636,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-09-23","location":"海外 英国","company":"Insititute of Technology, Carlow","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0ca5a787-e7ce-4c52-8d07-62eb28b2a60a.png?imageMogr2/auto-orient/format/png/crop/!177x177a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0ca5a787-e7ce-4c52-8d07-62eb28b2a60a.png?imageMogr2/auto-orient/format/png/crop/!177x177a0a0","created_at":1417983021000,"last_logined_at":1436765048000,"global_key":"jerry_shao","name":"小耗子杰瑞","name_pinyin":"|xhzjr|xiaohaozijierui","updated_at":1417983021000,"path":"/u/jerry_shao","status":1,"is_member":0,"id":51643,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-10-20","location":"湖北 武汉","company":"undefined,none,error.","slogan":"KISS","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","gravatar":"https://dn-coding-net-avatar.qbox.me/542aa98c-1183-442e-8744-907750cdddbb.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","created_at":1419861720000,"last_logined_at":1437038279000,"global_key":"wenki","name":"wenki","name_pinyin":"","updated_at":1419861720000,"path":"/u/wenki","status":1,"is_member":0,"id":64169,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-11-15","location":"","company":"Coding.net","slogan":"这世上所有的不公平都是因为当事人能力的不足。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fba26674-8279-4997-be74-3166d74afb74.jpg?imageMogr2/auto-orient/format/jpeg/crop/!564x564a0a142","gravatar":"https://dn-coding-net-avatar.qbox.me/36413eae-4037-40dc-99bc-1aacfb4cd1ef.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fba26674-8279-4997-be74-3166d74afb74.jpg?imageMogr2/auto-orient/format/jpeg/crop/!564x564a0a142","created_at":1399123736000,"last_logined_at":1437045348475,"global_key":"kin","name":"书一","name_pinyin":"|sy|shuyi","updated_at":1399123736000,"path":"/u/kin","status":1,"is_member":0,"id":10,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1987-08-04","location":"广东 深圳","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","created_at":1404874624000,"last_logined_at":1437045840626,"global_key":"guoguo","name":"蝈蝈尹","name_pinyin":"|ggy|guoguoyin","updated_at":1404874624000,"path":"/u/guoguo","status":1,"is_member":0,"id":289,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1985-06-07","location":"广东 深圳","company":"","slogan":"只爱自己爱的人","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1402474269000,"last_logined_at":1436954777000,"global_key":"lingling","name":"灵灵","name_pinyin":"|ll|lingling","updated_at":1402474269000,"path":"/u/lingling","status":1,"is_member":0,"id":35,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-01-01","location":"山东 济南","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","created_at":1405739267000,"last_logined_at":1436449171000,"global_key":"itfanr","name":"itfanr","name_pinyin":"","updated_at":1405739267000,"path":"/u/itfanr","status":1,"is_member":0,"id":2118,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-11-09","location":"江苏 苏州","company":"外星","slogan":"像我这样拉风帅气的码农,还能有第二个?~","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","created_at":1413787731000,"last_logined_at":1436654446000,"global_key":"brainqi","name":"BrainQi","name_pinyin":"","updated_at":1413787731000,"path":"/u/brainqi","status":1,"is_member":0,"id":36142,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"JS大会","created_at":1436678017000,"id":411,"user_list":[{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":4,"hot_tweet":{"id":54362,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435771908000,"likes":0,"comments":6,"comment_list":[{"id":126416,"tweet_id":54362,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796170000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/hainuo\" rel\u003d\"nofollow\"\u003e@刘峰\u003c/a\u003e 表示每天冒泡8次,推代码数百次"},{"id":126415,"tweet_id":54362,"owner_id":2552,"owner":{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796122000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/hainuo\" rel\u003d\"nofollow\"\u003e@刘峰\u003c/a\u003e 之前一直在潜水开发好吧 昨天才水了一下 结果又回到榜上了"},{"id":126414,"tweet_id":54362,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796089000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/linqun\" rel\u003d\"nofollow\"\u003e@孜然麻辣熊大大\u003c/a\u003e 你也有活跃基因"},{"id":126413,"tweet_id":54362,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796068000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/xin\" rel\u003d\"nofollow\"\u003e@xin\u003c/a\u003e 你一直活跃好不好\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/disappointed_relieved.png\" title\u003d\"disappointed_relieved\"\u003e"},{"id":126411,"tweet_id":54362,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435795982000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/xin\" rel\u003d\"nofollow\"\u003e@xin\u003c/a\u003e 你有热门用户基因"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/4e648f1d-e497-445d-8762-bff9ad0a5e3c.png\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/4e648f1d-e497-445d-8762-bff9ad0a5e3c.png\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e \u003cbr\u003e 上个排行榜好难,做个备忘把\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/359\" rel\u003d\"nofollow\"\u003e#调戏Coding#\u003c/a\u003e \u003c/p\u003e","path":"/u/hainuo/pp/54362","activity_id":0,"liked":false,"like_users":[]},"name":"调戏Coding","created_at":1435732658000,"id":359,"user_list":[{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1994-08-31","location":"江苏 南京","company":"幕(木)游(有)公司","slogan":"做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","created_at":1418705066000,"last_logined_at":1436600011000,"global_key":"Morph_Zhou","name":"Morph_Zhou","name_pinyin":"","updated_at":1418705066000,"path":"/u/Morph_Zhou","status":1,"is_member":0,"id":54212,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/1a1873a8-7d76-4927-ae2e-38ad67c99582.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/488fbd75-4307-449c-a2af-d14a1ef61907.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/1a1873a8-7d76-4927-ae2e-38ad67c99582.jpg","created_at":1435753043000,"last_logined_at":1437031483000,"global_key":"zorji","name":"zorji","name_pinyin":"","updated_at":1435753043000,"path":"/u/zorji","status":1,"is_member":0,"id":110899,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":56555,"owner_id":93,"owner":{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436254603000,"likes":9,"comments":17,"comment_list":[{"id":129637,"tweet_id":56555,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436330193000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/sophia123456\" rel\u003d\"nofollow\"\u003e@小罗\u003c/a\u003e 喔喔~了解。"},{"id":129551,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436324572000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/bumy\" rel\u003d\"nofollow\"\u003e@riverlong\u003c/a\u003e 支付宝私信给我哈"},{"id":129487,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436320778000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/srufeng\" rel\u003d\"nofollow\"\u003e@srufeng\u003c/a\u003e 提bug或者建议 到公开 ios/android 的项目讨论中,可能会有奖励哈~"},{"id":129484,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436320674000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/zeallrm\" rel\u003d\"nofollow\"\u003e@zeallrm\u003c/a\u003e 相互关注,才是好友呢"},{"id":129483,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436320634000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/bumy\" rel\u003d\"nofollow\"\u003e@riverlong\u003c/a\u003e 棒棒哒~"}],"device":"","location":"","coord":"","address":"","content":"\u003ch2 id\u003d\"客户端-v3.0-版本-“赏金码士”-出炉\"\u003e客户端 V3.0 版本 “赏金码士” 出炉\u003c/h2\u003e \n\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/387\" rel\u003d\"nofollow\"\u003e#Coding 客户端#\u003c/a\u003e \u003cbr\u003e 在大家的支持下,客户端 V 3.0 已正式上线~请大家前往各大 app 市场进行更新\u003c/p\u003e \n\u003ch3 id\u003d\"发放赏金\"\u003e发放赏金\u003c/h3\u003e \n\u003cp\u003eiOS 版提交 bug 并通过审核者:\u003c/p\u003e \n\u003ctable\u003e \n \u003ctr\u003e \n \u003cth align\u003d\"center\"\u003e码士\u003c/th\u003e \n \u003cth align\u003d\"center\"\u003e金额\u003c/th\u003e \n \u003c/tr\u003e \n \u003ctbody\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/dowell\" rel\u003d\"nofollow\"\u003e@dowell\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/CyonLeu\" rel\u003d\"nofollow\"\u003e@cyonleu\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/huangyong\" rel\u003d\"nofollow\"\u003e@黄勇\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/yaming\" rel\u003d\"nofollow\"\u003e@花开堪折枝\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e \n\u003c/table\u003e \n\u003cp\u003eAndroid 版提交 bug 并通过审核者:\u003c/p\u003e \n\u003ctable\u003e \n \u003ctr\u003e \n \u003cth align\u003d\"center\"\u003e码士\u003c/th\u003e \n \u003cth align\u003d\"center\"\u003e金额\u003c/th\u003e \n \u003c/tr\u003e \n \u003ctbody\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/bumy\" rel\u003d\"nofollow\"\u003e@riverlong\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e100元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/898745604\" rel\u003d\"nofollow\"\u003e@VDer\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e40元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/hcrgm\" rel\u003d\"nofollow\"\u003e@hcrgm\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/icanghai\" rel\u003d\"nofollow\"\u003e@icanghai\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/xiaozhu\" rel\u003d\"nofollow\"\u003e@铂金小猪\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e \n\u003c/table\u003e \n\u003ch4 id\u003d\"ps:-找-bug-还有赏金拿!这样的好事哪里找?报名参加公测~-请直接私信-\u003ca class\u003d\u0027at-someone\u0027 href\u003d\u0027/u/sophia123456\u0027\u003e@小罗\u003c/a\u003e \"\u003ePS: 找 bug 还有赏金拿!这样的好事哪里找?报名参加公测~ 请直接私信 \u003ca class\u003d\"at-someone\" href\u003d\"/u/sophia123456\" rel\u003d\"nofollow\"\u003e@小罗\u003c/a\u003e \u003c/h4\u003e","path":"/u/coding/pp/56555","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-20.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-20.png","created_at":1411968342000,"last_logined_at":1436941286000,"global_key":"wenchang","name":"wenchang","name_pinyin":"","updated_at":1411968342000,"path":"/u/wenchang","status":1,"is_member":0,"id":33522,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-01-01","location":"山东 济南","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","created_at":1405739267000,"last_logined_at":1436449171000,"global_key":"itfanr","name":"itfanr","name_pinyin":"","updated_at":1405739267000,"path":"/u/itfanr","status":1,"is_member":0,"id":2118,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1990-05-03","location":"","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","gravatar":"https://dn-coding-net-avatar.qbox.me/c6044d92-1932-492d-b32c-fd701d356884.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","created_at":1431924662000,"last_logined_at":1436975481000,"global_key":"succubus","name":"FJH在这里","name_pinyin":"|zzl|zaizheli","updated_at":1431924662000,"path":"/u/succubus","status":1,"is_member":0,"id":101897,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-10.png","gravatar":"https://dn-coding-net-avatar.qbox.me/d9f05231-7871-4dfa-93a5-a1f581ea7f75.jpg","lavatar":"/static/fruit_avatar/Fruit-10.png","created_at":1434642539000,"last_logined_at":1434929202000,"global_key":"zeallrm","name":"zeallrm","name_pinyin":"","updated_at":1434642539000,"path":"/u/zeallrm","status":1,"is_member":0,"id":108626,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"广东 广州","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ed58d4ae-e17e-48fd-9f49-eeba3b26589a.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","created_at":1430075407000,"last_logined_at":1436791946000,"global_key":"bumy","name":"riverlong","name_pinyin":"","updated_at":1430075407000,"path":"/u/bumy","status":1,"is_member":0,"id":98041,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 长宁区","company":"shanghai yujing","slogan":"qinfen shi wo weiyi chulu","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/33f34541-d124-415b-bc39-47de5e0bde7f.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/5b92fba2-e22b-46d6-a002-ab5550d91688.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/33f34541-d124-415b-bc39-47de5e0bde7f.jpg","created_at":1426063393000,"last_logined_at":1436429110000,"global_key":"pingtanglu","name":"pingtanglu","name_pinyin":"","updated_at":1426063393000,"path":"/u/pingtanglu","status":1,"is_member":0,"id":84448,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-12-01","location":"广东 深圳","company":"CODING","slogan":"只有偏执狂才能生存","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/eece4ae0-233e-4604-a0ad-2ec936b32238.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/df00f228-aa2b-425f-a91a-c46724331dcc.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/eece4ae0-233e-4604-a0ad-2ec936b32238.jpg","created_at":1435320620000,"last_logined_at":1436862521000,"global_key":"miaodesign","name":"MangoCC","name_pinyin":"","updated_at":1435320620000,"path":"/u/miaodesign","status":1,"is_member":0,"id":109929,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1987-08-04","location":"广东 深圳","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","created_at":1404874624000,"last_logined_at":1437045840626,"global_key":"guoguo","name":"蝈蝈尹","name_pinyin":"|ggy|guoguoyin","updated_at":1404874624000,"path":"/u/guoguo","status":1,"is_member":0,"id":289,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"Coding 客户端","created_at":1436254604000,"id":387,"user_list":[{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]}]} \ No newline at end of file +{"code":0,"data":[{"watched":false,"user_count":52,"hot_tweet":{"id":59630,"owner_id":446,"owner":{"sex":0,"birthday":"7007-01-01","location":"广东 广州","company":"广州大麦","slogan":"学我者生,似我者死","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/826adb47-69d1-4b80-a05e-5303125d2df6.JPG?imageMogr2/auto-orient/format/jpeg/crop/!559x559a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/826adb47-69d1-4b80-a05e-5303125d2df6.JPG?imageMogr2/auto-orient/format/jpeg/crop/!559x559a0a0","created_at":1405501095000,"last_logined_at":1436405182000,"global_key":"james_cai","name":"james_cai","name_pinyin":"","updated_at":1405501095000,"path":"/u/james_cai","status":1,"is_member":0,"id":446,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437026214000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/218\" rel\u003d\"nofollow\"\u003e#码币#\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/smiling_imp.png\" title\u003d\"smiling_imp\"\u003e\u003c/p\u003e","path":"/u/james_cai/pp/59630","activity_id":0,"liked":false,"like_users":[]},"name":"码币","created_at":1433145105000,"id":218,"user_list":[{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-05-26","location":"广东 广州","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0735b8c9-e4f6-49e4-b947-0dfee78e842e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a0a50","gravatar":"https://dn-coding-net-avatar.qbox.me/fbb695ba-7023-47c6-b84b-dd813a0219c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/0735b8c9-e4f6-49e4-b947-0dfee78e842e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a0a50","created_at":1433598571000,"last_logined_at":1436266893000,"global_key":"poorguy","name":"poorguy","name_pinyin":"","updated_at":1433598571000,"path":"/u/poorguy","status":1,"is_member":0,"id":106315,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"江西 南昌","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/45e59eef-7421-4f00-93bb-45c4fd3119f5.png?imageMogr2/auto-orient/format/png/crop/!280x280a0a31","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/45e59eef-7421-4f00-93bb-45c4fd3119f5.png?imageMogr2/auto-orient/format/png/crop/!280x280a0a31","created_at":1405577422000,"last_logined_at":1436511843000,"global_key":"hvsy","name":"苏梦华","name_pinyin":"|smh|sumenghua","updated_at":1405577422000,"path":"/u/hvsy","status":1,"is_member":0,"id":1231,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-07-27","location":"北京 朝阳区","company":"cnepay","slogan":"世界那么大, 我想去看看","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/dedb067ecae8155b87428ac7920dd0ae.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/dedb067ecae8155b87428ac7920dd0ae.jpg","created_at":1405659032000,"last_logined_at":1434873266000,"global_key":"yinheli","name":"yinheli","name_pinyin":"","updated_at":1405659032000,"path":"/u/yinheli","status":1,"is_member":0,"id":1890,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-10-31","location":"江苏 苏州","company":"pinklian","slogan":"Making Love Out of Nothing at All","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","created_at":1413989470000,"last_logined_at":1436850094000,"global_key":"desmond","name":"desmond","name_pinyin":"","updated_at":1413989470000,"path":"/u/desmond","status":1,"is_member":0,"id":36755,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-06-21","location":"江苏 南京","company":"viva tech","slogan":"KEEP SIMPLE","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9081b035-427f-40cb-89f4-8cff6664da6f.jpg?imageMogr2/auto-orient/format/jpeg/crop/!400x400a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9081b035-427f-40cb-89f4-8cff6664da6f.jpg?imageMogr2/auto-orient/format/jpeg/crop/!400x400a0a0","created_at":1406882231000,"last_logined_at":1436504747000,"global_key":"dr2009","name":"dr2009","name_pinyin":"","updated_at":1406882231000,"path":"/u/dr2009","status":1,"is_member":0,"id":5814,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-11-08","location":"广东 广州","company":"sponia","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7cc9d1d9-5ba4-478c-96ae-5ca39e715bfd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!506x506a0a3","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7cc9d1d9-5ba4-478c-96ae-5ca39e715bfd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!506x506a0a3","created_at":1414399181000,"last_logined_at":1436755097000,"global_key":"whisky","name":"whisky","name_pinyin":"","updated_at":1414399181000,"path":"/u/whisky","status":1,"is_member":0,"id":37581,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-04-09","location":"江苏 无锡","company":"南京帆软软件有限公司","slogan":"然而这并没有什么卵用","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/802c48fc-a9c7-43d0-9b08-930767f56b2a.png?imageMogr2/auto-orient/format/png/crop/!512x512a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/e11eca9e-6c35-4ca8-98ef-c433416b3f38.png","lavatar":"https://dn-coding-net-production-static.qbox.me/802c48fc-a9c7-43d0-9b08-930767f56b2a.png?imageMogr2/auto-orient/format/png/crop/!512x512a0a0","created_at":1429069193000,"last_logined_at":1434631207000,"global_key":"huhamhire","name":"huhamhire","name_pinyin":"","updated_at":1429069193000,"path":"/u/huhamhire","status":1,"is_member":0,"id":95452,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1992-01-01","location":"上海 ","company":"携程","slogan":"To be better me","introduction":"","avatar":"/static/fruit_avatar/Fruit-7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/a44a2da5-c3fb-4240-80eb-835b3cedffe2.jpg","lavatar":"/static/fruit_avatar/Fruit-7.png","created_at":1432042116000,"last_logined_at":1436925662000,"global_key":"michel","name":"michel","name_pinyin":"","updated_at":1432042116000,"path":"/u/michel","status":1,"is_member":0,"id":102255,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"2014-07-22","location":"江苏 苏州","company":"","slogan":"冗码一生(13:28)","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a2fbe81e-5f9e-4e55-b09b-87c875c18cd7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1406006889000,"last_logined_at":1437033413000,"global_key":"liuxey","name":"Liuxey","name_pinyin":"","updated_at":1406006889000,"path":"/u/liuxey","status":1,"is_member":0,"id":2530,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":28,"hot_tweet":{"id":59561,"owner_id":35907,"owner":{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012241000,"likes":3,"comments":6,"comment_list":[{"id":133573,"tweet_id":59561,"owner_id":2279,"owner":{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437029897000,"content":"P的一手好图啊"},{"id":133482,"tweet_id":59561,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437022090000,"content":"0.02\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/persevere.png\" title\u003d\"persevere\"\u003e"},{"id":133407,"tweet_id":59561,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437015144000,"content":"你這讓我們還怎麼抱猴子啊…"},{"id":133389,"tweet_id":59561,"owner_id":113646,"owner":{"sex":1,"birthday":"1995-01-01","location":"","company":"","slogan":"把猴子抱回家","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/8a8f4840-a7f6-48d2-9a17-6c46e66eb212.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","created_at":1436779066000,"last_logined_at":1437016596000,"global_key":"mian","name":"豆芽芽","name_pinyin":"|dyy|douyaya","updated_at":1436779066000,"path":"/u/mian","status":1,"is_member":0,"id":113646,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012523000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/songyiwei\" rel\u003d\"nofollow\"\u003e@这个人出现在\u003c/a\u003e 黑我洋葱猴\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"},{"id":133385,"tweet_id":59561,"owner_id":51246,"owner":{"sex":0,"birthday":"1990-01-01","location":"江苏 南京","company":"南京安元科技有限公司","slogan":"好好学习,天天向上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","created_at":1417770252000,"last_logined_at":1437008173000,"global_key":"songyiwei","name":"这个人出现在","name_pinyin":"|zgrcxz|zhegerenchuxianzai","updated_at":1417770252000,"path":"/u/songyiwei","status":1,"is_member":0,"id":51246,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012380000,"content":"这是我第一次这么“讨厌”这个猴子logo"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/141\" rel\u003d\"nofollow\"\u003e#抠一段#\u003c/a\u003e 一个程序员忧心忡忡的去找禅师,他虔诚的跪在禅师面前说:禅师啊禅师,coding最近出了一个活动,只要要在微信上回答对了问题,就可以获得大圣归来的电影票两张,可是我不知道答案啊,你能告诉我吗?问题是 coding的最大特点是什么?”禅师看了一眼面前的程序员并没有说话,从旁边拿出coding的LOGO摆在程序员面前,程序员看了看说道:“我知道了禅师,你的意思是coding最大特点就是LOGO上写的,他是一个高大上的云技术产品?”禅师突然站起来脱掉裤子把屁股对着程序员,然后大叫道:“你这么笨怎么当程序员啊?我的意思是CODING最大的特点是可以上去卖屁股!”\u003cbr\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/8eca012c-a65b-46ef-b07c-c96fdffef515.png\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/8eca012c-a65b-46ef-b07c-c96fdffef515.png\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/itsing/pp/59561","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1990-06-10","location":"深圳","company":"Coding.net","slogan":"\u0026lt;img src\u003d1 onerror\u003dalert(1)\u0026gt;","introduction":"嗯?","avatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","gravatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","lavatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","created_at":1399045331000,"last_logined_at":1437033487000,"global_key":"wzw","name":"wzw","name_pinyin":"","updated_at":1399045331000,"path":"/u/wzw","status":1,"is_member":0,"id":1,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-02-18","location":"广东 江门","company":"袂卓建材搬运有限公司","slogan":"散文式php鲁迅都看不懂","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f4f7314c-c59f-42d4-a9c0-55f098644c79.jpg?imageMogr2/auto-orient/format/jpeg/crop/!251x251a0a25","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f4f7314c-c59f-42d4-a9c0-55f098644c79.jpg?imageMogr2/auto-orient/format/jpeg/crop/!251x251a0a25","created_at":1409455457000,"last_logined_at":1437010518000,"global_key":"zhlhuang","name":"zhlhuang","name_pinyin":"","updated_at":1409455457000,"path":"/u/zhlhuang","status":1,"is_member":0,"id":29746,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-01-01","location":"江苏 南京","company":"南京安元科技有限公司","slogan":"好好学习,天天向上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","created_at":1417770252000,"last_logined_at":1437008173000,"global_key":"songyiwei","name":"这个人出现在","name_pinyin":"|zgrcxz|zhegerenchuxianzai","updated_at":1417770252000,"path":"/u/songyiwei","status":1,"is_member":0,"id":51246,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"抠一段","created_at":1430199383000,"id":141,"user_list":[{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-11-16","location":"","company":"Coding.Net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/66fbd5f0-9a76-44c7-93c9-9e0e6b7afdd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!509x509a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a5ec1d31-c771-4b35-8cd8-ca613b174e83.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/66fbd5f0-9a76-44c7-93c9-9e0e6b7afdd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!509x509a0a0","created_at":1399056643000,"last_logined_at":1437032308000,"global_key":"Michael","name":"Michael","name_pinyin":"","updated_at":1399056643000,"path":"/u/Michael","status":1,"is_member":0,"id":5,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/706eb577-6a88-464d-b635-e759067019d6.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1434507370000,"last_logined_at":1436411863000,"global_key":"jpr1990","name":"jpr1990","name_pinyin":"","updated_at":1434507370000,"path":"/u/jpr1990","status":1,"is_member":0,"id":108268,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"山西 临汾","company":"无","slogan":"没有座右铭","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/3d16e65a-57e1-4cf3-b721-0e7187183eb3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!572x572a0a14","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/3d16e65a-57e1-4cf3-b721-0e7187183eb3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!572x572a0a14","created_at":1412417441000,"last_logined_at":1437039950000,"global_key":"fiy","name":"我是FT","name_pinyin":"|ws|woshi","updated_at":1412417441000,"path":"/u/fiy","status":1,"is_member":0,"id":33957,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":46,"hot_tweet":{"id":59614,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437023678000,"likes":0,"comments":9,"comment_list":[{"id":133682,"tweet_id":59614,"owner_id":78328,"owner":{"sex":0,"birthday":"1989-07-24","location":"吉林 长春","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-15.png","gravatar":"https://dn-coding-net-avatar.qbox.me/94ca25da-4dfa-44f9-8f94-27bb334a8f31.jpg","lavatar":"/static/fruit_avatar/Fruit-15.png","created_at":1422346827000,"last_logined_at":1437022035000,"global_key":"CarlJia","name":"CarlJia","name_pinyin":"","updated_at":1422346827000,"path":"/u/CarlJia","status":1,"is_member":0,"id":78328,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437047025613,"content":"archlinux"},{"id":133652,"tweet_id":59614,"owner_id":37841,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"求知若饥,虚心若愚。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9dc4bddc-040d-478a-bb31-c7c0b08a029e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9dc4bddc-040d-478a-bb31-c7c0b08a029e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1414495800000,"last_logined_at":1436875094000,"global_key":"JZQT","name":"JZQT","name_pinyin":"","updated_at":1414495800000,"path":"/u/JZQT","status":1,"is_member":0,"id":37841,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437040624000,"content":"deepin"},{"id":133550,"tweet_id":59614,"owner_id":2279,"owner":{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437029214000,"content":"桌面就用乌班图ubuntu,服务器就用centos"},{"id":133537,"tweet_id":59614,"owner_id":89816,"owner":{"sex":0,"birthday":"1989-12-14","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1a19d540-c936-415d-a837-6061378d94dc.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!128x128a16a57","gravatar":"https://dn-coding-net-avatar.qbox.me/ce7795e8-c3cd-460f-b08d-d2f74d3eb835.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/1a19d540-c936-415d-a837-6061378d94dc.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!128x128a16a57","created_at":1427773948000,"last_logined_at":1437015872000,"global_key":"zhgxun","name":"zhgxun","name_pinyin":"","updated_at":1427773948000,"path":"/u/zhgxun","status":1,"is_member":0,"id":89816,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437028404000,"content":"ubuntu我一直用,就是软件比较好装一些,会出问题,上次突然一直停留在登录界面,图形界面进不去,命令行可以使用,后来直接重装。重装成本太大,环境安装,开发工具,各种,折腾不住,年底准备穷,买苹果系统应该更稳定一些。"},{"id":133531,"tweet_id":59614,"owner_id":17884,"owner":{"sex":0,"birthday":"2014-08-01","location":"江苏 无锡","company":"同程旅游","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-2.png","gravatar":"https://dn-coding-net-avatar.qbox.me/5dc4795c-bbdf-48f2-815f-95cae63b101e.jpg","lavatar":"/static/fruit_avatar/Fruit-2.png","created_at":1408692750000,"last_logined_at":1437016730000,"global_key":"renzhaoxu","name":"renzhao","name_pinyin":"","updated_at":1408692750000,"path":"/u/renzhaoxu","status":1,"is_member":0,"id":17884,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437027830000,"content":"deepin"}],"device":"OPPO Find7","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/200\" rel\u003d\"nofollow\"\u003e#万能的冒泡#\u003c/a\u003e 个人使用Linux,哪个版本较好?\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/100.png\" title\u003d\"100\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/100.png\" title\u003d\"100\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/100.png\" title\u003d\"100\"\u003e\u003c/p\u003e","path":"/u/TXisfine/pp/59614","activity_id":0,"liked":false,"like_users":[]},"name":"万能的冒泡","created_at":1432201941000,"id":200,"user_list":[{"sex":0,"birthday":"1995-08-05","location":"吉林 长春","company":"无","slogan":"呵呵","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35e124f2-f601-436c-843b-074b146a2e3d.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/c2267416-299b-493f-a4d8-0b6346ad03ea.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/35e124f2-f601-436c-843b-074b146a2e3d.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1419831794000,"last_logined_at":1434873688000,"global_key":"f12998765","name":"F_xi","name_pinyin":"","updated_at":1419831794000,"path":"/u/f12998765","status":1,"is_member":0,"id":63693,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 徐汇区","company":"","slogan":"不翻墙搜Google www.886404.org","introduction":"","avatar":"/static/fruit_avatar/Fruit-19.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-19.png","created_at":1408153237000,"last_logined_at":1434985959000,"global_key":"fising","name":"fising","name_pinyin":"","updated_at":1408153237000,"path":"/u/fising","status":1,"is_member":0,"id":11977,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1989-08-17","location":"广东深圳","company":"官方打杂妹","slogan":"我就是潘潘潘潘潘哈哈","introduction":"恩","avatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","created_at":1399839374000,"last_logined_at":1436491923000,"global_key":"panpan","name":"潘潘","name_pinyin":"|pp|panpan","updated_at":1399839374000,"path":"/u/panpan","status":1,"is_member":0,"id":15,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1992-01-01","location":"上海 ","company":"携程","slogan":"To be better me","introduction":"","avatar":"/static/fruit_avatar/Fruit-7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/a44a2da5-c3fb-4240-80eb-835b3cedffe2.jpg","lavatar":"/static/fruit_avatar/Fruit-7.png","created_at":1432042116000,"last_logined_at":1436925662000,"global_key":"michel","name":"michel","name_pinyin":"","updated_at":1432042116000,"path":"/u/michel","status":1,"is_member":0,"id":102255,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"河南 济源","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d06af4ba2ffae3614a4bcad606a29c09.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d06af4ba2ffae3614a4bcad606a29c09.jpg","created_at":1405607752000,"last_logined_at":1436944144000,"global_key":"liu","name":"liu","name_pinyin":"","updated_at":1405607752000,"path":"/u/liu","status":1,"is_member":0,"id":1607,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-02-15","location":"上海 杨浦区","company":"dsoon","slogan":"哈哈哈哈^_^","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/615d587c-cef6-4155-af09-9e921291eb0d.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/3663ae0e-548b-4d8f-a841-122873c6a21f.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/615d587c-cef6-4155-af09-9e921291eb0d.jpg","created_at":1430890572000,"last_logined_at":1437007727000,"global_key":"wqc","name":"王全才","name_pinyin":"|wqc|wangquancai","updated_at":1430890572000,"path":"/u/wqc","status":1,"is_member":0,"id":99742,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"天津 ","company":"科技","slogan":"All for one,one for all","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8b5fa550-db3d-43f9-a45c-bdaca2dcc491.png?imageMogr2/auto-orient/format/jpg/crop/!484x484a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8b5fa550-db3d-43f9-a45c-bdaca2dcc491.png?imageMogr2/auto-orient/format/jpg/crop/!484x484a8a0","created_at":1414376815000,"last_logined_at":1436167058000,"global_key":"kevinlin","name":"kevinlin","name_pinyin":"","updated_at":1414376815000,"path":"/u/kevinlin","status":1,"is_member":0,"id":37474,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1987-06-09","location":"北京 海淀区","company":"10020","slogan":"个性签名","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/48f2b078-9e3b-4d00-bea5-ecc9d2a2505c.png","gravatar":"https://dn-coding-net-avatar.qbox.me/239c0825-71cf-4d1d-89f6-e7f22ff8db95.png","lavatar":"https://dn-coding-net-avatar.qbox.me/48f2b078-9e3b-4d00-bea5-ecc9d2a2505c.png","created_at":1430019086000,"last_logined_at":1434731377000,"global_key":"z__","name":"_z_","name_pinyin":"","updated_at":1430019086000,"path":"/u/z__","status":1,"is_member":0,"id":97932,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":8,"hot_tweet":{"id":59554,"owner_id":37549,"owner":{"sex":0,"birthday":"1991-01-01","location":"河南 平顶山","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","gravatar":"https://dn-coding-net-avatar.qbox.me/82fd233b-6fc2-4537-8197-69f5b9fc2391.png","lavatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","created_at":1414393497000,"last_logined_at":1435737068000,"global_key":"binsee","name":"杉木","name_pinyin":"|sm|shanmu","updated_at":1414393497000,"path":"/u/binsee","status":1,"is_member":0,"id":37549,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010073000,"likes":1,"comments":5,"comment_list":[{"id":133490,"tweet_id":59554,"owner_id":37549,"owner":{"sex":0,"birthday":"1991-01-01","location":"河南 平顶山","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","gravatar":"https://dn-coding-net-avatar.qbox.me/82fd233b-6fc2-4537-8197-69f5b9fc2391.png","lavatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","created_at":1414393497000,"last_logined_at":1435737068000,"global_key":"binsee","name":"杉木","name_pinyin":"|sm|shanmu","updated_at":1414393497000,"path":"/u/binsee","status":1,"is_member":0,"id":37549,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437022391000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/jaysun\" rel\u003d\"nofollow\"\u003e@卡基猫\u003c/a\u003e , \u003ca class\u003d\"at-someone\" href\u003d\"/u/liuxey\" rel\u003d\"nofollow\"\u003e@Liuxey\u003c/a\u003e 你们懂的好多..."},{"id":133374,"tweet_id":59554,"owner_id":2530,"owner":{"sex":2,"birthday":"2014-07-22","location":"江苏 苏州","company":"","slogan":"冗码一生(13:28)","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a2fbe81e-5f9e-4e55-b09b-87c875c18cd7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1406006889000,"last_logined_at":1437033413000,"global_key":"liuxey","name":"Liuxey","name_pinyin":"","updated_at":1406006889000,"path":"/u/liuxey","status":1,"is_member":0,"id":2530,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437011075000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/jaysun\" rel\u003d\"nofollow\"\u003e@卡基猫\u003c/a\u003e 我的意思就是这个。。。"},{"id":133370,"tweet_id":59554,"owner_id":2455,"owner":{"sex":2,"birthday":"1990-05-04","location":"北京","company":"永希","slogan":"https://a-hope.cn","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","created_at":1405998676000,"last_logined_at":1436187451000,"global_key":"jaysun","name":"卡基猫","name_pinyin":"|kjm|kajimao","updated_at":1405998676000,"path":"/u/jaysun","status":1,"is_member":0,"id":2455,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010921000,"content":"但流血不是七天啊"},{"id":133369,"tweet_id":59554,"owner_id":2455,"owner":{"sex":2,"birthday":"1990-05-04","location":"北京","company":"永希","slogan":"https://a-hope.cn","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","created_at":1405998676000,"last_logined_at":1436187451000,"global_key":"jaysun","name":"卡基猫","name_pinyin":"|kjm|kajimao","updated_at":1405998676000,"path":"/u/jaysun","status":1,"is_member":0,"id":2455,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010910000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/liuxey\" rel\u003d\"nofollow\"\u003e@Liuxey\u003c/a\u003e 经期一般是七天。。"},{"id":133368,"tweet_id":59554,"owner_id":2530,"owner":{"sex":2,"birthday":"2014-07-22","location":"江苏 苏州","company":"","slogan":"冗码一生(13:28)","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a2fbe81e-5f9e-4e55-b09b-87c875c18cd7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/711ead7c-bda5-4097-ad56-3bc4e535d75e.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1406006889000,"last_logined_at":1437033413000,"global_key":"liuxey","name":"Liuxey","name_pinyin":"","updated_at":1406006889000,"path":"/u/liuxey","status":1,"is_member":0,"id":2530,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437010779000,"content":"为什么要七天。。。"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/312\" rel\u003d\"nofollow\"\u003e#每日一乐#\u003c/a\u003e   闺蜜说:“这个世界上估计只有男人才会得晕血症吧!”\u003cbr\u003e\u003cbr\u003e  我问:“为什么呢?”\u003cbr\u003e\u003cbr\u003e  闺蜜说:“要是女人得晕血症,一个月要晕7天呢!”\u003c/p\u003e","path":"/u/binsee/pp/59554","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1985-01-01","location":"广东 广州","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ed58d4ae-e17e-48fd-9f49-eeba3b26589a.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","created_at":1430075407000,"last_logined_at":1436791946000,"global_key":"bumy","name":"riverlong","name_pinyin":"","updated_at":1430075407000,"path":"/u/bumy","status":1,"is_member":0,"id":98041,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"每日一乐","created_at":1434856286000,"id":312,"user_list":[{"sex":1,"birthday":"1993-08-21","location":"四川 成都","company":"成都方米科技有限公司","slogan":"我是一枚","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9155a097-f4d8-4ee3-91dc-2df92b0954d2.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/d10efda1-73e9-418e-89e2-e0de56f029e7.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/9155a097-f4d8-4ee3-91dc-2df92b0954d2.jpg","created_at":1430990335000,"last_logined_at":1436439646000,"global_key":"abc-com","name":"DaisyYang","name_pinyin":"","updated_at":1430990335000,"path":"/u/abc-com","status":1,"is_member":0,"id":100051,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/706eb577-6a88-464d-b635-e759067019d6.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1434507370000,"last_logined_at":1436411863000,"global_key":"jpr1990","name":"jpr1990","name_pinyin":"","updated_at":1434507370000,"path":"/u/jpr1990","status":1,"is_member":0,"id":108268,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-02-28","location":"北京 ","company":"36Kr","slogan":"如果爱我就不要离开我~","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/65b08186-949e-4ece-9fb8-64e640ca0115.png?imageMogr2/auto-orient/format/png/crop/!155x155a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/b902ad6d-e908-4487-b0b7-48795a95d177.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/65b08186-949e-4ece-9fb8-64e640ca0115.png?imageMogr2/auto-orient/format/png/crop/!155x155a0a0","created_at":1431348077000,"last_logined_at":1437029991000,"global_key":"36kr","name":"36kr","name_pinyin":"","updated_at":1431348077000,"path":"/u/36kr","status":1,"is_member":0,"id":100761,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1997-01-28","location":"广东 梅州","company":"盛夏游戏工作室","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/583713de-9669-4f78-85b4-75ee3a7c28ad.jpg?imageMogr2/auto-orient/format/jpeg/crop/!240x240a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/0c96e409-da6b-4a3e-8e05-8a54e14f4ae4.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/583713de-9669-4f78-85b4-75ee3a7c28ad.jpg?imageMogr2/auto-orient/format/jpeg/crop/!240x240a0a0","created_at":1428286874000,"last_logined_at":1436234486000,"global_key":"951203598","name":"951203598","name_pinyin":"","updated_at":1428286874000,"path":"/u/951203598","status":1,"is_member":0,"id":92390,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-10-31","location":"江苏 苏州","company":"pinklian","slogan":"Making Love Out of Nothing at All","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d1002613-b448-4a91-8a5f-16fac8ebdf49.jpg?imageMogr2/auto-orient/format/jpeg/crop/!412x412a16a388","created_at":1413989470000,"last_logined_at":1436850094000,"global_key":"desmond","name":"desmond","name_pinyin":"","updated_at":1413989470000,"path":"/u/desmond","status":1,"is_member":0,"id":36755,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1900-01-19","location":"安徽 六安","company":"上海米途信息科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b42a5fd1-e37e-402a-9a51-dda8d7805035.jpg?imageMogr2/auto-orient/format/jpeg/crop/!390x390a10a10","gravatar":"https://dn-coding-net-avatar.qbox.me/d83bb38d-537a-450d-a219-9633b514bbbf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b42a5fd1-e37e-402a-9a51-dda8d7805035.jpg?imageMogr2/auto-orient/format/jpeg/crop/!390x390a10a10","created_at":1432003073000,"last_logined_at":1436783776000,"global_key":"aakng","name":"aakng","name_pinyin":"","updated_at":1432003073000,"path":"/u/aakng","status":1,"is_member":0,"id":102068,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-01-01","location":"河南 平顶山","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","gravatar":"https://dn-coding-net-avatar.qbox.me/82fd233b-6fc2-4537-8197-69f5b9fc2391.png","lavatar":"https://dn-coding-net-avatar.qbox.me/bd403248-9417-4b4b-b796-9ec87d91199f.png","created_at":1414393497000,"last_logined_at":1435737068000,"global_key":"binsee","name":"杉木","name_pinyin":"|sm|shanmu","updated_at":1414393497000,"path":"/u/binsee","status":1,"is_member":0,"id":37549,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1995-07-24","location":"四川 成都","company":"打杂集团创始人兼首席执行官兼董事长","slogan":"从众是平庸的开始","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7e648364-e13b-4d46-9cb4-cfdcec893d38.jpg?imageMogr2/auto-orient/format/jpeg/crop/!281x281a123a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7e648364-e13b-4d46-9cb4-cfdcec893d38.jpg?imageMogr2/auto-orient/format/jpeg/crop/!281x281a123a0","created_at":1417079181000,"last_logined_at":1437009978000,"global_key":"tian_q","name":"一花一叶是菩提","name_pinyin":"|yhyyspt|yihuayiyeshiputi","updated_at":1417079181000,"path":"/u/tian_q","status":1,"is_member":0,"id":48651,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":30,"hot_tweet":{"id":59550,"owner_id":42283,"owner":{"sex":0,"birthday":"1992-04-26","location":"广东 深圳","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","created_at":1415842099000,"last_logined_at":1436967252000,"global_key":"cuminlo","name":"cuminlo","name_pinyin":"","updated_at":1415842099000,"path":"/u/cuminlo","status":1,"is_member":0,"id":42283,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437009277000,"likes":0,"comments":3,"comment_list":[{"id":133383,"tweet_id":59550,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437012115000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/cuminlo\" rel\u003d\"nofollow\"\u003e@cuminlo\u003c/a\u003e 是水泡没有了,有质量的冒泡还是有推荐得码币的"},{"id":133379,"tweet_id":59550,"owner_id":42283,"owner":{"sex":0,"birthday":"1992-04-26","location":"广东 深圳","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","created_at":1415842099000,"last_logined_at":1436967252000,"global_key":"cuminlo","name":"cuminlo","name_pinyin":"","updated_at":1415842099000,"path":"/u/cuminlo","status":1,"is_member":0,"id":42283,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437011795000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 被你一说发现了。 冒泡没有了么?"},{"id":133360,"tweet_id":59550,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437009930000,"content":"难道没发现现在水泡没码币了么"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/288\" rel\u003d\"nofollow\"\u003e#为了码币#\u003c/a\u003e ma bi\u003c/p\u003e","path":"/u/cuminlo/pp/59550","activity_id":0,"liked":false,"like_users":[]},"name":"为了码币","created_at":1434204235000,"id":288,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"不coding非码农","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b800825d17736051cc68dd6a5343f3ce.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b800825d17736051cc68dd6a5343f3ce.png","created_at":1408324753000,"last_logined_at":1436068674000,"global_key":"zybupt","name":"zybupt","name_pinyin":"","updated_at":1408324753000,"path":"/u/zybupt","status":1,"is_member":0,"id":12620,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-6.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-6.png","created_at":1408006885000,"last_logined_at":1436780464000,"global_key":"Mr_right","name":"Mr_right","name_pinyin":"","updated_at":1408006885000,"path":"/u/Mr_right","status":1,"is_member":0,"id":10208,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-11-09","location":"北京 海淀区","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-1.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-1.png","created_at":1411703062000,"last_logined_at":1436778015000,"global_key":"darren_wang","name":"王伟","name_pinyin":"|wangwei|ww","updated_at":1411703062000,"path":"/u/darren_wang","status":1,"is_member":0,"id":33094,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-11-19","location":"","company":"","slogan":"没事瞎折腾","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"https://dn-coding-net-avatar.qbox.me/1c6b907a-ad1b-4c85-b3cb-f8e7338d9873.jpg","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1427522739000,"last_logined_at":1435660771000,"global_key":"Kepp","name":"Kepp","name_pinyin":"","updated_at":1427522739000,"path":"/u/Kepp","status":1,"is_member":0,"id":89067,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-11-05","location":"安徽 合肥","company":"中擎","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-8.png","gravatar":"https://dn-coding-net-avatar.qbox.me/2c6c1af6-e8bd-4f26-9987-2c76d66cb94d.jpg","lavatar":"/static/fruit_avatar/Fruit-8.png","created_at":1433906667000,"last_logined_at":1435224039000,"global_key":"newley1105","name":"newley1105","name_pinyin":"","updated_at":1433906667000,"path":"/u/newley1105","status":1,"is_member":0,"id":107032,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 徐汇区","company":"","slogan":"不翻墙搜Google www.886404.org","introduction":"","avatar":"/static/fruit_avatar/Fruit-19.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-19.png","created_at":1408153237000,"last_logined_at":1434985959000,"global_key":"fising","name":"fising","name_pinyin":"","updated_at":1408153237000,"path":"/u/fising","status":1,"is_member":0,"id":11977,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1999-08-18","location":"天津 西青区","company":"打杂","slogan":"打杂","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ae033658-9214-49b5-97c4-ed5af842be07.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ac1fd523-418b-4cff-a0f8-bcf5f5c31784.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ae033658-9214-49b5-97c4-ed5af842be07.jpg?imageMogr2/auto-orient/format/jpeg/crop/!600x600a0a0","created_at":1423120668000,"last_logined_at":1437049106313,"global_key":"longsichao","name":"隆斯朝","name_pinyin":"|lsc|longsichao","updated_at":1423120668000,"path":"/u/longsichao","status":1,"is_member":0,"id":79835,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-04-30","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/3ff266cd-f806-41dc-bb32-884d4166e5f6.jpg?imageMogr2/auto-orient/format/jpeg/crop/!358x358a160a6","gravatar":"https://dn-coding-net-avatar.qbox.me/4ba3bc8f-351b-46fc-8fa7-88412f49725d.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/3ff266cd-f806-41dc-bb32-884d4166e5f6.jpg?imageMogr2/auto-orient/format/jpeg/crop/!358x358a160a6","created_at":1433751124000,"last_logined_at":1436860265000,"global_key":"Miloer","name":"Miloer","name_pinyin":"","updated_at":1433751124000,"path":"/u/Miloer","status":1,"is_member":0,"id":106695,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1999-01-01","location":"山东 淄博","company":"在校学生","slogan":"Nothing is absolute.","introduction":"","avatar":"/static/fruit_avatar/Fruit-1.png","gravatar":"https://dn-coding-net-avatar.qbox.me/2110b6a2-f244-47c4-8b97-8f5fc3ebe481.jpg","lavatar":"/static/fruit_avatar/Fruit-1.png","created_at":1424637774000,"last_logined_at":1435598200000,"global_key":"ephoton","name":"Apriky","name_pinyin":"","updated_at":1424637774000,"path":"/u/ephoton","status":1,"is_member":0,"id":81669,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":25,"hot_tweet":{"id":59643,"owner_id":79236,"owner":{"sex":0,"birthday":"1985-01-01","location":"山东 临沂","company":"临沂宁可网络","slogan":"有我更精彩","introduction":"","avatar":"/static/fruit_avatar/Fruit-15.png","gravatar":"https://dn-coding-net-avatar.qbox.me/81e0f2cd-dba8-47e7-97c3-7cf728cdf184.jpg","lavatar":"/static/fruit_avatar/Fruit-15.png","created_at":1422840787000,"last_logined_at":1435983829000,"global_key":"lidw","name":"lidw","name_pinyin":"","updated_at":1422840787000,"path":"/u/lidw","status":1,"is_member":0,"id":79236,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437028776000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/391\" rel\u003d\"nofollow\"\u003e#来点音乐#\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/sleepy.png\" title\u003d\"sleepy\"\u003e\u003c/p\u003e","path":"/u/lidw/pp/59643","activity_id":0,"liked":false,"like_users":[]},"name":"来点音乐","created_at":1436317386000,"id":391,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"四川 成都","company":"汇通天下","slogan":"用穿越春夏秋冬的坚持,去创造和享受美好的事物","introduction":"","avatar":"/static/fruit_avatar/Fruit-10.png","gravatar":"https://dn-coding-net-avatar.qbox.me/d909aa07-bf14-4d6e-be99-966e1a6e994d.jpg","lavatar":"/static/fruit_avatar/Fruit-10.png","created_at":1422500345000,"last_logined_at":1436867508000,"global_key":"wyqbailey","name":"wyqbailey","name_pinyin":"","updated_at":1422500345000,"path":"/u/wyqbailey","status":1,"is_member":0,"id":78678,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"广东 深圳","company":"Coding.net","slogan":"大圣赐我火眼金睛发现一切BUG 。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/5c1769a9-9acd-47c5-963b-29a933d910f3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","created_at":1433735819000,"last_logined_at":1437046822137,"global_key":"zhct","name":"zhct","name_pinyin":"","updated_at":1433735819000,"path":"/u/zhct","status":1,"is_member":0,"id":106621,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-04-24","location":"河北 廊坊","company":"微度网络科技","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/c7f4d93144536315c0c5d3e2f41502ee.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/c7f4d93144536315c0c5d3e2f41502ee.jpg","created_at":1406170973000,"last_logined_at":1436568771000,"global_key":"widuu","name":"widuu","name_pinyin":"","updated_at":1406170973000,"path":"/u/widuu","status":1,"is_member":0,"id":3405,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-07-28","location":"江苏 常州","company":"风豪科技","slogan":"挥舞着大宝剑的屠龙战士","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b1b923bf-ea48-473f-9907-e76910b088a7.png?imageMogr2/auto-orient/format/png/crop/!476x476a307a18","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b1b923bf-ea48-473f-9907-e76910b088a7.png?imageMogr2/auto-orient/format/png/crop/!476x476a307a18","created_at":1415925645000,"last_logined_at":1436694267000,"global_key":"sevenbanana","name":"sevenbanana","name_pinyin":"","updated_at":1415925645000,"path":"/u/sevenbanana","status":1,"is_member":0,"id":43183,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-11-20","location":"山东 淄博","company":"","slogan":"微笑待人,心中却操翻全世界。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/505374ef-5edf-4db1-b62f-bfd33256ce22.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a1a1","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/505374ef-5edf-4db1-b62f-bfd33256ce22.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a1a1","created_at":1407745110000,"last_logined_at":1437031181000,"global_key":"pangzhen","name":"庞震","name_pinyin":"|pz|pangzhen","updated_at":1407745110000,"path":"/u/pangzhen","status":1,"is_member":0,"id":8459,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-05-11","location":"四川 成都","company":"一袋","slogan":"everything will be ok","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ebe778ec-db00-4304-9675-31f422118ae9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!567x567a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/40f2bc16-26e4-439a-b6f4-d2704975bac8.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ebe778ec-db00-4304-9675-31f422118ae9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!567x567a0a0","created_at":1409212210000,"last_logined_at":1436620909000,"global_key":"imzhi","name":"imzhi","name_pinyin":"","updated_at":1409212210000,"path":"/u/imzhi","status":1,"is_member":0,"id":25949,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-5.png","gravatar":"https://dn-coding-net-avatar.qbox.me/8c4116e9-17b4-40c4-a291-589c59b70e21.jpg","lavatar":"/static/fruit_avatar/Fruit-5.png","created_at":1426649728000,"last_logined_at":1436665474000,"global_key":"JUN1991","name":"JUN1991","name_pinyin":"","updated_at":1426649728000,"path":"/u/JUN1991","status":1,"is_member":0,"id":85691,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-4.png","gravatar":"https://dn-coding-net-avatar.qbox.me/ad51f196-9407-4676-9015-b48c2cb931a1.jpg","lavatar":"/static/fruit_avatar/Fruit-4.png","created_at":1436257583000,"last_logined_at":1436495431000,"global_key":"wangrr","name":"wangrr","name_pinyin":"","updated_at":1436257583000,"path":"/u/wangrr","status":1,"is_member":0,"id":112206,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":27,"hot_tweet":{"id":59677,"owner_id":95080,"owner":{"sex":0,"birthday":"2015-03-13","location":"四川 成都","company":"西南交通大学","slogan":"all for one\u0026one for all","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/13fbf842-10d1-422b-84b5-f010b35a8320.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/13fbf842-10d1-422b-84b5-f010b35a8320.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/13fbf842-10d1-422b-84b5-f010b35a8320.jpg","created_at":1428937098000,"last_logined_at":1437036414000,"global_key":"leov","name":"leov","name_pinyin":"","updated_at":1428937098000,"path":"/u/leov","status":1,"is_member":0,"id":95080,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437036538000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/383\" rel\u003d\"nofollow\"\u003e#码市#\u003c/a\u003e coding的状态中\u003c/p\u003e","path":"/u/leov/pp/59677","activity_id":0,"liked":false,"like_users":[]},"name":"码市","created_at":1436168268000,"id":383,"user_list":[{"sex":1,"birthday":"1992-08-18","location":"四川 成都","company":"伯德梦想","slogan":"什么事慢慢来,不要催。","introduction":"","avatar":"/static/fruit_avatar/Fruit-10.png","gravatar":"https://dn-coding-net-avatar.qbox.me/fbf8911e-a297-4aff-9372-1cc85bc81a6f.jpg","lavatar":"/static/fruit_avatar/Fruit-10.png","created_at":1428544838000,"last_logined_at":1436083491000,"global_key":"zhaoxiaoling","name":"zhaoxiaoling","name_pinyin":"","updated_at":1428544838000,"path":"/u/zhaoxiaoling","status":1,"is_member":0,"id":93599,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-12-07","location":"广东 广州","company":"在路上","slogan":"你猜","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","created_at":1412759505000,"last_logined_at":1437012838000,"global_key":"seekwe","name":"seekwe","name_pinyin":"","updated_at":1412759505000,"path":"/u/seekwe","status":1,"is_member":0,"id":34258,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-01-01","location":"广东 深圳","company":"平安科技","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/f0ecaa35-cd7a-4633-8aaa-f10847ed1943.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1435233051000,"last_logined_at":1436420838000,"global_key":"jasondu","name":"jasondu","name_pinyin":"","updated_at":1435233051000,"path":"/u/jasondu","status":1,"is_member":0,"id":109725,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 浦东新区","company":"Hi Team","slogan":"我的代码我做主","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/3ffb4c23-c211-4d07-9021-a9f9bb5ddcef.PNG?imageMogr2/auto-orient/format/png/crop/!387x387a28a5","gravatar":"https://dn-coding-net-avatar.qbox.me/7507595b-7698-4b82-9c1c-30e424e81215.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/3ffb4c23-c211-4d07-9021-a9f9bb5ddcef.PNG?imageMogr2/auto-orient/format/png/crop/!387x387a28a5","created_at":1423468244000,"last_logined_at":1436939408000,"global_key":"peterjc","name":"peterjc","name_pinyin":"","updated_at":1423468244000,"path":"/u/peterjc","status":1,"is_member":0,"id":80427,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-5.png","gravatar":"https://dn-coding-net-avatar.qbox.me/8c4116e9-17b4-40c4-a291-589c59b70e21.jpg","lavatar":"/static/fruit_avatar/Fruit-5.png","created_at":1426649728000,"last_logined_at":1436665474000,"global_key":"JUN1991","name":"JUN1991","name_pinyin":"","updated_at":1426649728000,"path":"/u/JUN1991","status":1,"is_member":0,"id":85691,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1983-01-24","location":"四川 成都","company":"成都心动云科技有限公司","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/b8834e515dcb433c20951961967b8d8d.jpg","created_at":1405563080000,"last_logined_at":1436932265000,"global_key":"itimothy","name":"itimothy","name_pinyin":"","updated_at":1405563080000,"path":"/u/itimothy","status":1,"is_member":0,"id":916,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-10-06","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"https://dn-coding-net-avatar.qbox.me/2e57547e-c365-4c32-84cb-69591a24cc62.jpg","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1416285401000,"last_logined_at":1436345301000,"global_key":"zhhw9210","name":"沙壤土","name_pinyin":"|srt|sharangtu","updated_at":1416285401000,"path":"/u/zhhw9210","status":1,"is_member":0,"id":45375,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1992-04-26","location":"广东 深圳","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/501148c6-da3e-4312-a3ca-6127211122b3.jpg?imageMogr2/auto-orient/format/jpeg/crop/!543x543a0a0","created_at":1415842099000,"last_logined_at":1436967252000,"global_key":"cuminlo","name":"cuminlo","name_pinyin":"","updated_at":1415842099000,"path":"/u/cuminlo","status":1,"is_member":0,"id":42283,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1989-08-17","location":"广东深圳","company":"官方打杂妹","slogan":"我就是潘潘潘潘潘哈哈","introduction":"恩","avatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","created_at":1399839374000,"last_logined_at":1436491923000,"global_key":"panpan","name":"潘潘","name_pinyin":"|pp|panpan","updated_at":1399839374000,"path":"/u/panpan","status":1,"is_member":0,"id":15,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":6,"hot_tweet":{"id":59501,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436976162000,"likes":0,"comments":1,"comment_list":[{"id":133270,"tweet_id":59501,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436976327000,"content":"圖過不來…一會兒補上"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e綠皮車今非昔比,這節綠皮車不僅是臥鋪,還是軟臥,而且還是高級軟臥!一共八個包廂,每個包廂兩張床,裡面有沙發和衛生間,床腳有個顯示器。 \u003ca class\u003d\"topic\" href\u003d\"/pp/topic/24\" rel\u003d\"nofollow\"\u003e#coding #\u003c/a\u003e 行 \u003ca href\u003d\"http://t.cn/RLtHcFo\" target\u003d\"_blank\" class\u003d\" auto-link\" rel\u003d\"nofollow\"\u003ehttp://t.cn/RLtHcFo\u003c/a\u003e\u003c/p\u003e","path":"/u/fwolf/pp/59501","activity_id":0,"liked":false,"like_users":[]},"name":"coding","created_at":1429625299000,"id":24,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"","company":"sdut","slogan":"sdut","introduction":"","avatar":"/static/fruit_avatar/Fruit-20.png","gravatar":"https://dn-coding-net-avatar.qbox.me/0f58a707-578a-43c8-a35c-d21c14944d94.jpg","lavatar":"/static/fruit_avatar/Fruit-20.png","created_at":1433674552000,"last_logined_at":1436841045000,"global_key":"zhuna","name":"zhuna","name_pinyin":"","updated_at":1433674552000,"path":"/u/zhuna","status":1,"is_member":0,"id":106469,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-12-06","location":"江苏 无锡","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/2212a32f00cca72b5561aef00ebb5dc7.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/2212a32f00cca72b5561aef00ebb5dc7.png","created_at":1408351432000,"last_logined_at":1436708505000,"global_key":"timothyqiu","name":"timothyqiu","name_pinyin":"","updated_at":1408351432000,"path":"/u/timothyqiu","status":1,"is_member":0,"id":13153,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1996-01-29","location":"吉林 长春","company":"无","slogan":"null","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5633b9d2-8cbf-497e-b4c3-8bf0bca40ed7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5633b9d2-8cbf-497e-b4c3-8bf0bca40ed7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1408532116000,"last_logined_at":1436077557000,"global_key":"kingwl","name":"kingwl","name_pinyin":"","updated_at":1408532116000,"path":"/u/kingwl","status":1,"is_member":0,"id":15134,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"Coding my life...","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/65e692ec-66c2-4732-9b8e-937189590f01.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/b89b7a59-3148-4751-a9ff-5f696b1218cc.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/65e692ec-66c2-4732-9b8e-937189590f01.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1435375435000,"last_logined_at":1437009402000,"global_key":"donychen","name":"donychen","name_pinyin":"","updated_at":1435375435000,"path":"/u/donychen","status":1,"is_member":0,"id":110001,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":58096,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436534710000,"likes":0,"comments":14,"comment_list":[{"id":131485,"tweet_id":58096,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436596385000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 不和你們這些遊山玩水的傢伙們夜話…"},{"id":131458,"tweet_id":58096,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436587046000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/fwolf\" rel\u003d\"nofollow\"\u003e@Fwolf\u003c/a\u003e 时间是周五晚上 地点还在考虑要不要现场直播"},{"id":131457,"tweet_id":58096,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436587012000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/djyuning\" rel\u003d\"nofollow\"\u003e@妖刀\u003c/a\u003e 嘉宾现在正在游山玩水"},{"id":131390,"tweet_id":58096,"owner_id":94169,"owner":{"sex":0,"birthday":"1987-08-20","location":"重庆 大渡口区","company":"tPeriod Tech","slogan":"奇迹总会发生在我身上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b02065e5-c6db-472d-8cff-d3da20da492a.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!541x541a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/aa4592ce-cda4-442a-9abb-4269dc018ce0.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b02065e5-c6db-472d-8cff-d3da20da492a.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!541x541a0a0","created_at":1428641852000,"last_logined_at":1436495272000,"global_key":"djyuning","name":"妖刀","name_pinyin":"|yd|yaodao","updated_at":1428641852000,"path":"/u/djyuning","status":1,"is_member":0,"id":94169,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436570332000,"content":"嘉宾不会是听错了吧?跑深山架篝火去啦?呵呵"},{"id":131330,"tweet_id":58096,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436539688000,"content":"本泡应该浮动在水面\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/376\" rel\u003d\"nofollow\"\u003e#Coding 夜话#\u003c/a\u003e \u003c/p\u003e \n\u003ch3 id\u003d\"user-content-coding-夜话推迟一周发布\"\u003eCoding 夜话推迟一周发布\u003c/h3\u003e \n\u003cp\u003e各位泡友,抱歉的通知,由于本期夜话的嘉宾还深陷深山老林,暂时无法回归人类社会,故夜话推迟到下周五。对此我深表歉意和感到遗憾。\u003c/p\u003e","path":"/u/kloze/pp/58096","activity_id":0,"liked":false,"like_users":[]},"name":"Coding 夜话","created_at":1435931535000,"id":376,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":9,"hot_tweet":{"id":59310,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436928380000,"likes":1,"comments":9,"comment_list":[{"id":133015,"tweet_id":59310,"owner_id":54212,"owner":{"sex":0,"birthday":"1994-08-31","location":"江苏 南京","company":"幕(木)游(有)公司","slogan":"做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","created_at":1418705066000,"last_logined_at":1436600011000,"global_key":"Morph_Zhou","name":"Morph_Zhou","name_pinyin":"","updated_at":1418705066000,"path":"/u/Morph_Zhou","status":1,"is_member":0,"id":54212,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436940181000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 然而已经没有了.."},{"id":133013,"tweet_id":59310,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436940114000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/Morph_Zhou\" rel\u003d\"nofollow\"\u003e@Morph_Zhou\u003c/a\u003e 资源自行搜索。。"},{"id":133000,"tweet_id":59310,"owner_id":54212,"owner":{"sex":0,"birthday":"1994-08-31","location":"江苏 南京","company":"幕(木)游(有)公司","slogan":"做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","created_at":1418705066000,"last_logined_at":1436600011000,"global_key":"Morph_Zhou","name":"Morph_Zhou","name_pinyin":"","updated_at":1418705066000,"path":"/u/Morph_Zhou","status":1,"is_member":0,"id":54212,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436937842000,"content":"资源资源...."},{"id":132952,"tweet_id":59310,"owner_id":107805,"owner":{"sex":1,"birthday":"1990-11-06","location":"广西 柳州","company":"昊客","slogan":"然并卵,微博@爱抠鼻屎的怪大婶","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/2c589fcd-b33f-4688-ac0d-5cc3f88d3ca3.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/0a63d54a-1ab0-4c75-8214-f161423626a5.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/2c589fcd-b33f-4688-ac0d-5cc3f88d3ca3.jpg","created_at":1434335589000,"last_logined_at":1436863461000,"global_key":"annakia","name":"annakia","name_pinyin":"","updated_at":1434335589000,"path":"/u/annakia","status":1,"is_member":0,"id":107805,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436931341000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 啊。难道我记错了是4分钟?"},{"id":132949,"tweet_id":59310,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436931235000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/annakia\" rel\u003d\"nofollow\"\u003e@annakia\u003c/a\u003e 我擦。。还有10分钟?"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/424\" rel\u003d\"nofollow\"\u003e#优衣库#\u003c/a\u003e \u003c/p\u003e \n\u003ch4 id\u003d\"user-content-对于不知道优衣库的同学,这里集合贴\"\u003e对于不知道优衣库的同学,这里集合贴\u003c/h4\u003e \n\u003cp\u003e\u003ca href\u003d\"http://mp.weixin.qq.com/s?__biz\u003dMzA4MTMyMDEwNg\u003d\u003d\u0026amp;mid\u003d208239752\u0026amp;idx\u003d1\u0026amp;sn\u003d62f7df610d36b12fc8ca089561755d1a\u0026amp;scene\u003d1\u0026amp;key\u003dc76941211a49ab58fd8a9a4fb5cb54c29b2fbcd67766f7c8c942aff14ebf902fbe25ab4ea4a53af2ffb38b9d1eac15f4\u0026amp;ascene\u003d0\u0026amp;uin\u003dMjM2MDQwNjU%3D\u0026amp;devicetype\u003diMac+MacBookPro11\" target\u003d\"_blank\" class\u003d\" auto-link\" rel\u003d\"nofollow\"\u003ehttp://mp.weixin.qq.com/s?__biz\u003dMzA4MTMyMDEwNg\u003d\u003d\u0026amp;mid\u003d208239752\u0026amp;idx\u003d1\u0026amp;sn\u003d62f7df610d36b12fc8ca089561755d1a\u0026amp;scene\u003d1\u0026amp;key\u003dc76941211a49ab58fd8a9a4fb5cb54c29b2fbcd67766f7c8c942aff14ebf902fbe25ab4ea4a53af2ffb38b9d1eac15f4\u0026amp;ascene\u003d0\u0026amp;uin\u003dMjM2MDQwNjU%253D%26devicetype%3DiMac+MacBookPro11%2C1+OSX+OSX+10.10.3+build(14D136)\u0026amp;version\u003d11020012\u0026amp;pass_ticket\u003dolGiuWJhoCKfQrMX2WKOUC08QSo4wAJOiAUXi1K7FcM%3D\u003c/a\u003e\u003c/p\u003e","path":"/u/kloze/pp/59310","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1993-12-03","location":"北京 石景山区","company":"博看文思","slogan":"......","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e4d1302-3276-43b4-9ee8-cbbae8fd9633.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/76d6805f-0181-4bb4-95a1-82add25d161f.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/0e4d1302-3276-43b4-9ee8-cbbae8fd9633.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1420375111000,"last_logined_at":1436499437000,"global_key":"wangkang","name":"王康","name_pinyin":"|wangkang|wk","updated_at":1420375111000,"path":"/u/wangkang","status":1,"is_member":0,"id":68838,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"优衣库","created_at":1436927129000,"id":424,"user_list":[{"sex":1,"birthday":"1989-10-13","location":"河南 焦作","company":"","slogan":"前端开发 加油!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/437af37d-94db-4028-8846-f0cfe8ef46f1.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/28d632af-e4da-4f64-8797-03ef16aee603.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/437af37d-94db-4028-8846-f0cfe8ef46f1.jpg","created_at":1425371492000,"last_logined_at":1437031269000,"global_key":"2ni","name":"2ni","name_pinyin":"","updated_at":1425371492000,"path":"/u/2ni","status":1,"is_member":0,"id":83165,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1970-01-01","location":"上海 浦东新区","company":"","slogan":"即使再渺小,也要不顾一切地成长! http://raoyc.com","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/8dc8714c-5f6f-4e4b-8564-83afda50c712.jpg?imageMogr2/auto-orient/format/jpeg/crop/!363x363a32a15","created_at":1405924724000,"last_logined_at":1437028982000,"global_key":"rao","name":"飞扬","name_pinyin":"|fy|feiyang","updated_at":1405924724000,"path":"/u/rao","status":1,"is_member":0,"id":2279,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-01-01","location":"江苏 南京","company":"南京安元科技有限公司","slogan":"好好学习,天天向上!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5db41905-efc1-4e35-94ff-21f5b9e7c625.png?imageMogr2/auto-orient/format/png/crop/!128x128a8a0","created_at":1417770252000,"last_logined_at":1437008173000,"global_key":"songyiwei","name":"这个人出现在","name_pinyin":"|zgrcxz|zhegerenchuxianzai","updated_at":1417770252000,"path":"/u/songyiwei","status":1,"is_member":0,"id":51246,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-13.png","gravatar":"https://dn-coding-net-avatar.qbox.me/706eb577-6a88-464d-b635-e759067019d6.jpg","lavatar":"/static/fruit_avatar/Fruit-13.png","created_at":1434507370000,"last_logined_at":1436411863000,"global_key":"jpr1990","name":"jpr1990","name_pinyin":"","updated_at":1434507370000,"path":"/u/jpr1990","status":1,"is_member":0,"id":108268,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-12-07","location":"广东 广州","company":"在路上","slogan":"你猜","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/60d61651-e9c5-4de2-9e84-5c2dd2c375fd.PNG?imageMogr2/auto-orient/format/jpeg/crop/!142x142a4a8","created_at":1412759505000,"last_logined_at":1437012838000,"global_key":"seekwe","name":"seekwe","name_pinyin":"","updated_at":1412759505000,"path":"/u/seekwe","status":1,"is_member":0,"id":34258,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1988-12-18","location":"江西 南昌","company":"上海裁软","slogan":"Study hard and make progress every day","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d7d4afe4-9440-4d2d-a141-62ff26c9a42b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!480x480a0a8","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/d7d4afe4-9440-4d2d-a141-62ff26c9a42b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!480x480a0a8","created_at":1405580241000,"last_logined_at":1436619815000,"global_key":"yvsh","name":"littleyue","name_pinyin":"","updated_at":1405580241000,"path":"/u/yvsh","status":1,"is_member":0,"id":1292,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":5,"hot_tweet":{"id":59612,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437023631000,"likes":4,"comments":1,"comment_list":[{"id":133523,"tweet_id":59612,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437026843000,"content":"新技能 get"}],"device":"OPPO Find7","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/335\" rel\u003d\"nofollow\"\u003e#gif#\u003c/a\u003e 【新技能get√】感觉自己终于能到很多地方了。\u003cbr\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/dd3a700f-ddb9-4ab9-a866-45b9f932ffad.gif\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/dd3a700f-ddb9-4ab9-a866-45b9f932ffad.gif\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/TXisfine/pp/59612","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1991-10-20","location":"湖北 武汉","company":"undefined,none,error.","slogan":"KISS","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","gravatar":"https://dn-coding-net-avatar.qbox.me/542aa98c-1183-442e-8744-907750cdddbb.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","created_at":1419861720000,"last_logined_at":1437038279000,"global_key":"wenki","name":"wenki","name_pinyin":"","updated_at":1419861720000,"path":"/u/wenki","status":1,"is_member":0,"id":64169,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1986-08-16","location":"山东 青岛","company":"保密","slogan":"有点想法很好,有点行动更好","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ea91de1-b5bc-45a0-b972-da612a9c08fb.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/500c922c-1b6b-4408-9296-5fe7c44a43bd.png","lavatar":"https://dn-coding-net-production-static.qbox.me/9ea91de1-b5bc-45a0-b972-da612a9c08fb.jpg","created_at":1409097666000,"last_logined_at":1437031418000,"global_key":"silverwing","name":"愚夫","name_pinyin":"|yf|yufu","updated_at":1409097666000,"path":"/u/silverwing","status":1,"is_member":0,"id":22811,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"gif","created_at":1435323487000,"id":335,"user_list":[{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1990-05-04","location":"北京","company":"永希","slogan":"https://a-hope.cn","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1d3476cac70c29fe779592a42ea7bff2.png","created_at":1405998676000,"last_logined_at":1436187451000,"global_key":"jaysun","name":"卡基猫","name_pinyin":"|kjm|kajimao","updated_at":1405998676000,"path":"/u/jaysun","status":1,"is_member":0,"id":2455,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1994-09-11","location":"广东 深圳","company":"","slogan":"Simplicity is the ultimate sophistication.","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/d0b84a18-3dde-43d7-b3e0-3ffbe785df90.png?imageMogr2/auto-orient/format/png/crop/!240x240a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/cd9a28a2-b6b6-4883-84ee-af727c01a662.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/d0b84a18-3dde-43d7-b3e0-3ffbe785df90.png?imageMogr2/auto-orient/format/png/crop/!240x240a0a0","created_at":1422087534000,"last_logined_at":1436842049000,"global_key":"chnhyg","name":"小模样儿","name_pinyin":"|xmye|xiaomoyanger","updated_at":1422087534000,"path":"/u/chnhyg","status":1,"is_member":0,"id":77755,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-06-10","location":"深圳","company":"Coding.net","slogan":"\u0026lt;img src\u003d1 onerror\u003dalert(1)\u0026gt;","introduction":"嗯?","avatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","gravatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","lavatar":"https://dn-coding-net-avatar.qbox.me/dc57e8be-3355-4c05-b1e1-c5e52be8e205.png","created_at":1399045331000,"last_logined_at":1437033487000,"global_key":"wzw","name":"wzw","name_pinyin":"","updated_at":1399045331000,"path":"/u/wzw","status":1,"is_member":0,"id":1,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":6,"hot_tweet":{"id":56708,"owner_id":65953,"owner":{"sex":0,"birthday":"1991-04-03","location":"江苏 南京","company":"南京厚建","slogan":"Stay Hungry, Stay Foolish! Be a B dever","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/89bd6ea6-3e6c-4cee-b44b-3690e3857713.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","created_at":1419996323000,"last_logined_at":1436884485000,"global_key":"milker","name":"Milker","name_pinyin":"","updated_at":1419996323000,"path":"/u/milker","status":1,"is_member":0,"id":65953,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436284641000,"likes":0,"comments":0,"comment_list":[],"device":"华为 荣耀6","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/371\" rel\u003d\"nofollow\"\u003e#爱码诗#\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/smiley.png\" title\u003d\"smiley\"\u003e\u003cimg class\u003d\"emotion monkey\" src\u003d\"https://coding.net/static/coding-emotions/coding-emoji-09.png\" title\u003d\"内急\"\u003e\u003c/p\u003e","path":"/u/milker/pp/56708","activity_id":0,"liked":false,"like_users":[]},"name":"爱码诗","created_at":1435855932000,"id":371,"user_list":[{"sex":0,"birthday":"1985-01-01","location":"山东 淄博","company":"sdut","slogan":"just coding ,just fun!","introduction":"","avatar":"/static/fruit_avatar/Fruit-11.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-11.png","created_at":1416744216000,"last_logined_at":1436710993000,"global_key":"lixinxing","name":"lixinxing","name_pinyin":"","updated_at":1416744216000,"path":"/u/lixinxing","status":1,"is_member":0,"id":47280,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"北京 朝阳区","company":"NSB","slogan":"刚兴趣的","introduction":"","avatar":"/static/fruit_avatar/Fruit-3.png","gravatar":"https://dn-coding-net-avatar.qbox.me/62a91da2-f336-4aac-bc68-b554ab383fc9.jpg","lavatar":"/static/fruit_avatar/Fruit-3.png","created_at":1421161473000,"last_logined_at":1437013178000,"global_key":"zhangyuhan","name":"zhangyuhan","name_pinyin":"","updated_at":1421161473000,"path":"/u/zhangyuhan","status":1,"is_member":0,"id":74975,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"sdut","slogan":"sdut","introduction":"","avatar":"/static/fruit_avatar/Fruit-20.png","gravatar":"https://dn-coding-net-avatar.qbox.me/0f58a707-578a-43c8-a35c-d21c14944d94.jpg","lavatar":"/static/fruit_avatar/Fruit-20.png","created_at":1433674552000,"last_logined_at":1436841045000,"global_key":"zhuna","name":"zhuna","name_pinyin":"","updated_at":1433674552000,"path":"/u/zhuna","status":1,"is_member":0,"id":106469,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-05-11","location":"广东 深圳","company":"森普航科","slogan":"xxx","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/8d6da319-d09a-41f9-b90d-28156bedd492.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/f972df9d-67d3-4b55-b845-99c266b10473.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/8d6da319-d09a-41f9-b90d-28156bedd492.jpg","created_at":1433677544000,"last_logined_at":1436939933000,"global_key":"yao1243","name":"yao1243","name_pinyin":"","updated_at":1433677544000,"path":"/u/yao1243","status":1,"is_member":0,"id":106476,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-04-03","location":"江苏 南京","company":"南京厚建","slogan":"Stay Hungry, Stay Foolish! Be a B dever","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/89bd6ea6-3e6c-4cee-b44b-3690e3857713.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/9190a6b7-1217-4108-b08b-be7f1819232b.jpg","created_at":1419996323000,"last_logined_at":1436884485000,"global_key":"milker","name":"Milker","name_pinyin":"","updated_at":1419996323000,"path":"/u/milker","status":1,"is_member":0,"id":65953,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1996-12-12","location":"江苏 ","company":"卖萌集团","slogan":"LL 大法好!舰C大法好!node大法好!nico大法好!nexus大法好!Coding大法好!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/15b151ef-2df1-457a-913f-ec62d7b536fd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!800x800a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15b151ef-2df1-457a-913f-ec62d7b536fd.jpg?imageMogr2/auto-orient/format/jpeg/crop/!800x800a0a0","created_at":1417169502000,"last_logined_at":1436696171000,"global_key":"luojia","name":"天朝冰冻型队长舰QAQ","name_pinyin":"|tcbdxdcj|tianchaobingdongxingduichangjian","updated_at":1417169502000,"path":"/u/luojia","status":1,"is_member":0,"id":49005,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":2,"hot_tweet":{"id":59432,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436957749000,"likes":1,"comments":5,"comment_list":[{"id":133240,"tweet_id":59432,"owner_id":50262,"owner":{"sex":0,"birthday":"1989-02-03","location":"河南 郑州","company":"郑州信源信息技术股份有限公司","slogan":"为啥不是挣钱的挣?","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ed0cc43b-3246-4a9c-8eb2-bb578d90c042.gif?imageMogr2/auto-orient/format/jpg/crop/!200x200a82a0","gravatar":"https://dn-coding-net-avatar.qbox.me/a30a816c-b7e9-491d-99ee-80fc41c8a152.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ed0cc43b-3246-4a9c-8eb2-bb578d90c042.gif?imageMogr2/auto-orient/format/jpg/crop/!200x200a82a0","created_at":1417580750000,"last_logined_at":1436971661000,"global_key":"kevinzheng","name":"啊郑","name_pinyin":"|az|azheng","updated_at":1417580750000,"path":"/u/kevinzheng","status":1,"is_member":0,"id":50262,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436972412000,"content":"0.01 马币到手"},{"id":133237,"tweet_id":59432,"owner_id":64057,"owner":{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436971634000,"content":"赶明天,俺试试"},{"id":133189,"tweet_id":59432,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436961310000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/linqun\" rel\u003d\"nofollow\"\u003e@孜然麻辣熊大大\u003c/a\u003e 有点用 每次下他家的软件很烦 必须注册 登录下载"},{"id":133176,"tweet_id":59432,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436958045000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/kloze\" rel\u003d\"nofollow\"\u003e@kloze\u003c/a\u003e 就是告诉Oracle我已经同意你的霸王条款了"},{"id":133173,"tweet_id":59432,"owner_id":52103,"owner":{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9ed11de3-65e3-4cd8-b6aa-5abe7285ab43.jpeg?imageMogr2/auto-orient/format/jpeg/crop/!209x209a0a0","created_at":1418124831000,"last_logined_at":1437045624844,"global_key":"kloze","name":"kloze","name_pinyin":"","updated_at":1418124831000,"path":"/u/kloze","status":1,"is_member":0,"id":52103,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436957797000,"content":"绕过注册 \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/smile.png\" title\u003d\"smile\"\u003e"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/385\" rel\u003d\"nofollow\"\u003e#熊大大小课堂#\u003c/a\u003e 下载Oracle官方JDK\u003cbr\u003e 只需要加个Header就可以了\u003cbr\u003e Example:\u003c/p\u003e \n\u003cpre\u003e\u003ccode\u003ewget --no-check-certificate --no-cookies --header \"Cookie: oraclelicense\u003daccept-securebackup-cookie\" http://download.oracle.com/otn-pub/java/jdk/8u51-b16/jdk-8u51-linux-x64.rpm\n\u003c/code\u003e\u003c/pre\u003e","path":"/u/linqun/pp/59432","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"熊大大小课堂","created_at":1436238476000,"id":385,"user_list":[{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1998-05-15","location":"江苏 苏州","company":"","slogan":"逗比","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ff6be095-d349-4ce6-94c1-92649f549e53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a178a0","gravatar":"https://dn-coding-net-avatar.qbox.me/b40d153e-5bc3-49bf-8863-8e607e419a9e.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/ff6be095-d349-4ce6-94c1-92649f549e53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a178a0","created_at":1410177912000,"last_logined_at":1437029996000,"global_key":"zrmlx","name":"孜然麻辣熊","name_pinyin":"|zrmlx|ziranmalaxiong","updated_at":1410177912000,"path":"/u/zrmlx","status":1,"is_member":0,"id":31525,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":2,"hot_tweet":{"id":58867,"owner_id":8259,"owner":{"sex":0,"birthday":"1991-10-28","location":"广东 广州","company":"广州曦和信息科技有限公司","slogan":"间歇性洗澡忘带内裤综合症","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","created_at":1407465734000,"last_logined_at":1436955652000,"global_key":"jackatlas","name":"jackatlas","name_pinyin":"","updated_at":1407465734000,"path":"/u/jackatlas","status":1,"is_member":0,"id":8259,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436776815000,"likes":1,"comments":2,"comment_list":[{"id":132595,"tweet_id":58867,"owner_id":8259,"owner":{"sex":0,"birthday":"1991-10-28","location":"广东 广州","company":"广州曦和信息科技有限公司","slogan":"间歇性洗澡忘带内裤综合症","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","created_at":1407465734000,"last_logined_at":1436955652000,"global_key":"jackatlas","name":"jackatlas","name_pinyin":"","updated_at":1407465734000,"path":"/u/jackatlas","status":1,"is_member":0,"id":8259,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436853131000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/panpan\" rel\u003d\"nofollow\"\u003e@潘潘\u003c/a\u003e 没有啦,只是感慨一下~"},{"id":132302,"tweet_id":58867,"owner_id":15,"owner":{"sex":1,"birthday":"1989-08-17","location":"广东深圳","company":"官方打杂妹","slogan":"我就是潘潘潘潘潘哈哈","introduction":"恩","avatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/15efd14d-b90a-44b4-8a3a-63f355330941.jpg","created_at":1399839374000,"last_logined_at":1436491923000,"global_key":"panpan","name":"潘潘","name_pinyin":"|pp|panpan","updated_at":1399839374000,"path":"/u/panpan","status":1,"is_member":0,"id":15,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436780441000,"content":"所以这是个招聘贴?"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/314\" rel\u003d\"nofollow\"\u003e#ReactJS#\u003c/a\u003e \u003cbr\u003e 看了 Coding 的《React 构建 WebIDE 的应用实践》ppt,Flux架构、测试,有许多值得学习的地方,遗憾没机会到现场。\u003c/p\u003e \n\u003cp\u003e另,靠谱设计师紧缺啊……\u003c/p\u003e","path":"/u/jackatlas/pp/58867","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1991-06-03","location":"","company":"SideChef","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/87bcbe6c-c8e9-4cb3-86a1-0733637cbbd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!738x738a44a0","gravatar":"https://dn-coding-net-avatar.qbox.me/69839658-becc-495a-848d-196474aca65c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/87bcbe6c-c8e9-4cb3-86a1-0733637cbbd9.jpg?imageMogr2/auto-orient/format/jpeg/crop/!738x738a44a0","created_at":1409075241000,"last_logined_at":1435990113000,"global_key":"xiequan","name":"xiequan","name_pinyin":"","updated_at":1409075241000,"path":"/u/xiequan","status":1,"is_member":0,"id":22789,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"ReactJS","created_at":1434984022000,"id":314,"user_list":[{"sex":0,"birthday":"1990-02-12","location":"广东 深圳 ","company":"Coding.net","slogan":"新的体验总是好的...","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/e3438bf4-8e93-4a6d-b116-683b9a30c992.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4f0761bd-9dc1-4ce4-8d13-778ad2b16587.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/e3438bf4-8e93-4a6d-b116-683b9a30c992.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1399058281000,"last_logined_at":1437048147982,"global_key":"bluishoul","name":"彭博","name_pinyin":"|pb|pengbo","updated_at":1399058281000,"path":"/u/bluishoul","status":1,"is_member":0,"id":7,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-10-28","location":"广东 广州","company":"广州曦和信息科技有限公司","slogan":"间歇性洗澡忘带内裤综合症","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0e00f1a8-6450-4f7c-99b5-3cd6508402e4.jpg?imageMogr2/auto-orient/format/png/crop/!374x374a0a0","created_at":1407465734000,"last_logined_at":1436955652000,"global_key":"jackatlas","name":"jackatlas","name_pinyin":"","updated_at":1407465734000,"path":"/u/jackatlas","status":1,"is_member":0,"id":8259,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":55512,"owner_id":45858,"owner":{"sex":1,"birthday":"1990-11-17","location":"上海 长宁区","company":"coding","slogan":"做个呆萌的吃货","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","created_at":1416369632000,"last_logined_at":1436436740000,"global_key":"wangziying","name":"wangziying","name_pinyin":"","updated_at":1416369632000,"path":"/u/wangziying","status":1,"is_member":0,"id":45858,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436018003000,"likes":9,"comments":26,"comment_list":[{"id":128356,"tweet_id":55512,"owner_id":78571,"owner":{"sex":0,"birthday":"1985-01-01","location":"江苏 南京","company":"四季大通","slogan":"是金子总会发光的,是银子总会花光的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f81220ce-1b3e-4d00-b8a8-b80718d98f3b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!272x272a85a59","gravatar":"https://dn-coding-net-avatar.qbox.me/3e07669d-6ad8-4a65-91c9-4faa21070006.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/f81220ce-1b3e-4d00-b8a8-b80718d98f3b.jpg?imageMogr2/auto-orient/format/jpeg/crop/!272x272a85a59","created_at":1422436075000,"last_logined_at":1437034333000,"global_key":"steam","name":"steam","name_pinyin":"","updated_at":1422436075000,"path":"/u/steam","status":1,"is_member":0,"id":78571,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436148186000,"content":"卵有用"},{"id":128174,"tweet_id":55512,"owner_id":45858,"owner":{"sex":1,"birthday":"1990-11-17","location":"上海 长宁区","company":"coding","slogan":"做个呆萌的吃货","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","created_at":1416369632000,"last_logined_at":1436436740000,"global_key":"wangziying","name":"wangziying","name_pinyin":"","updated_at":1416369632000,"path":"/u/wangziying","status":1,"is_member":0,"id":45858,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436099482000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/hainuo\" rel\u003d\"nofollow\"\u003e@刘峰\u003c/a\u003e 神马?rio不和饮料一样。。。"},{"id":128120,"tweet_id":55512,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436089125000,"content":"回复了这么多都没有抓住重点 #那朋友是有的# 这才是争论的挤掉"},{"id":128076,"tweet_id":55512,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436078184000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/wangziying\" rel\u003d\"nofollow\"\u003e@wangziying\u003c/a\u003e 论一个女孩子要跟朋友喝酒。。。。。。"},{"id":128074,"tweet_id":55512,"owner_id":34878,"owner":{"sex":0,"birthday":"1985-01-13","location":"上海 长宁区","company":"coding.net","slogan":"将来的你,一定会感谢现在拼命努力的自己!","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/4d643669-e855-4eb1-b49f-ce526194a0e0.jpg?imageMogr2/auto-orient/format/jpeg/crop/!398x398a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/4d643669-e855-4eb1-b49f-ce526194a0e0.jpg?imageMogr2/auto-orient/format/jpeg/crop/!398x398a0a0","created_at":1413187080000,"last_logined_at":1436532041000,"global_key":"duwan","name":"杜万","name_pinyin":"|dw|duwan","updated_at":1413187080000,"path":"/u/duwan","status":1,"is_member":0,"id":34878,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436078028000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/sinkcup\" rel\u003d\"nofollow\"\u003e@sinkcup\u003c/a\u003e 消息真灵通"}],"device":"iPhone 6","location":"","coord":"","address":"","content":"\u003cp\u003e布置的如此少女心。\u003cbr\u003e 都是我一个人逛宜家一个人扛桌子一个人拼。\u003cbr\u003e \u003ca class\u003d\"topic\" href\u003d\"/pp/topic/379\" rel\u003d\"nofollow\"\u003e#男盆友有卵用#\u003c/a\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/2e7907d4-339a-474c-8505-6ff38f05efe1.jpg\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/2e7907d4-339a-474c-8505-6ff38f05efe1.jpg\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/wangziying/pp/55512","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1985-01-01","location":"湖北 咸宁","company":"","slogan":"座右铭未填写","introduction":"","avatar":"/static/fruit_avatar/Fruit-11.png","gravatar":"https://dn-coding-net-avatar.qbox.me/7d7a75b8-48fe-45d3-9027-7ca6f72c3285.jpg","lavatar":"/static/fruit_avatar/Fruit-11.png","created_at":1419096035000,"last_logined_at":1429602069000,"global_key":"hhhhhzx","name":"hhhhhzx","name_pinyin":"","updated_at":1419096035000,"path":"/u/hhhhhzx","status":1,"is_member":0,"id":57703,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1990-07-01","location":"","company":"","slogan":"为开发疯狂","introduction":"","avatar":"/static/fruit_avatar/Fruit-16.png","gravatar":"https://dn-coding-net-avatar.qbox.me/8067b583-7857-4b88-909e-669d366797c5.jpg","lavatar":"/static/fruit_avatar/Fruit-16.png","created_at":1427784114000,"last_logined_at":1436921948000,"global_key":"497192","name":"GloryMan","name_pinyin":"","updated_at":1427784114000,"path":"/u/497192","status":1,"is_member":0,"id":89867,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"北京 海淀区","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9101209f-8245-4f23-95d8-4acda257fa93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9101209f-8245-4f23-95d8-4acda257fa93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!638x638a0a0","created_at":1414995075000,"last_logined_at":1436928983000,"global_key":"soloist","name":"独奏","name_pinyin":"|dz|duzou","updated_at":1414995075000,"path":"/u/soloist","status":1,"is_member":0,"id":38679,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/9bd51290-92b1-41fc-ba90-4aa5e8b37c3e.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/9bd51290-92b1-41fc-ba90-4aa5e8b37c3e.jpg","created_at":1407920925000,"last_logined_at":1435399310000,"global_key":"pcmadman","name":"pcmadman","name_pinyin":"","updated_at":1407920925000,"path":"/u/pcmadman","status":1,"is_member":0,"id":8886,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1985-06-07","location":"广东 深圳","company":"","slogan":"只爱自己爱的人","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1402474269000,"last_logined_at":1436954777000,"global_key":"lingling","name":"灵灵","name_pinyin":"|ll|lingling","updated_at":1402474269000,"path":"/u/lingling","status":1,"is_member":0,"id":35,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"广东 深圳","company":"Coding.net","slogan":"大圣赐我火眼金睛发现一切BUG 。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/5c1769a9-9acd-47c5-963b-29a933d910f3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/f0dab52e-10ec-4a1c-ab2a-4e63f84ee9b7.jpg?imageMogr2/auto-orient/format/jpeg/crop/!440x440a0a0","created_at":1433735819000,"last_logined_at":1437046822137,"global_key":"zhct","name":"zhct","name_pinyin":"","updated_at":1433735819000,"path":"/u/zhct","status":1,"is_member":0,"id":106621,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1111-11-11","location":"北京 西城区","company":"","slogan":"职位:CDO+CZO","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ec3f4a9d-e6b9-41db-80ec-0ae449a43e10.jpg?imageMogr2/auto-orient/format/jpeg/crop/!200x200a0a0","created_at":1413647368000,"last_logined_at":1437045443759,"global_key":"itsing","name":"一台一台一台台","name_pinyin":"|ytytytt|yitaiyitaiyitaitai","updated_at":1413647368000,"path":"/u/itsing","status":1,"is_member":0,"id":35907,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"男盆友有卵用","created_at":1436018003000,"id":379,"user_list":[{"sex":1,"birthday":"1990-11-17","location":"上海 长宁区","company":"coding","slogan":"做个呆萌的吃货","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/35154f1b-2576-40da-b148-bb43634d76e3.jpg","created_at":1416369632000,"last_logined_at":1436436740000,"global_key":"wangziying","name":"wangziying","name_pinyin":"","updated_at":1416369632000,"path":"/u/wangziying","status":1,"is_member":0,"id":45858,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":59581,"owner_id":58133,"owner":{"sex":0,"birthday":"1990-02-17","location":"浙江 杭州","company":"","slogan":"Talk is cheap, show me the Code !","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ce5470f4-ed0b-4803-bf0e-c46b65ea881c.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","created_at":1419146313000,"last_logined_at":1436445476000,"global_key":"rickytan","name":"rickytan","name_pinyin":"","updated_at":1419146313000,"path":"/u/rickytan","status":1,"is_member":0,"id":58133,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1437015856000,"likes":0,"comments":0,"comment_list":[],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/344\" rel\u003d\"nofollow\"\u003e#NSHipster#\u003c/a\u003e ReactiveCocoa是一个将函数响应式编程范例带入Objective-C的开源库。\u003ca href\u003d\"http://nshipster.cn/reactivecocoa/\" target\u003d\"_blank\" class\u003d\" auto-link\" rel\u003d\"nofollow\"\u003ehttp://nshipster.cn/reactivecocoa/\u003c/a\u003e\u003c/p\u003e","path":"/u/rickytan/pp/59581","activity_id":0,"liked":false,"like_users":[]},"name":"NSHipster","created_at":1435499364000,"id":344,"user_list":[{"sex":0,"birthday":"1990-02-17","location":"浙江 杭州","company":"","slogan":"Talk is cheap, show me the Code !","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ce5470f4-ed0b-4803-bf0e-c46b65ea881c.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/c5332aff-f7bd-4b24-aca3-047136cdd331.jpg","created_at":1419146313000,"last_logined_at":1436445476000,"global_key":"rickytan","name":"rickytan","name_pinyin":"","updated_at":1419146313000,"path":"/u/rickytan","status":1,"is_member":0,"id":58133,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":2,"hot_tweet":{"id":58527,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436677408000,"likes":6,"comments":4,"comment_list":[{"id":131966,"tweet_id":58527,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436711239000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/sinkcup\" rel\u003d\"nofollow\"\u003e@sinkcup\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"},{"id":131964,"tweet_id":58527,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436711225000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/lichi93\" rel\u003d\"nofollow\"\u003e@小七七\u003c/a\u003e 我也不知道啊!\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"},{"id":131927,"tweet_id":58527,"owner_id":64057,"owner":{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436705670000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/lichi93\" rel\u003d\"nofollow\"\u003e@小七七\u003c/a\u003e 北戴河吧……嘿嘿"},{"id":131906,"tweet_id":58527,"owner_id":17567,"owner":{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436700642000,"content":"哈哈哈是吗?这哪\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/joy.png\" title\u003d\"joy\"\u003e"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/373\" rel\u003d\"nofollow\"\u003e#Coding壁纸#\u003c/a\u003e 台湾风光\u003c/p\u003e \n\u003cp\u003e\u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/fc3d2c22-7d03-4628-80b5-347c6da2382a.jpg\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/fc3d2c22-7d03-4628-80b5-347c6da2382a.jpg\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/TXisfine/pp/58527","activity_id":0,"liked":false,"like_users":[{"sex":1,"birthday":"1995-01-01","location":"","company":"","slogan":"把猴子抱回家","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/8a8f4840-a7f6-48d2-9a17-6c46e66eb212.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/b09accfe-2dd3-4320-aec3-5a335738ebc5.jpg","created_at":1436779066000,"last_logined_at":1437016596000,"global_key":"mian","name":"豆芽芽","name_pinyin":"|dyy|douyaya","updated_at":1436779066000,"path":"/u/mian","status":1,"is_member":0,"id":113646,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-02-04","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1417670875000,"last_logined_at":1435509299000,"global_key":"appletang","name":"青天黎明","name_pinyin":"|qingtianliming|qtlm","updated_at":1417670875000,"path":"/u/appletang","status":1,"is_member":0,"id":50636,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-12-23","location":"广东 深圳 ","company":"Coding.net","slogan":"岂能尽如人意,但求无愧我心","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/ef54d4ed-9c94-4963-bfe0-3bab5b7ab7a8.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/ef54d4ed-9c94-4963-bfe0-3bab5b7ab7a8.jpg","created_at":1399066489000,"last_logined_at":1437047462695,"global_key":"zhlmmc","name":"zhlmmc","name_pinyin":"","updated_at":1399066489000,"path":"/u/zhlmmc","status":1,"is_member":0,"id":8,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6cfa25fc-794c-4a0d-8695-27c4219a4cda.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6cfa25fc-794c-4a0d-8695-27c4219a4cda.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1416498539000,"last_logined_at":1436770502000,"global_key":"esec","name":"Esec","name_pinyin":"","updated_at":1416498539000,"path":"/u/esec","status":1,"is_member":0,"id":46682,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1985-06-07","location":"广东 深圳","company":"","slogan":"只爱自己爱的人","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1402474269000,"last_logined_at":1436954777000,"global_key":"lingling","name":"灵灵","name_pinyin":"|ll|lingling","updated_at":1402474269000,"path":"/u/lingling","status":1,"is_member":0,"id":35,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"Coding壁纸","created_at":1435882115000,"id":373,"user_list":[{"sex":0,"birthday":"1990-10-17","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-2.png","gravatar":"https://dn-coding-net-avatar.qbox.me/1431273e-8432-476d-ad4d-e746b477fb86.jpg","lavatar":"/static/fruit_avatar/Fruit-2.png","created_at":1435884228000,"last_logined_at":1435981050000,"global_key":"goudaxiong","name":"goudaxiong","name_pinyin":"","updated_at":1435884228000,"path":"/u/goudaxiong","status":1,"is_member":0,"id":111166,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":58530,"owner_id":17567,"owner":{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436678017000,"likes":12,"comments":14,"comment_list":[{"id":131926,"tweet_id":58530,"owner_id":64057,"owner":{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436705627000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/succubus\" rel\u003d\"nofollow\"\u003e@FJH在这里\u003c/a\u003e 鼓掌^o^"},{"id":131870,"tweet_id":58530,"owner_id":101897,"owner":{"sex":1,"birthday":"1990-05-03","location":"","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","gravatar":"https://dn-coding-net-avatar.qbox.me/c6044d92-1932-492d-b32c-fd701d356884.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","created_at":1431924662000,"last_logined_at":1436975481000,"global_key":"succubus","name":"FJH在这里","name_pinyin":"|zzl|zaizheli","updated_at":1431924662000,"path":"/u/succubus","status":1,"is_member":0,"id":101897,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436690130000,"content":"“谢谢大家我们在一起了”"},{"id":131854,"tweet_id":58530,"owner_id":293,"owner":{"sex":0,"birthday":"1991-07-16","location":"广东 广州","company":"DJI","slogan":"厚积而薄发","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/4e81c8b4-a2af-479f-be17-48ad3d0615b7.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/4e81c8b4-a2af-479f-be17-48ad3d0615b7.jpg","created_at":1404914994000,"last_logined_at":1436071730000,"global_key":"martin","name":"martin","name_pinyin":"","updated_at":1404914994000,"path":"/u/martin","status":1,"is_member":0,"id":293,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436687996000,"content":"在一起!"},{"id":131837,"tweet_id":58530,"owner_id":36142,"owner":{"sex":0,"birthday":"1989-11-09","location":"江苏 苏州","company":"外星","slogan":"像我这样拉风帅气的码农,还能有第二个?~","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","created_at":1413787731000,"last_logined_at":1436654446000,"global_key":"brainqi","name":"BrainQi","name_pinyin":"","updated_at":1413787731000,"path":"/u/brainqi","status":1,"is_member":0,"id":36142,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436683147000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/fwolf\" rel\u003d\"nofollow\"\u003e@Fwolf\u003c/a\u003e \u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/sweat_smile.png\" title\u003d\"sweat_smile\"\u003e"},{"id":131824,"tweet_id":58530,"owner_id":41106,"owner":{"sex":0,"birthday":"1975-01-01","location":"河北 石家庄","company":"( ͡° ͜ʖ ͡°) ⌒* ( `灬` )*y。o0○","slogan":"勤","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","gravatar":"https://dn-coding-net-avatar.qbox.me/778054a6-374c-48cc-ae89-524a28af00ff.png","lavatar":"https://dn-coding-net-avatar.qbox.me/de0b3864-c6f5-4ac4-813a-9c7433816ec7.png","created_at":1415687370000,"last_logined_at":1436982735000,"global_key":"fwolf","name":"Fwolf","name_pinyin":"","updated_at":1415687370000,"path":"/u/fwolf","status":1,"is_member":0,"id":41106,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436681442000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/brainqi\" rel\u003d\"nofollow\"\u003e@BrainQi\u003c/a\u003e 你這明顯是有企圖的"}],"device":"iPhone 6","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/411\" rel\u003d\"nofollow\"\u003e#JS大会#\u003c/a\u003e 和\u003ca class\u003d\"at-someone\" href\u003d\"/u/tsl0922\" rel\u003d\"nofollow\"\u003e@tsl0922\u003c/a\u003e 情侣装哦\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/grin.png\" title\u003d\"grin\"\u003e \u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/2a19507d-bac5-4b27-b353-bd015f7dcfc9.jpg\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/2a19507d-bac5-4b27-b353-bd015f7dcfc9.jpg\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e\u003c/p\u003e","path":"/u/lichi93/pp/58530","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1993-02-04","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-18.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-18.png","created_at":1417670875000,"last_logined_at":1435509299000,"global_key":"appletang","name":"青天黎明","name_pinyin":"|qingtianliming|qtlm","updated_at":1417670875000,"path":"/u/appletang","status":1,"is_member":0,"id":50636,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1993-09-23","location":"海外 英国","company":"Insititute of Technology, Carlow","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0ca5a787-e7ce-4c52-8d07-62eb28b2a60a.png?imageMogr2/auto-orient/format/png/crop/!177x177a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0ca5a787-e7ce-4c52-8d07-62eb28b2a60a.png?imageMogr2/auto-orient/format/png/crop/!177x177a0a0","created_at":1417983021000,"last_logined_at":1436765048000,"global_key":"jerry_shao","name":"小耗子杰瑞","name_pinyin":"|xhzjr|xiaohaozijierui","updated_at":1417983021000,"path":"/u/jerry_shao","status":1,"is_member":0,"id":51643,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-09-07","location":"上海 嘉定区","company":"","slogan":"程序员分为11种:用Windows、Linux和OS X的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","gravatar":"https://dn-coding-net-avatar.qbox.me/e3c7367b-a89d-4174-b278-5c7d9c3bcb3c.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/af567cd7-fcf9-408f-a91f-aac557dfcf93.jpg?imageMogr2/auto-orient/format/jpeg/crop/!500x500a36a30","created_at":1419852772000,"last_logined_at":1436446665000,"global_key":"sinkcup","name":"sinkcup","name_pinyin":"","updated_at":1419852772000,"path":"/u/sinkcup","status":1,"is_member":0,"id":64057,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-10-20","location":"湖北 武汉","company":"undefined,none,error.","slogan":"KISS","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","gravatar":"https://dn-coding-net-avatar.qbox.me/542aa98c-1183-442e-8744-907750cdddbb.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/e4f083cc-d3db-4041-87c0-195979878e46.png?imageMogr2/auto-orient/format/png/crop/!430x430a0a172","created_at":1419861720000,"last_logined_at":1437038279000,"global_key":"wenki","name":"wenki","name_pinyin":"","updated_at":1419861720000,"path":"/u/wenki","status":1,"is_member":0,"id":64169,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-11-15","location":"","company":"Coding.net","slogan":"这世上所有的不公平都是因为当事人能力的不足。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fba26674-8279-4997-be74-3166d74afb74.jpg?imageMogr2/auto-orient/format/jpeg/crop/!564x564a0a142","gravatar":"https://dn-coding-net-avatar.qbox.me/36413eae-4037-40dc-99bc-1aacfb4cd1ef.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fba26674-8279-4997-be74-3166d74afb74.jpg?imageMogr2/auto-orient/format/jpeg/crop/!564x564a0a142","created_at":1399123736000,"last_logined_at":1437045348475,"global_key":"kin","name":"书一","name_pinyin":"|sy|shuyi","updated_at":1399123736000,"path":"/u/kin","status":1,"is_member":0,"id":10,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1987-08-04","location":"广东 深圳","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","created_at":1404874624000,"last_logined_at":1437045840626,"global_key":"guoguo","name":"蝈蝈尹","name_pinyin":"|ggy|guoguoyin","updated_at":1404874624000,"path":"/u/guoguo","status":1,"is_member":0,"id":289,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1985-06-07","location":"广东 深圳","company":"","slogan":"只爱自己爱的人","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/f224064d-5a94-456c-b96a-01aabb5c6973.jpg?imageMogr2/auto-orient/format/jpeg/crop/!640x640a0a0","created_at":1402474269000,"last_logined_at":1436954777000,"global_key":"lingling","name":"灵灵","name_pinyin":"|ll|lingling","updated_at":1402474269000,"path":"/u/lingling","status":1,"is_member":0,"id":35,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-01-01","location":"山东 济南","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","created_at":1405739267000,"last_logined_at":1436449171000,"global_key":"itfanr","name":"itfanr","name_pinyin":"","updated_at":1405739267000,"path":"/u/itfanr","status":1,"is_member":0,"id":2118,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1989-11-09","location":"江苏 苏州","company":"外星","slogan":"像我这样拉风帅气的码农,还能有第二个?~","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/c44d8766-f7cd-44c6-be93-b549727a3d53.jpg?imageMogr2/auto-orient/format/jpeg/crop/!534x534a266a0","created_at":1413787731000,"last_logined_at":1436654446000,"global_key":"brainqi","name":"BrainQi","name_pinyin":"","updated_at":1413787731000,"path":"/u/brainqi","status":1,"is_member":0,"id":36142,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"JS大会","created_at":1436678017000,"id":411,"user_list":[{"sex":1,"birthday":"1993-09-03","location":"台湾 宜兰县","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/282e4f85-c279-4bf2-808e-1d45f7f1797d.jpg","created_at":1408688496000,"last_logined_at":1436494187000,"global_key":"lichi93","name":"小七七","name_pinyin":"|xqq|xiaoqiqi","updated_at":1408688496000,"path":"/u/lichi93","status":1,"is_member":0,"id":17567,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":4,"hot_tweet":{"id":54362,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435771908000,"likes":0,"comments":6,"comment_list":[{"id":126416,"tweet_id":54362,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796170000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/hainuo\" rel\u003d\"nofollow\"\u003e@刘峰\u003c/a\u003e 表示每天冒泡8次,推代码数百次"},{"id":126415,"tweet_id":54362,"owner_id":2552,"owner":{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796122000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/hainuo\" rel\u003d\"nofollow\"\u003e@刘峰\u003c/a\u003e 之前一直在潜水开发好吧 昨天才水了一下 结果又回到榜上了"},{"id":126414,"tweet_id":54362,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796089000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/linqun\" rel\u003d\"nofollow\"\u003e@孜然麻辣熊大大\u003c/a\u003e 你也有活跃基因"},{"id":126413,"tweet_id":54362,"owner_id":5764,"owner":{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435796068000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/xin\" rel\u003d\"nofollow\"\u003e@xin\u003c/a\u003e 你一直活跃好不好\u003cimg class\u003d\"emotion emoji\" src\u003d\"https://coding.net/static/emojis/disappointed_relieved.png\" title\u003d\"disappointed_relieved\"\u003e"},{"id":126411,"tweet_id":54362,"owner_id":27666,"owner":{"sex":0,"birthday":"1998-05-15","location":"孜然麻辣熊黑科技研究中心","company":"孜然麻辣熊黑科技有限公司","slogan":"让懂的人懂,让不懂的人不懂。","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/0b6499da-33ba-489d-99d0-4324c9f53e7c.jpg?imageMogr2/auto-orient/format/jpeg/crop/!450x450a0a0","created_at":1409313681000,"last_logined_at":1437046129576,"global_key":"linqun","name":"孜然麻辣熊大大","name_pinyin":"|zrmlxdd|ziranmalaxiongdada","updated_at":1409313681000,"path":"/u/linqun","status":1,"is_member":0,"id":27666,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1435795982000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/xin\" rel\u003d\"nofollow\"\u003e@xin\u003c/a\u003e 你有热门用户基因"}],"device":"","location":"","coord":"","address":"","content":"\u003cp\u003e\u003ca href\u003d\"https://dn-coding-net-production-pp.qbox.me/4e648f1d-e497-445d-8762-bff9ad0a5e3c.png\" target\u003d\"_blank\" class\u003d\"bubble-markdown-image-link\" rel\u003d\"nofollow\"\u003e\u003cimg src\u003d\"https://dn-coding-net-production-pp.qbox.me/4e648f1d-e497-445d-8762-bff9ad0a5e3c.png\" alt\u003d\"图片\" class\u003d\" bubble-markdown-image\"\u003e\u003c/a\u003e \u003cbr\u003e 上个排行榜好难,做个备忘把\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/359\" rel\u003d\"nofollow\"\u003e#调戏Coding#\u003c/a\u003e \u003c/p\u003e","path":"/u/hainuo/pp/54362","activity_id":0,"liked":false,"like_users":[]},"name":"调戏CODING","created_at":1435732658000,"id":359,"user_list":[{"sex":2,"birthday":"1994-08-02","location":"山东 烟台","company":"公司","slogan":"にゃにゃん╭( ・ㅂ・)و ̑̑ye","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/ee4fc3ca-73f8-433e-be09-e67b11610011.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/669e1714-e6d7-47d6-8984-8de4e5c3d5c1.png?imageMogr2/auto-orient/format/png/crop/!450x450a0a0","created_at":1406008158000,"last_logined_at":1436947197000,"global_key":"xin","name":"xin","name_pinyin":"","updated_at":1406008158000,"path":"/u/xin","status":1,"is_member":0,"id":2552,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1994-08-31","location":"江苏 南京","company":"幕(木)游(有)公司","slogan":"做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/5ae8585e-662b-4bf1-bd53-318c6cec8426.jpg?imageMogr2/auto-orient/format/jpeg/crop/!239x239a0a34","created_at":1418705066000,"last_logined_at":1436600011000,"global_key":"Morph_Zhou","name":"Morph_Zhou","name_pinyin":"","updated_at":1418705066000,"path":"/u/Morph_Zhou","status":1,"is_member":0,"id":54212,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1984-10-07","location":"山东 淄博 张店","company":"山东蓝标信息科技有限公司","slogan":"勇者无所畏惧 blog.hainuo.info","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","gravatar":"https://dn-coding-net-avatar.qbox.me/4cc88a4e-7adc-469f-98a5-6091ef2a35c3.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/fd75e8fa-9345-4e66-9bf0-d6370f3c515c.png?imageMogr2/auto-orient/format/png/crop/!128x128a0a0","created_at":1406871611000,"last_logined_at":1436929956000,"global_key":"hainuo","name":"刘峰","name_pinyin":"|lf|liufeng","updated_at":1406871611000,"path":"/u/hainuo","status":1,"is_member":0,"id":5764,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-avatar.qbox.me/1a1873a8-7d76-4927-ae2e-38ad67c99582.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/488fbd75-4307-449c-a2af-d14a1ef61907.jpg","lavatar":"https://dn-coding-net-avatar.qbox.me/1a1873a8-7d76-4927-ae2e-38ad67c99582.jpg","created_at":1435753043000,"last_logined_at":1437031483000,"global_key":"zorji","name":"zorji","name_pinyin":"","updated_at":1435753043000,"path":"/u/zorji","status":1,"is_member":0,"id":110899,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},{"watched":false,"user_count":1,"hot_tweet":{"id":56555,"owner_id":93,"owner":{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436254603000,"likes":9,"comments":17,"comment_list":[{"id":129637,"tweet_id":56555,"owner_id":51190,"owner":{"sex":2,"birthday":"1998-03-04","location":"河北 保定","company":"QiLinYunS","slogan":"名字是潘潘起的,头像是拿ziying的","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/6f086f94-130e-4ad3-8afd-f2b088ce2459.jpg","created_at":1417764325000,"last_logined_at":1437023057000,"global_key":"TXisfine","name":"小谈谈","name_pinyin":"|xtt|xiaotantan","updated_at":1417764325000,"path":"/u/TXisfine","status":1,"is_member":0,"id":51190,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436330193000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/sophia123456\" rel\u003d\"nofollow\"\u003e@小罗\u003c/a\u003e 喔喔~了解。"},{"id":129551,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436324572000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/bumy\" rel\u003d\"nofollow\"\u003e@riverlong\u003c/a\u003e 支付宝私信给我哈"},{"id":129487,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436320778000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/srufeng\" rel\u003d\"nofollow\"\u003e@srufeng\u003c/a\u003e 提bug或者建议 到公开 ios/android 的项目讨论中,可能会有奖励哈~"},{"id":129484,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436320674000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/zeallrm\" rel\u003d\"nofollow\"\u003e@zeallrm\u003c/a\u003e 相互关注,才是好友呢"},{"id":129483,"tweet_id":56555,"owner_id":89471,"owner":{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},"created_at":1436320634000,"content":"\u003ca class\u003d\"at-someone\" href\u003d\"/u/bumy\" rel\u003d\"nofollow\"\u003e@riverlong\u003c/a\u003e 棒棒哒~"}],"device":"","location":"","coord":"","address":"","content":"\u003ch2 id\u003d\"客户端-v3.0-版本-“赏金码士”-出炉\"\u003e客户端 V3.0 版本 “赏金码士” 出炉\u003c/h2\u003e \n\u003cp\u003e\u003ca class\u003d\"topic\" href\u003d\"/pp/topic/387\" rel\u003d\"nofollow\"\u003e#Coding 客户端#\u003c/a\u003e \u003cbr\u003e 在大家的支持下,客户端 V 3.0 已正式上线~请大家前往各大 app 市场进行更新\u003c/p\u003e \n\u003ch3 id\u003d\"发放赏金\"\u003e发放赏金\u003c/h3\u003e \n\u003cp\u003eiOS 版提交 bug 并通过审核者:\u003c/p\u003e \n\u003ctable\u003e \n \u003ctr\u003e \n \u003cth align\u003d\"center\"\u003e码士\u003c/th\u003e \n \u003cth align\u003d\"center\"\u003e金额\u003c/th\u003e \n \u003c/tr\u003e \n \u003ctbody\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/dowell\" rel\u003d\"nofollow\"\u003e@dowell\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/CyonLeu\" rel\u003d\"nofollow\"\u003e@cyonleu\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/huangyong\" rel\u003d\"nofollow\"\u003e@黄勇\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/yaming\" rel\u003d\"nofollow\"\u003e@花开堪折枝\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e \n\u003c/table\u003e \n\u003cp\u003eAndroid 版提交 bug 并通过审核者:\u003c/p\u003e \n\u003ctable\u003e \n \u003ctr\u003e \n \u003cth align\u003d\"center\"\u003e码士\u003c/th\u003e \n \u003cth align\u003d\"center\"\u003e金额\u003c/th\u003e \n \u003c/tr\u003e \n \u003ctbody\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/bumy\" rel\u003d\"nofollow\"\u003e@riverlong\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e100元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/898745604\" rel\u003d\"nofollow\"\u003e@VDer\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e40元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/hcrgm\" rel\u003d\"nofollow\"\u003e@hcrgm\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/icanghai\" rel\u003d\"nofollow\"\u003e@icanghai\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003ctr\u003e \n \u003ctd align\u003d\"center\"\u003e\u003ca class\u003d\"at-someone\" href\u003d\"/u/xiaozhu\" rel\u003d\"nofollow\"\u003e@铂金小猪\u003c/a\u003e \u003c/td\u003e \n \u003ctd align\u003d\"center\"\u003e20元\u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e \n\u003c/table\u003e \n\u003ch4 id\u003d\"ps:-找-bug-还有赏金拿!这样的好事哪里找?报名参加公测~-请直接私信-\u003ca class\u003d\u0027at-someone\u0027 href\u003d\u0027/u/sophia123456\u0027\u003e@小罗\u003c/a\u003e \"\u003ePS: 找 bug 还有赏金拿!这样的好事哪里找?报名参加公测~ 请直接私信 \u003ca class\u003d\"at-someone\" href\u003d\"/u/sophia123456\" rel\u003d\"nofollow\"\u003e@小罗\u003c/a\u003e \u003c/h4\u003e","path":"/u/coding/pp/56555","activity_id":0,"liked":false,"like_users":[{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-20.png","gravatar":"","lavatar":"/static/fruit_avatar/Fruit-20.png","created_at":1411968342000,"last_logined_at":1436941286000,"global_key":"wenchang","name":"wenchang","name_pinyin":"","updated_at":1411968342000,"path":"/u/wenchang","status":1,"is_member":0,"id":33522,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1988-01-01","location":"山东 济南","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/7633c8636fa4099608191032ac04a295.jpg","created_at":1405739267000,"last_logined_at":1436449171000,"global_key":"itfanr","name":"itfanr","name_pinyin":"","updated_at":1405739267000,"path":"/u/itfanr","status":1,"is_member":0,"id":2118,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1990-05-03","location":"","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","gravatar":"https://dn-coding-net-avatar.qbox.me/c6044d92-1932-492d-b32c-fd701d356884.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/02fec97c-4ddf-4321-97c2-08bd4cf77e6d.png?imageMogr2/auto-orient/format/png/crop/!429x429a10a3","created_at":1431924662000,"last_logined_at":1436975481000,"global_key":"succubus","name":"FJH在这里","name_pinyin":"|zzl|zaizheli","updated_at":1431924662000,"path":"/u/succubus","status":1,"is_member":0,"id":101897,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"","company":"","slogan":"","introduction":"","avatar":"/static/fruit_avatar/Fruit-10.png","gravatar":"https://dn-coding-net-avatar.qbox.me/d9f05231-7871-4dfa-93a5-a1f581ea7f75.jpg","lavatar":"/static/fruit_avatar/Fruit-10.png","created_at":1434642539000,"last_logined_at":1434929202000,"global_key":"zeallrm","name":"zeallrm","name_pinyin":"","updated_at":1434642539000,"path":"/u/zeallrm","status":1,"is_member":0,"id":108626,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"广东 广州","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/ed58d4ae-e17e-48fd-9f49-eeba3b26589a.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/6b1f621a-eef8-45f0-90a5-2b6e4dd257b2.jpg","created_at":1430075407000,"last_logined_at":1436791946000,"global_key":"bumy","name":"riverlong","name_pinyin":"","updated_at":1430075407000,"path":"/u/bumy","status":1,"is_member":0,"id":98041,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"2015-06-18","location":"广西 南宁","company":"","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/07d49a54-cb05-4a21-9b12-ed23f1fa71cf.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/737bcf6e-111d-49a4-8b0e-4de839b4716e.jpg","created_at":1427685305000,"last_logined_at":1437032650000,"global_key":"sophia123456","name":"小罗","name_pinyin":"|xl|xiaoluo","updated_at":1427685305000,"path":"/u/sophia123456","status":1,"is_member":0,"id":89471,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1985-01-01","location":"上海 长宁区","company":"shanghai yujing","slogan":"qinfen shi wo weiyi chulu","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/33f34541-d124-415b-bc39-47de5e0bde7f.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/5b92fba2-e22b-46d6-a002-ab5550d91688.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/33f34541-d124-415b-bc39-47de5e0bde7f.jpg","created_at":1426063393000,"last_logined_at":1436429110000,"global_key":"pingtanglu","name":"pingtanglu","name_pinyin":"","updated_at":1426063393000,"path":"/u/pingtanglu","status":1,"is_member":0,"id":84448,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":0,"birthday":"1991-12-01","location":"广东 深圳","company":"CODING","slogan":"只有偏执狂才能生存","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/eece4ae0-233e-4604-a0ad-2ec936b32238.jpg","gravatar":"https://dn-coding-net-avatar.qbox.me/df00f228-aa2b-425f-a91a-c46724331dcc.jpg","lavatar":"https://dn-coding-net-production-static.qbox.me/eece4ae0-233e-4604-a0ad-2ec936b32238.jpg","created_at":1435320620000,"last_logined_at":1436862521000,"global_key":"miaodesign","name":"MangoCC","name_pinyin":"","updated_at":1435320620000,"path":"/u/miaodesign","status":1,"is_member":0,"id":109929,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false},{"sex":1,"birthday":"1987-08-04","location":"广东 深圳","company":"coding","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/1b9ac59b-9ef3-4328-990a-ed4cbe996476.jpg","created_at":1404874624000,"last_logined_at":1437045840626,"global_key":"guoguo","name":"蝈蝈尹","name_pinyin":"|ggy|guoguoyin","updated_at":1404874624000,"path":"/u/guoguo","status":1,"is_member":0,"id":289,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]},"name":"Coding 客户端","created_at":1436254604000,"id":387,"user_list":[{"sex":0,"birthday":"2014-02-14","location":"广东 深圳","company":"Coding.net","slogan":"","introduction":"","avatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","gravatar":"","lavatar":"https://dn-coding-net-production-static.qbox.me/512b2a62-956b-4ef8-8e84-b3c66e71468f.png?imageMogr2/auto-orient/format/png/crop/!300x300a0a0","created_at":1403329814000,"last_logined_at":1436261323000,"global_key":"coding","name":"coding","name_pinyin":"","updated_at":1403329814000,"path":"/u/coding","status":1,"is_member":0,"id":93,"follows_count":0,"fans_count":0,"tweets_count":0,"followed":false,"follow":false}]}]} diff --git a/Coding_iOS/Controllers/Shop/ExchangeGoodsViewController.m b/Coding_iOS/Controllers/Shop/ExchangeGoodsViewController.m index b078d6d31..990a8580e 100644 --- a/Coding_iOS/Controllers/Shop/ExchangeGoodsViewController.m +++ b/Coding_iOS/Controllers/Shop/ExchangeGoodsViewController.m @@ -325,6 +325,9 @@ - (void)goToLocationVC{ #pragma mark- #pragma mark---------------------- AlertView --------------------------- +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + - (void)showPwdAlertView { UIAlertView *_pwdAlertView = [[UIAlertView alloc] initWithTitle:@"确认订单" message:@"请输入密码以确认兑换" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确认", nil]; @@ -344,6 +347,8 @@ - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger) } } +#pragma clang diagnostic pop + - (void)exchangeActionRquest:(NSString *)pwd { __weak typeof(self) weakSelf = self; diff --git a/Coding_iOS/Controllers/TaskResourceReferenceViewController.m b/Coding_iOS/Controllers/TaskResourceReferenceViewController.m index d6ffa83ef..8e3432387 100644 --- a/Coding_iOS/Controllers/TaskResourceReferenceViewController.m +++ b/Coding_iOS/Controllers/TaskResourceReferenceViewController.m @@ -74,7 +74,7 @@ - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEd if (editingStyle == UITableViewCellEditingStyleDelete) { ResourceReferenceItem *item = self.resourceReference.itemList[indexPath.row]; __weak typeof(self) weakSelf = self; - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:[NSString stringWithFormat:@"确定取消关联:%@", item.title] buttonTitles:nil destructiveTitle:@"确定" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:[NSString stringWithFormat:@"确定取消关联:%@", item.title] buttonTitles:nil destructiveTitle:@"确定" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf deleteItem:item]; } diff --git a/Coding_iOS/Controllers/TeamMembersViewController.m b/Coding_iOS/Controllers/TeamMembersViewController.m index 2845d26e6..d18b2da76 100644 --- a/Coding_iOS/Controllers/TeamMembersViewController.m +++ b/Coding_iOS/Controllers/TeamMembersViewController.m @@ -11,9 +11,17 @@ #import "Coding_NetAPIManager.h" #import "TeamMemberCell.h" #import "UserInfoViewController.h" +#import "ValueListViewController.h" +#import "EditMemberTypeProjectListViewController.h" +#import +#import +#import +#import "ProjectDeleteAlertControllerVisualStyle.h" +#import "Ease_2FA.h" -@interface TeamMembersViewController () + +@interface TeamMembersViewController () @property (strong, nonatomic) UISearchBar *mySearchBar; @property (strong, nonatomic) UISearchDisplayController *mySearchDisplayController; @property (strong, nonatomic) UITableView *myTableView; @@ -21,13 +29,29 @@ @interface TeamMembersViewController ()= 100 && mem.role.integerValue <= 90) { + [rightUtilityButtons sw_addUtilityButtonWithColor:[UIColor colorWithHexString:@"0xD8DDE4"] icon:[UIImage imageNamed:@"team_cell_edit_team"]]; + } + [rightUtilityButtons sw_addUtilityButtonWithColor:[UIColor colorWithHexString:@"0xF2F4F6"] icon:[UIImage imageNamed:@"team_cell_edit_pro"]]; + if (_selfRoleType.integerValue > mem.role.integerValue) { + [rightUtilityButtons sw_addUtilityButtonWithColor:[UIColor colorWithHexString:@"0xF56061"] icon:[UIImage imageNamed:@"team_cell_edit_delete"]]; + } + return rightUtilityButtons; +} +- (BOOL)swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:(SWTableViewCell *)cell{ + return YES; +} + +- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityButtonWithIndex:(NSInteger)index { + [cell hideUtilityButtonsAnimated:YES]; + TeamMember *mem = [(TeamMemberCell *)cell curMember]; + if (_selfRoleType.integerValue >= 100 && mem.role.integerValue <= 90) { + if (index == 0) { + [self editTeamTypeOfMember:mem]; + }else if (index == 1){ + [self editProTypeOfMember:mem]; + }else{ + [self removeMember:mem]; + } + }else{ + if (index == 0) { + [self editProTypeOfMember:mem]; + }else{ + [self removeMember:mem]; + } + } +} + +- (void)editTeamTypeOfMember:(TeamMember *)curMember{ + __weak typeof(self) weakSelf = self; + __weak typeof(curMember) weakMember = curMember; + ValueListViewController *vc = [ValueListViewController new]; + NSMutableArray *valueList = @[@"管理员", @"普通成员"].mutableCopy; + NSArray *typeRawList = @[@90, @80]; + [vc setTitle:@"设置企业角色" valueList:valueList defaultSelectIndex:[typeRawList indexOfObject:curMember.editRole] type:ValueListTypeTeamMemberType selectBlock:^(NSInteger index) { + weakMember.editRole = typeRawList[index]; + if (![weakMember.role isEqualToNumber:weakMember.editRole]) { + [[Coding_NetAPIManager sharedManager] request_EditTeamTypeOfMember:weakMember andBlock:^(id data, NSError *error) { + if (data) { + weakMember.role = weakMember.editRole; + [weakSelf.myTableView reloadData]; + [weakSelf.mySearchDisplayController.searchResultsTableView reloadData]; + } + }]; + } + }]; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)editProTypeOfMember:(TeamMember *)curMember{ + EditMemberTypeProjectListViewController *vc = [EditMemberTypeProjectListViewController new]; + vc.curTeam = _curTeam; + vc.curMember = curMember; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)removeMember:(TeamMember *)curMember{ + __weak typeof(self) weakSelf = self; + [[Coding_NetAPIManager sharedManager] request_VerifyTypeWithBlock:^(VerifyType type, NSError *error) { + if (!error) { + [weakSelf showDeleteAlertWithType:type toDeleteMember:curMember]; + } + }]; + // __weak typeof(self) weakSelf = self; + // [[Coding_NetAPIManager sharedManager] request_TeamMember_Quit:curMember andBlock:^(id data, NSError *error) { + // if (data) { + // [weakSelf.myMemberArray removeObject:data]; + // if (weakSelf.searchResults) { + // [weakSelf.searchResults removeObject:data]; + // } + // [weakSelf.myTableView reloadData]; + // [weakSelf.mySearchDisplayController.searchResultsTableView reloadData]; + // } + // }]; +} + +- (void)showDeleteAlertWithType:(VerifyType)type toDeleteMember:(TeamMember *)curMember{ + if (self.alert) {//正在显示 + return; + } + NSString *title, *message, *placeHolder; + if (type == VerifyTypePassword) { + title = @"需要密码验证"; + message = @"这是一个危险操作,需要进行身份验证"; + placeHolder = @"请输入密码"; + }else if (type == VerifyTypeTotp){ + title = @"需要动态验证码"; + message = @"这是一个危险操作,需要进行身份验证"; + placeHolder = @"请输入动态验证码"; + }else{//不知道啥类型,不处理 + return; + } + + _alert = [SDCAlertController alertControllerWithTitle:title message:message preferredStyle:SDCAlertControllerStyleAlert]; + + UITextField *passwordTextField = [[UITextField alloc] initWithFrame:CGRectMake(15, 0, 240.0, 30.0)]; + passwordTextField.font = [UIFont systemFontOfSize:13]; + passwordTextField.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 30)]; + passwordTextField.leftViewMode = UITextFieldViewModeAlways; + passwordTextField.layer.borderColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.6].CGColor; + passwordTextField.layer.borderWidth = 1; + passwordTextField.secureTextEntry = (type == VerifyTypePassword); + passwordTextField.backgroundColor = [UIColor whiteColor]; + passwordTextField.placeholder = placeHolder; + if (type == VerifyTypeTotp) { + passwordTextField.text = [OTPListViewController otpCodeWithGK:[Login curLoginUser].global_key]; + } + passwordTextField.delegate = self; + + [_alert.contentView addSubview:passwordTextField]; + + NSDictionary* passwordViews = NSDictionaryOfVariableBindings(passwordTextField); + + [_alert.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[passwordTextField]-(>=14)-|" options:0 metrics:nil views:passwordViews]]; + + // Style + _alert.visualStyle = [ProjectDeleteAlertControllerVisualStyle new]; + + // 添加密码框 + // [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { + // textField.secureTextEntry = YES; + // }]; + + // 添加按钮 + @weakify(self); + _alert.actionLayout = SDCAlertControllerActionLayoutHorizontal; + [_alert addAction:[SDCAlertAction actionWithTitle:@"取消" style:SDCAlertActionStyleDefault handler:^(SDCAlertAction *action) { + @strongify(self); + self.alert = nil; + }]]; + [_alert addAction:[SDCAlertAction actionWithTitle:@"确定" style:SDCAlertActionStyleDefault handler:^(SDCAlertAction *action) { + @strongify(self); + self.alert = nil; + NSString *passCode = passwordTextField.text; + if ([passCode length] > 0) { + // 删除成员 + [[Coding_NetAPIManager sharedManager] request_DeleteTeamMember:curMember.user.global_key passCode:passCode type:type andBlock:^(id data, NSError *error) { + @strongify(self); + if (!error) { + [self refresh]; + } + }]; + } + }]]; + + [_alert presentWithCompletion:^{ + [passwordTextField becomeFirstResponder]; + }]; +} + +-(BOOL)textFieldShouldReturn:(UITextField *)textField{ + [textField resignFirstResponder]; + return YES; } #pragma mark UISearchDisplayDelegate M - (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView{ -// if (_type == ProMemTypeProject) { -// [tableView setContentInset:UIEdgeInsetsMake(kHigher_iOS_6_1_DIS(44), 0, 0, 0)]; -// } + // if (_type == ProMemTypeProject) { + // [tableView setContentInset:UIEdgeInsetsMake(kHigher_iOS_6_1_DIS(44), 0, 0, 0)]; + // } } - (void)searchDisplayController:(UISearchDisplayController *)controller willHideSearchResultsTableView:(UITableView *)tableView{ [self.myTableView reloadData]; @@ -179,7 +372,7 @@ - (void)updateFilteredContentForSearchString:(NSString *)searchString{ type:NSContainsPredicateOperatorType options:NSCaseInsensitivePredicateOption]; [searchItemsPredicate addObject:finalPredicate]; -// pinyin + // pinyin lhs = [NSExpression expressionForKeyPath:@"user.pinyinName"]; rhs = [NSExpression expressionForConstantValue:searchString]; finalPredicate = [NSComparisonPredicate diff --git a/Coding_iOS/Controllers/TeamProjectsViewController.m b/Coding_iOS/Controllers/TeamProjectsViewController.m index 162868448..010fc4276 100644 --- a/Coding_iOS/Controllers/TeamProjectsViewController.m +++ b/Coding_iOS/Controllers/TeamProjectsViewController.m @@ -12,18 +12,26 @@ #import "ProjectListCell.h" #import "NProjectViewController.h" #import "Login.h" +#import +#import +#import +#import "ProjectDeleteAlertControllerVisualStyle.h" -@interface TeamProjectsViewController () +#import "Ease_2FA.h" + +@interface TeamProjectsViewController () @property (strong, nonatomic) UITableView *myTableView; @property (strong, nonatomic) ODRefreshControl *myRefreshControl; @property (strong, nonatomic) NSArray *joinedList, *unjoinedList; +@property (strong, nonatomic) SDCAlertController *alert; + @end @implementation TeamProjectsViewController - (void)viewDidLoad{ [super viewDidLoad]; - self.title = _curTeam.name; + self.title = @"项目管理"; _myTableView = ({ UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; tableView.separatorStyle = UITableViewCellSeparatorStyleNone; @@ -103,7 +111,9 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N ProjectListCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_ProjectList forIndexPath:indexPath]; Project *curPro = indexPath.section == 0? _joinedList[indexPath.row]: _unjoinedList[indexPath.row]; - [cell setProject:curPro hasSWButtons:NO hasBadgeTip:YES hasIndicator:YES]; + [cell setProject:curPro hasSWButtons:NO hasBadgeTip:NO hasIndicator:NO]; + cell.hasDeleteBtn = YES; + cell.delegate = self; cell.backgroundColor = kColorTableBG; [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; return cell; @@ -115,7 +125,10 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; - + if (indexPath.section == 1) { + [NSObject showHudTipStr:@"无权进行此操作"]; + return; + } Project *curPro = indexPath.section == 0? _joinedList[indexPath.row]: _unjoinedList[indexPath.row]; NProjectViewController *vc = [NProjectViewController new]; vc.myProject = curPro; @@ -123,4 +136,103 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath } +#pragma mark SWTableViewCellDelegate + +- (BOOL)swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:(SWTableViewCell *)cell{ + return YES; +} + +- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityButtonWithIndex:(NSInteger)index{ + [cell hideUtilityButtonsAnimated:YES]; + NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell]; + Project *curPro = indexPath.section == 0? _joinedList[indexPath.row]: _unjoinedList[indexPath.row]; + __weak typeof(self) weakSelf = self; + [[Coding_NetAPIManager sharedManager] request_VerifyTypeWithBlock:^(VerifyType type, NSError *error) { + if (!error) { + [weakSelf showDeleteAlertWithType:type toDeletePro:curPro]; + } + }]; +} + +- (void)showDeleteAlertWithType:(VerifyType)type toDeletePro:(Project *)toDeletePro{ + if (self.alert) {//正在显示 + return; + } + + NSString *title, *message, *placeHolder; + if (type == VerifyTypePassword) { + title = @"需要密码验证"; + message = @"这是一个危险操作,需要进行身份验证"; + placeHolder = @"请输入密码"; + }else if (type == VerifyTypeTotp){ + title = @"需要动态验证码"; + message = @"这是一个危险操作,需要进行身份验证"; + placeHolder = @"请输入动态验证码"; + }else{//不知道啥类型,不处理 + return; + } + + _alert = [SDCAlertController alertControllerWithTitle:title message:message preferredStyle:SDCAlertControllerStyleAlert]; + + UITextField *passwordTextField = [[UITextField alloc] initWithFrame:CGRectMake(15, 0, 240.0, 30.0)]; + passwordTextField.font = [UIFont systemFontOfSize:13]; + passwordTextField.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 30)]; + passwordTextField.leftViewMode = UITextFieldViewModeAlways; + passwordTextField.layer.borderColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.6].CGColor; + passwordTextField.layer.borderWidth = 1; + passwordTextField.secureTextEntry = (type == VerifyTypePassword); + passwordTextField.backgroundColor = [UIColor whiteColor]; + passwordTextField.placeholder = placeHolder; + if (type == VerifyTypeTotp) { + passwordTextField.text = [OTPListViewController otpCodeWithGK:[Login curLoginUser].global_key]; + } + passwordTextField.delegate = self; + + [_alert.contentView addSubview:passwordTextField]; + + NSDictionary* passwordViews = NSDictionaryOfVariableBindings(passwordTextField); + + [_alert.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[passwordTextField]-(>=14)-|" options:0 metrics:nil views:passwordViews]]; + + // Style + _alert.visualStyle = [ProjectDeleteAlertControllerVisualStyle new]; + + // 添加密码框 + // [alert addTextFieldWithConfigurationHandler:^(UITextField *textField) { + // textField.secureTextEntry = YES; + // }]; + + // 添加按钮 + @weakify(self); + _alert.actionLayout = SDCAlertControllerActionLayoutHorizontal; + [_alert addAction:[SDCAlertAction actionWithTitle:@"取消" style:SDCAlertActionStyleDefault handler:^(SDCAlertAction *action) { + @strongify(self); + self.alert = nil; + }]]; + [_alert addAction:[SDCAlertAction actionWithTitle:@"确定" style:SDCAlertActionStyleDefault handler:^(SDCAlertAction *action) { + @strongify(self); + self.alert = nil; + NSString *passCode = passwordTextField.text; + if ([passCode length] > 0) { + // 删除项目 + [[Coding_NetAPIManager sharedManager] request_DeleteProject_WithObj:toDeletePro passCode:passCode type:type andBlock:^(Project *data, NSError *error) { + @strongify(self); + if (!error) { + [NSObject showHudTipStr:@"删除项目成功"]; + [self refresh]; + } + }]; + } + }]]; + + [_alert presentWithCompletion:^{ + [passwordTextField becomeFirstResponder]; + }]; +} + +-(BOOL)textFieldShouldReturn:(UITextField *)textField{ + [textField resignFirstResponder]; + return YES; +} + @end diff --git a/Coding_iOS/Controllers/TeamPurchaseViewController.h b/Coding_iOS/Controllers/TeamPurchaseViewController.h new file mode 100644 index 000000000..20b037080 --- /dev/null +++ b/Coding_iOS/Controllers/TeamPurchaseViewController.h @@ -0,0 +1,15 @@ +// +// TeamPurchaseViewController.h +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "BaseViewController.h" +#import "Team.h" + +@interface TeamPurchaseViewController : BaseViewController +@property (strong, nonatomic) Team *curTeam; + +@end diff --git a/Coding_iOS/Controllers/TeamPurchaseViewController.m b/Coding_iOS/Controllers/TeamPurchaseViewController.m new file mode 100644 index 000000000..6c567b5c9 --- /dev/null +++ b/Coding_iOS/Controllers/TeamPurchaseViewController.m @@ -0,0 +1,216 @@ +// +// TeamPurchaseViewController.m +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "TeamPurchaseViewController.h" +#import "XTSegmentControl.h" +#import "ODRefreshControl.h" +#import "TeamPurchaseTopCell.h" +#import "TeamPurchaseOrderCell.h" +#import "TeamPurchaseBillingCell.h" +#import "Coding_NetAPIManager.h" + +@interface TeamPurchaseViewController () +@property (nonatomic, strong, readonly) UITableView *myTableView; +@property (nonatomic, strong, readonly) ODRefreshControl *refreshControl; +@property (strong, nonatomic) UIView *sectionHeaderView; + +@property (assign, nonatomic) NSInteger dataIndex; +@property (strong, nonatomic) NSMutableDictionary *dataDict; +@property (strong, nonatomic, readonly) NSArray *dataList, *orderList, *billingList; + +@end + +@implementation TeamPurchaseViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.title = @"订购状态"; + __weak typeof(self) weakSelf = self; + // 添加myTableView + _myTableView = ({ + UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; + tableView.backgroundColor = [UIColor clearColor]; + tableView.dataSource = self; + tableView.delegate = self; + tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + [tableView registerClass:[TeamPurchaseTopCell class] forCellReuseIdentifier:kCellIdentifier_TeamPurchaseTopCell]; + [tableView registerClass:[TeamPurchaseOrderCell class] forCellReuseIdentifier:kCellIdentifier_TeamPurchaseOrderCell]; + [tableView registerClass:[TeamPurchaseBillingCell class] forCellReuseIdentifier:kCellIdentifier_TeamPurchaseBillingCell]; + [self.view addSubview:tableView]; + [tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; + tableView; + }); + if (!_sectionHeaderView) { + _sectionHeaderView = [[XTSegmentControl alloc] initWithFrame:CGRectMake(0, 0, kScreen_Width, 44.0) Items:@[@"充值订单", @"账户流水"] selectedBlock:^(NSInteger index) { + weakSelf.dataIndex = index; + }]; + [_sectionHeaderView addLineUp:NO andDown:YES]; + _sectionHeaderView.backgroundColor = kColorTableBG; + } + _refreshControl = [[ODRefreshControl alloc] initInScrollView:self.myTableView]; + [_refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged]; + + _dataDict = @{}.mutableCopy; + self.dataIndex = 0;//set 方法里面带刷新了 +} + +- (void)viewWillAppear:(BOOL)animated{ + [super viewWillAppear:animated]; + _curTeam.hasDismissWebTip = NO; +} + +- (NSArray *)dataList{ + return _dataIndex == 0? self.orderList: self.billingList; +} + +- (NSArray *)orderList{ +// return @[]; + return _dataDict[@(0)]; +} + +- (NSArray *)billingList{//不要你了 + return @[]; +// return _dataDict[@(1)]; +} + +- (void)setDataIndex:(NSInteger)dataIndex{ + _dataIndex = dataIndex; + [self.myTableView reloadData]; + if (!_dataDict[@(_dataIndex)]) { + [self refresh]; + } +} + +- (void)refresh{ + __weak typeof(self) weakSelf = self; + void (^queryFinishedBlock)(NSError *) = ^(NSError *error){ + if (weakSelf.orderList.count == 0 && weakSelf.billingList.count > 0) { + [weakSelf setDataIndex:1]; + } + [weakSelf.myTableView reloadData]; + [weakSelf.view endLoading]; + [weakSelf.refreshControl endRefreshing]; + [weakSelf.view configBlankPage:EaseBlankPageTypeViewPurchase hasData:weakSelf.dataList.count > 0 hasError:(error != nil) offsetY:([TeamPurchaseTopCell cellHeightWithObj:_curTeam] + 15) reloadButtonBlock:^(id sender) { + [weakSelf refresh]; + }]; + }; + if (self.dataList.count <= 0) { + [self.view beginLoading]; + } + [[Coding_NetAPIManager sharedManager] request_OrderListOfTeam:_curTeam andBlock:^(id dataO, NSError *errorO) { + if (dataO) { + weakSelf.dataDict[@(0)] = dataO; + } + queryFinishedBlock(errorO); +// if (dataO) { +// weakSelf.dataDict[@(0)] = dataO; +// [[Coding_NetAPIManager sharedManager] request_BillingListOfTeam:_curTeam andBlock:^(id dataB, NSError *errorB) { +// if (dataB) { +// weakSelf.dataDict[@(1)] = dataB; +// } +// queryFinishedBlock(errorB); +// }]; +// }else{ +// queryFinishedBlock(errorO); +// } + }]; +} + +#pragma mark TableM +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ + return 2; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + return [UIView new]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + if (section == 0 && self.orderList.count > 0 && self.billingList.count > 0) { + return 15; + }else{ + return 0; + } +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ + if (section == 1) { + if (self.orderList.count > 0 && self.billingList.count > 0) { + return self.sectionHeaderView; + }else if (self.orderList.count > 0 || self.billingList.count > 0){ + UIView *headerV = [UIView new]; + headerV.backgroundColor = kColorTableSectionBg; + UILabel *headerL = [UILabel labelWithFont:[UIFont systemFontOfSize:14] textColor:kColorDark7]; + headerL.text = self.orderList.count > 0? @"充值订单": @"账户流水"; + [headerV addSubview:headerL]; + [headerL mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(headerV).offset(kPaddingLeftWidth); + make.right.equalTo(headerV).offset(-kPaddingLeftWidth); + make.centerY.equalTo(headerV); + }]; + UIView *lineV = [UIView lineViewWithPointYY:43.5]; + [headerV addSubview:lineV]; + return headerV; + } + } + return [UIView new]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ + return (section == 1 && self.dataList.count > 0)? 44.0: 0; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return section == 0? 1: self.dataList.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + __weak typeof(self) weakSelf = self; + if (indexPath.section == 0) { + TeamPurchaseTopCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TeamPurchaseTopCell forIndexPath:indexPath]; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:0]; + cell.curTeam = _curTeam; + cell.closeWebTipBlock = ^(){ + weakSelf.curTeam.hasDismissWebTip = YES; + [weakSelf.myTableView reloadData]; + weakSelf.view.blankPageView.y = ([TeamPurchaseTopCell cellHeightWithObj:_curTeam] + 15); + }; + return cell; + } else { + if (_dataIndex == 0) { + TeamPurchaseOrderCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TeamPurchaseOrderCell forIndexPath:indexPath]; + cell.curOrder = self.dataList[indexPath.row]; + return cell; + }else{ + TeamPurchaseBillingCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TeamPurchaseBillingCell forIndexPath:indexPath]; + cell.curBilling = self.dataList[indexPath.row]; + cell.expandBlock = ^(TeamPurchaseBilling *billing){ + billing.isExpanded = !billing.isExpanded; + [weakSelf.myTableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; + }; + return cell; + } + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + if (indexPath.section == 0) { + return [TeamPurchaseTopCell cellHeightWithObj:_curTeam]; + } else { + if (_dataIndex == 0) { + return [TeamPurchaseOrderCell cellHeight]; + }else{ + return [TeamPurchaseBillingCell cellHeightWithObj:self.dataList[indexPath.row]]; + } + } +} + +@end diff --git a/Coding_iOS/Controllers/TeamSettingViewController.h b/Coding_iOS/Controllers/TeamSettingViewController.h new file mode 100644 index 000000000..99b16031d --- /dev/null +++ b/Coding_iOS/Controllers/TeamSettingViewController.h @@ -0,0 +1,15 @@ +// +// TeamSettingViewController.h +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/2/17. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "BaseViewController.h" +#import "Team.h" + +@interface TeamSettingViewController : BaseViewController +@property (strong, nonatomic) Team *curTeam; + +@end diff --git a/Coding_iOS/Controllers/TeamSettingViewController.m b/Coding_iOS/Controllers/TeamSettingViewController.m new file mode 100644 index 000000000..2bd5bd4bd --- /dev/null +++ b/Coding_iOS/Controllers/TeamSettingViewController.m @@ -0,0 +1,167 @@ +// +// TeamSettingViewController.m +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/2/17. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "TeamSettingViewController.h" +#import "SettingTextViewController.h" +#import "TitleValueMoreCell.h" +#import "TitleRImageMoreCell.h" +#import "JDStatusBarNotification.h" +#import "Helper.h" +#import "Coding_NetAPIManager.h" + +@interface TeamSettingViewController () +@property (strong, nonatomic) UITableView *myTableView; + +@end + +@implementation TeamSettingViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.title = @"企业设置"; + _myTableView = ({ + UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; + tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + tableView.backgroundColor = kColorTableSectionBg; + tableView.tableFooterView = [UIView new]; + tableView.delegate = self; + tableView.dataSource = self; + [tableView registerClass:[TitleValueMoreCell class] forCellReuseIdentifier:kCellIdentifier_TitleValueMore]; + [tableView registerClass:[TitleRImageMoreCell class] forCellReuseIdentifier:kCellIdentifier_TitleRImageMore]; + [self.view addSubview:tableView]; + [tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; + tableView; + }); +} + +#pragma mark Table +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ + return 2; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ + return 20; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ + return [UIView new]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return section == 0? 1: 2; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + if (indexPath.section == 0) { + TitleRImageMoreCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TitleRImageMore forIndexPath:indexPath]; + cell.curTeam = _curTeam; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; + return cell; + }else{ + TitleValueMoreCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TitleValueMore forIndexPath:indexPath]; + (indexPath.row == 0? [cell setTitleStr:@"企业名称" valueStr:_curTeam.name]: + [cell setTitleStr:@"企业域名" valueStr:[NSURL URLWithString:[NSObject baseURLStr]].host]); + cell.accessoryType = indexPath.row == 0? UITableViewCellAccessoryDisclosureIndicator: UITableViewCellAccessoryNone; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; + return cell; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + return indexPath.section == 0? [TitleRImageMoreCell cellHeight]: [TitleValueMoreCell cellHeight]; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (indexPath.section == 0) { + //头像 + if (![JDStatusBarNotification isVisible]) { + __weak typeof(self) weakSelf = self; + [[UIAlertController ea_actionSheetCustomWithTitle:@"更换头像" buttonTitles:@[@"拍照", @"从相册选择"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + [weakSelf actionSheetDidDismissWithButtonIndex:index]; + }] showInView:self.view]; + } + }else if (indexPath.section == 1){ + if (indexPath.row == 0) { + //企业名称 + __weak typeof(self) weakSelf = self; + SettingTextViewController *vc = [SettingTextViewController settingTextVCWithTitle:@"企业名称" textValue:_curTeam.name doneBlock:^(NSString *textValue) { + NSString *preValue = weakSelf.curTeam.name; + weakSelf.curTeam.name = textValue; + [weakSelf.myTableView reloadData]; + [[Coding_NetAPIManager sharedManager] request_UpdateTeamInfo_WithObj:weakSelf.curTeam andBlock:^(id data, NSError *error) { + if (data) { + weakSelf.curTeam = data; + }else{ + weakSelf.curTeam.name = preValue; + } + [weakSelf.myTableView reloadData]; + }]; + }]; + [self.navigationController pushViewController:vc animated:YES]; + } + } +} + +#pragma mark UIActionSheetDelegate M +- (void)actionSheetDidDismissWithButtonIndex:(NSInteger)buttonIndex{ + if (buttonIndex == 2) { + return; + } + UIImagePickerController *picker = [[UIImagePickerController alloc] init]; + picker.delegate = self; + picker.allowsEditing = YES;//设置可编辑 + + if (buttonIndex == 0) { + // 拍照 + if (![Helper checkCameraAuthorizationStatus]) { + return; + } + picker.sourceType = UIImagePickerControllerSourceTypeCamera; + }else if (buttonIndex == 1){ + // 相册 + if (![Helper checkPhotoLibraryAuthorizationStatus]) { + return; + } + picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; + } + [self presentViewController:picker animated:YES completion:nil];//进入照相界面 +} + +#pragma mark UIImagePickerControllerDelegate +- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ + [picker dismissViewControllerAnimated:YES completion:^{ + UIImage *editedImage, *originalImage; + editedImage = [info objectForKey:UIImagePickerControllerEditedImage]; + __weak typeof(self) weakSelf = self; + + [[Coding_NetAPIManager sharedManager] request_UpdateTeamIconImage:editedImage successBlock:^(id responseObj) { + weakSelf.curTeam.avatar = [(Team *)responseObj avatar]; + [weakSelf.myTableView reloadData]; + } failureBlock:^(NSError *error) { + [NSObject showError:error]; + } progerssBlock:^(CGFloat progressValue) { + }]; + + // 保存原图片到相册中 + if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { + originalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; + UIImageWriteToSavedPhotosAlbum(originalImage, self, nil, NULL); + } + }]; +} + +- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ + [picker dismissViewControllerAnimated:YES completion:nil]; +} + +@end diff --git a/Coding_iOS/Controllers/TeamSupportViewController.h b/Coding_iOS/Controllers/TeamSupportViewController.h new file mode 100644 index 000000000..515784f1a --- /dev/null +++ b/Coding_iOS/Controllers/TeamSupportViewController.h @@ -0,0 +1,13 @@ +// +// TeamSupportViewController.h +// Coding_Enterprise_iOS +// +// Created by Easeeeeeeeee on 2018/3/15. +// Copyright © 2018年 Coding. All rights reserved. +// + +#import "BaseViewController.h" + +@interface TeamSupportViewController : BaseViewController + +@end diff --git a/Coding_iOS/Controllers/TeamSupportViewController.m b/Coding_iOS/Controllers/TeamSupportViewController.m new file mode 100644 index 000000000..91029977c --- /dev/null +++ b/Coding_iOS/Controllers/TeamSupportViewController.m @@ -0,0 +1,98 @@ +// +// TeamSupportViewController.m +// Coding_Enterprise_iOS +// +// Created by Easeeeeeeeee on 2018/3/15. +// Copyright © 2018年 Coding. All rights reserved. +// + +#define kTeamSupport_Phone @"400-930-9163" +#define kTeamSupport_Mail @"Enterprise@coding.net" +#define kTeamSupport_QQ @"2847276903" + +#import "TeamSupportViewController.h" + +#import "TeamSupportCell.h" + +@interface TeamSupportViewController () +@property (strong, nonatomic) UITableView *myTableView; + +@end + +@implementation TeamSupportViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + // Do any additional setup after loading the view. + self.title = @"售后支持"; + _myTableView = ({ + UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; + tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + tableView.backgroundColor = kColorTableSectionBg; + tableView.tableFooterView = [UIView new]; + tableView.delegate = self; + tableView.dataSource = self; + tableView.estimatedRowHeight = 0; + tableView.estimatedSectionHeaderHeight = 0; + tableView.estimatedSectionFooterHeight = 0; + [tableView registerClass:[TeamSupportCell class] forCellReuseIdentifier:kCellIdentifier_TeamSupportCell]; + [self.view addSubview:tableView]; + [tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; + tableView; + }); +} + +#pragma mark Table +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ + return 15; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ + return [UIView new]; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return 3; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + TeamSupportCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TeamSupportCell forIndexPath:indexPath]; + if (indexPath.row == 0) { + cell.leftL.text = @"联系电话"; + cell.rightL.text = kTeamSupport_Phone; + }else if (indexPath.row == 1){ + cell.leftL.text = @"联系邮箱"; + cell.rightL.text = kTeamSupport_Mail; + }else{ + cell.leftL.text = @"技术支持"; + cell.rightL.text = [NSString stringWithFormat:@"QQ:%@", kTeamSupport_QQ]; + } + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + return 50; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + NSURL *destinationURL; + if (indexPath.row == 0) { + destinationURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@", kTeamSupport_Phone]]; + }else if (indexPath.row == 1){ + destinationURL = [NSURL URLWithString:[NSString stringWithFormat:@"mailto://%@", kTeamSupport_Mail]]; + }else{ + destinationURL = [NSURL URLWithString:[NSString stringWithFormat:@"mqq://im/chat?chat_type=wpa&uin=%@&version=1&src_type=web", kTeamSupport_QQ]]; + } + if ([[UIApplication sharedApplication] canOpenURL:destinationURL]) { + [[UIApplication sharedApplication] openURL:destinationURL]; + }else{ + [[UIPasteboard generalPasteboard] setString:(indexPath.row == 0? kTeamSupport_Phone: indexPath.row == 1? kTeamSupport_Mail: kTeamSupport_QQ)]; + [NSObject showHudTipStr:@"已复制"]; + } +} + +@end diff --git a/Coding_iOS/Controllers/TeamViewController.h b/Coding_iOS/Controllers/TeamViewController.h index 9bb0edba7..0784e82d4 100644 --- a/Coding_iOS/Controllers/TeamViewController.h +++ b/Coding_iOS/Controllers/TeamViewController.h @@ -12,3 +12,9 @@ @interface TeamViewController : BaseViewController @property (strong, nonatomic) Team *curTeam; @end + +@interface EATeamHeaderView : UIView +@property (strong, nonatomic) UIImageView *bgV; + +@property (strong, nonatomic) Team *curTeam; +@end diff --git a/Coding_iOS/Controllers/TeamViewController.m b/Coding_iOS/Controllers/TeamViewController.m index d8ed6cfdf..635a99784 100644 --- a/Coding_iOS/Controllers/TeamViewController.m +++ b/Coding_iOS/Controllers/TeamViewController.m @@ -9,22 +9,26 @@ #import "TeamViewController.h" #import "ODRefreshControl.h" #import "TeamTopCell.h" -#import "TitleDisclosureCell.h" #import "Coding_NetAPIManager.h" #import "TeamProjectsViewController.h" #import "TeamMembersViewController.h" +#import "UserInfoIconCell.h" +#import "TeamSettingViewController.h" +#import "UIImageView+WebCache.h" +#import "TeamPurchaseViewController.h" +#import "TeamSupportViewController.h" @interface TeamViewController () @property (strong, nonatomic) UITableView *myTableView; @property (strong, nonatomic) ODRefreshControl *myRefreshControl; +@property (strong, nonatomic) EATeamHeaderView *tableHeaderV; @end @implementation TeamViewController - (void)viewDidLoad{ [super viewDidLoad]; - self.title = @"团队首页"; _myTableView = ({ UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; tableView.separatorStyle = UITableViewCellSeparatorStyleNone; @@ -33,7 +37,7 @@ - (void)viewDidLoad{ tableView.delegate = self; tableView.dataSource = self; [tableView registerClass:[TeamTopCell class] forCellReuseIdentifier:kCellIdentifier_TeamTopCell]; - [tableView registerClass:[TitleDisclosureCell class] forCellReuseIdentifier:kCellIdentifier_TitleDisclosure]; + [tableView registerClass:[UserInfoIconCell class] forCellReuseIdentifier:kCellIdentifier_UserInfoIconCell]; [self.view addSubview:tableView]; [tableView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.view); @@ -43,29 +47,95 @@ - (void)viewDidLoad{ tableView.estimatedSectionFooterHeight = 0; tableView; }); - _myRefreshControl = [[ODRefreshControl alloc] initInScrollView:self.myTableView]; - [_myRefreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged]; + + {//tableHeaderV + _tableHeaderV = [EATeamHeaderView new]; + _tableHeaderV.curTeam = _curTeam; + _myTableView.tableHeaderView = _tableHeaderV; + } + {//UINavigationBar + UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, kSafeArea_Top, kScreen_Width, 44)]; + navBar.shadowImage = [UIImage new]; + navBar.tintColor = [UIColor whiteColor]; + [navBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; + UINavigationItem *item = [UINavigationItem new]; +// UIBarButtonItem *backSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; +// backSpace.width = -7; + UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back_T_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(leftNavBtnClicked)]; +// item.leftBarButtonItems = @[backSpace, backItem]; + item.leftBarButtonItems = @[backItem]; + item.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"settingBtn_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(rightNavBtnClicked)]; + [navBar pushNavigationItem:item animated:NO]; + [self.view addSubview:navBar]; + } +} + +- (void)viewWillAppear:(BOOL)animated{ + [super viewWillAppear:animated]; [self refresh]; + + [self.navigationController addFullscreenPopGesture]; + [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES]; + [self.navigationController setNavigationBarHidden:YES animated:animated]; +} + +- (UIStatusBarStyle)preferredStatusBarStyle{ + return UIStatusBarStyleLightContent; +} + +- (void)viewWillDisappear:(BOOL)animated{ + [super viewWillDisappear:animated]; + + [self.navigationController setNavigationBarHidden:NO animated:animated]; +} + +- (void)viewDidDisappear:(BOOL)animated{ + [super viewDidDisappear:animated]; + + [self.navigationController removeFullscreenPopGesture]; } - (void)refresh{ ESWeak(self, weakSelf); - [[Coding_NetAPIManager sharedManager] request_DetailOfTeam:_curTeam andBlock:^(id data, NSError *error) { + [[Coding_NetAPIManager sharedManager] request_InfoOfTeam:_curTeam andBlock:^(id data, NSError *error) { [weakSelf.myRefreshControl endRefreshing]; if (data) { - weakSelf.curTeam = data; + weakSelf.curTeam = [Login curLoginCompany]; + weakSelf.curTeam.info = data; + weakSelf.tableHeaderV.curTeam = weakSelf.curTeam; [weakSelf.myTableView reloadData]; } }]; } +#pragma mark Action +- (void)leftNavBtnClicked{ + [self.navigationController popViewControllerAnimated:YES]; +} +- (void)rightNavBtnClicked{ + TeamSettingViewController *vc = [TeamSettingViewController new]; + vc.curTeam = _curTeam; + [self.navigationController pushViewController:vc animated:YES]; +} + +#pragma mark Scroll + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ + if (scrollView == _myTableView) { + [_tableHeaderV.bgV mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(_tableHeaderV).offset(scrollView.contentOffset.y); + }]; + } +} + #pragma mark Table - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ - return 2; + return 3; } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ - return section == 0? 0: 20; + return section == 0? 0: 15; + // return 20; } - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ @@ -73,7 +143,8 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ - return section == 0? 1: 2; + return section == 0? 1: section == 1? 2: 1; + // return section == 0? 0: 2; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ @@ -82,21 +153,31 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N cell.curTeam = _curTeam; [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; return cell; - }else{ - TitleDisclosureCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TitleDisclosure forIndexPath:indexPath]; - [cell setTitleStr:indexPath.row == 0? @"团队项目": @"团队成员"]; + }else if (indexPath.section == 1){ + UserInfoIconCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_UserInfoIconCell forIndexPath:indexPath]; + (indexPath.row == 0? [cell setTitle:@"项目管理" icon:@"team_info_pro"]: + [cell setTitle:@"成员管理" icon:@"team_info_mem"]); [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; return cell; + }else{ + UserInfoIconCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_UserInfoIconCell forIndexPath:indexPath]; + [cell setTitle:@"售后支持" icon:@"team_info_sup"]; + return cell; } } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ - return indexPath.section == 0? [TeamTopCell cellHeight]: 44; + return indexPath.section == 0? [NSObject isPrivateCloud].boolValue? 0: [TeamTopCell cellHeight]: [UserInfoIconCell cellHeight]; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES]; - if (indexPath.section == 1) { + + if (indexPath.section == 0) { + TeamPurchaseViewController *vc = [TeamPurchaseViewController new]; + vc.curTeam = _curTeam; + [self.navigationController pushViewController:vc animated:YES]; + }else if (indexPath.section == 1) { if (indexPath.row == 0) { TeamProjectsViewController *vc = [TeamProjectsViewController new]; vc.curTeam = _curTeam; @@ -106,7 +187,57 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath vc.curTeam = _curTeam; [self.navigationController pushViewController:vc animated:YES]; } + }else{ + [self.navigationController pushViewController:[TeamSupportViewController new] animated:YES]; + } +} + +@end + +@interface EATeamHeaderView () +@property (strong, nonatomic) UIImageView *iconV; +@property (strong, nonatomic) UILabel *titleL; +@end + +@implementation EATeamHeaderView + +- (instancetype)init{ + self = [super init]; + if (self) { + self.frame = CGRectMake(0, 0, kScreen_Width, 212); + _bgV = [UIImageView new]; + _bgV.backgroundColor = [UIColor colorWithHexString:@"0x425063"]; + // _bgV.image = [[UIImage imageNamed:@"team_bg"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 0, 200, 0) resizingMode:UIImageResizingModeStretch]; + [self addSubview:_bgV]; + [_bgV mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self); + make.top.equalTo(self); + }]; + + _iconV = [YLImageView new]; + [_iconV doBorderWidth:0 color:nil cornerRadius:75.0/2]; + [self addSubview:_iconV]; + _titleL = [UILabel labelWithSystemFontSize:17 textColorHexString:@"0xFFFFFF"]; + _titleL.textAlignment = NSTextAlignmentCenter; + [self addSubview:_titleL]; + + [_iconV mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(75, 75)); + make.centerX.equalTo(self); + make.bottom.equalTo(self).offset(-90); + }]; + [_titleL mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self); + make.top.equalTo(_iconV.mas_bottom).offset(20); + }]; } + return self; +} + +- (void)setCurTeam:(Team *)curTeam{ + _curTeam = curTeam; + [_iconV sd_setImageWithURL:[_curTeam.avatar urlImageWithCodePathResize:75 * 2] placeholderImage:kPlaceholderMonkeyRoundWidth(50.0)]; + _titleL.text = _curTeam.name; } @end diff --git a/Coding_iOS/Controllers/TipsViewController.m b/Coding_iOS/Controllers/TipsViewController.m index 4310e3fc8..4e33aaf19 100755 --- a/Coding_iOS/Controllers/TipsViewController.m +++ b/Coding_iOS/Controllers/TipsViewController.m @@ -52,6 +52,7 @@ - (void)viewDidLoad titleStr = @"系统通知"; break; default: + titleStr = @"通知"; break; } self.title = titleStr; @@ -183,14 +184,14 @@ - (void)rightNavBtnClicked{ [KxMenuItem menuItem:@"全部标注已读" image:[UIImage imageNamed:@"tips_menu_icon_mkread"] target:self action:@selector(p_markReadAll)], ]; [menuItems setValue:kColorDark4 forKey:@"foreColor"]; - CGRect senderFrame = CGRectMake(kScreen_Width - (kDevice_Is_iPhone6Plus? 30: 26), 0, 0, 0); + CGRect senderFrame = CGRectMake(kScreen_Width - (kDevice_Is_iPhone6Plus? 30: 26), 5, 0, 0); [KxMenu showMenuInView:self.view fromRect:senderFrame menuItems:menuItems]; } // @weakify(self); -// [[UIActionSheet bk_actionSheetCustomWithTitle:@"将本页的未读通知全部标记为已读?" buttonTitles:@[@"全部标为已读"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { +// [[UIAlertController ea_actionSheetCustomWithTitle:@"将本页的未读通知全部标记为已读?" buttonTitles:@[@"全部标为已读"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { // if (index == 0) { // @strongify(self); // [self p_markReadAll]; @@ -227,7 +228,12 @@ - (void)analyseHtmlMediaItem:(HtmlMediaItem *)item andTip:(CodingTip *)tip{ NSString *linkStr = item.href; UIViewController *vc = [BaseViewController analyseVCFromLinkStr:linkStr]; if (vc) { - [self.navigationController pushViewController:vc animated:YES]; + if ([vc isKindOfClass:NSClassFromString(@"TeamViewController")] && + ![Login curLoginUser].isAdministrator.boolValue) { + [NSObject showHudTipStr:@"无权访问企业账户"]; + }else{ + [self.navigationController pushViewController:vc animated:YES]; + } }else{ //网页 WebViewController *webVc = [WebViewController webVCWithUrlStr:linkStr]; diff --git a/Coding_iOS/Controllers/Topic/CSScrollview.m b/Coding_iOS/Controllers/Topic/CSScrollview.m index c5ddf0e21..9f6d2a9ca 100644 --- a/Coding_iOS/Controllers/Topic/CSScrollview.m +++ b/Coding_iOS/Controllers/Topic/CSScrollview.m @@ -176,7 +176,7 @@ @implementation CSScrollUnit { - (void)setRefIteml:(CSScrollItem*)refIteml { if (!_imgView) { - _imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height)]; + _imgView = [[YLImageView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height)]; _imgView.backgroundColor = kColorTableBG; [self.contentView addSubview:_imgView]; } diff --git a/Coding_iOS/Controllers/Topic/CSTopicDetailVC.m b/Coding_iOS/Controllers/Topic/CSTopicDetailVC.m index 473b463e4..65fb8b1a5 100644 --- a/Coding_iOS/Controllers/Topic/CSTopicDetailVC.m +++ b/Coding_iOS/Controllers/Topic/CSTopicDetailVC.m @@ -191,7 +191,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N if ([Login isLoginUserGlobalKey:weakSelf.commentToUser.global_key]) { ESWeakSelf - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { ESStrongSelf if (index == 0 && _self.commentIndex >= 0) { Comment *comment = [_self.commentTweet.comment_list objectAtIndex:_self.commentIndex]; @@ -230,7 +230,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N if ([self.myMsgInputView isAndResignFirstResponder]) { return ; } - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf deleteTweet:curTweet]; } @@ -420,11 +420,12 @@ - (void)sendTweet{ __weak typeof(self) weakSelf = self; TweetSendViewController *vc = [[TweetSendViewController alloc] init]; vc.sendNextTweet = ^(Tweet *nextTweet){ - [nextTweet saveSendData];//发送前保存草稿 [[Coding_NetAPIManager sharedManager] request_Tweet_DoTweet_WithObj:nextTweet andBlock:^(id data, NSError *error) { if (data) { [Tweet deleteSendData];//发送成功后删除草稿 [weakSelf refresh]; + }else{ + [nextTweet saveSendData];//发送失败,保存草稿 } }]; }; diff --git a/Coding_iOS/Controllers/Topic/CSTopicHeaderView.m b/Coding_iOS/Controllers/Topic/CSTopicHeaderView.m index a496df50b..d6d34ccdc 100644 --- a/Coding_iOS/Controllers/Topic/CSTopicHeaderView.m +++ b/Coding_iOS/Controllers/Topic/CSTopicHeaderView.m @@ -84,7 +84,7 @@ - (void)updateWithJoinedUsers:(NSArray*)userlist { for (int i=0; i kScreen_Width) { diff --git a/Coding_iOS/Controllers/TopicAnswerDetailViewController.m b/Coding_iOS/Controllers/TopicAnswerDetailViewController.m index 5c1e028de..4ed59b287 100644 --- a/Coding_iOS/Controllers/TopicAnswerDetailViewController.m +++ b/Coding_iOS/Controllers/TopicAnswerDetailViewController.m @@ -196,7 +196,7 @@ - (void)doCommentToTopic:(ProjectTopic *)toComment ofAnswer:(ProjectTopic *)answ if (_toComment) { if ([Login isLoginUserGlobalKey:_toComment.owner.global_key]) { ESWeakSelf - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { ESStrongSelf if (index == 0) { [_self deleteTopic:_self.toComment ofAnswer:answer isComment:YES]; diff --git a/Coding_iOS/Controllers/TopicDetailViewController.m b/Coding_iOS/Controllers/TopicDetailViewController.m index 0503e19cc..c14a49457 100755 --- a/Coding_iOS/Controllers/TopicDetailViewController.m +++ b/Coding_iOS/Controllers/TopicDetailViewController.m @@ -292,7 +292,7 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger [weakSelf doCommentToTopic:nil ofAnswer:nil sender:sender]; }; _headerV.deleteBlock = ^(ProjectTopic *curTopic){ - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此讨论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此讨论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf deleteTopic:weakSelf.curTopic ofAnswer:nil isComment:NO]; } @@ -393,7 +393,7 @@ - (void)doCommentToTopic:(ProjectTopic *)toComment ofAnswer:(ProjectTopic *)answ if (_toComment) { if ([Login isLoginUserGlobalKey:_toComment.owner.global_key]) { ESWeakSelf - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { ESStrongSelf if (index == 0) { [_self deleteTopic:_self.toComment ofAnswer:answer isComment:YES]; @@ -682,7 +682,7 @@ - (void)setCurTopic:(ProjectTopic *)curTopic{ - (UIView *)makeViewForUser:(User *)user{ CGFloat width = 30.0; - UIImageView *imageV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, width, width)]; + UIImageView *imageV = [[YLImageView alloc] initWithFrame:CGRectMake(0, 0, width, width)]; imageV.layer.masksToBounds = YES; imageV.layer.cornerRadius = width/2; imageV.layer.borderColor = [UIColor colorWithHexString:@"0xFFAE03"].CGColor; diff --git a/Coding_iOS/Controllers/TweetDetailViewController.m b/Coding_iOS/Controllers/TweetDetailViewController.m index 93b63c1a1..2199aad3d 100644 --- a/Coding_iOS/Controllers/TweetDetailViewController.m +++ b/Coding_iOS/Controllers/TweetDetailViewController.m @@ -77,15 +77,15 @@ - (void)viewDidLoad _refreshControl = [[ODRefreshControl alloc] initInScrollView:self.myTableView]; [_refreshControl addTarget:self action:@selector(refreshTweet) forControlEvents:UIControlEventValueChanged]; - //评论 - _myMsgInputView = [UIMessageInputView messageInputViewWithType:UIMessageInputViewContentTypeTweet]; - _myMsgInputView.isAlwaysShow = YES; - _myMsgInputView.delegate = self; - _myMsgInputView.curProject = _curProject; - - UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0,CGRectGetHeight(_myMsgInputView.frame), 0.0); - self.myTableView.contentInset = contentInsets; - self.myTableView.scrollIndicatorInsets = contentInsets; +// //评论 +// _myMsgInputView = [UIMessageInputView messageInputViewWithType:UIMessageInputViewContentTypeTweet]; +// _myMsgInputView.isAlwaysShow = YES; +// _myMsgInputView.delegate = self; +// _myMsgInputView.curProject = _curProject; +// +// UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0,CGRectGetHeight(_myMsgInputView.frame), 0.0); +// self.myTableView.contentInset = contentInsets; +// self.myTableView.scrollIndicatorInsets = contentInsets; [self refreshTweet]; } @@ -108,10 +108,20 @@ - (void)viewDidAppear:(BOOL)animated{ } } -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. +- (void)setCurTweet:(Tweet *)curTweet{ + _curTweet = curTweet; + if ([_curTweet isProjectTweet]) { + _myMsgInputView = nil; + }else{ + //评论 + _myMsgInputView = [UIMessageInputView messageInputViewWithType:UIMessageInputViewContentTypeTweet]; + _myMsgInputView.isAlwaysShow = YES; + _myMsgInputView.delegate = self; + _myMsgInputView.curProject = _curProject; + } + UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0,CGRectGetHeight(_myMsgInputView.frame), 0.0); + self.myTableView.contentInset = contentInsets; + self.myTableView.scrollIndicatorInsets = contentInsets; } - (void)rightNavBtnClicked{ @@ -194,7 +204,7 @@ - (void)refreshTweet{ if (weakSelf.curTweet.isProjectTweet && (weakSelf.curTweet.project.current_user_role_id.integerValue >= 90 || [Login isLoginUserGlobalKey:weakSelf.curTweet.owner.global_key])) { - [self.navigationItem setRightBarButtonItem:[UIBarButtonItem itemWithBtnTitle:@"编辑" target:self action:@selector(rightNavBtnClicked)] animated:YES]; + [self.navigationItem setRightBarButtonItem:[UIBarButtonItem itemWithBtnTitle:@"编辑" target:self action:@selector(rightNavBtnClicked)] animated:YES]; } }else{ [weakSelf.refreshControl endRefreshing]; @@ -222,7 +232,8 @@ - (void)refreshComments{ #pragma mark TableM - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ NSInteger row = 0; - if (_curTweet && _curTweet.comment_list) { +// if (_curTweet && _curTweet.comment_list) { + if (_curTweet && _curTweet.comment_list && ![_curTweet isProjectTweet]) { row = 1+ [_curTweet.comment_list count]; }else{ row = 1; @@ -245,7 +256,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N return ; } ESWeakSelf; - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:self.curTweet.isProjectTweet? @"删除此公告": @"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:self.curTweet.isProjectTweet? @"删除此公告": @"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { ESStrongSelf if (index == 0) { [_self deleteTweet:_self.curTweet]; @@ -343,7 +354,7 @@ - (void)doCommentToComment:(Comment *)toComment sender:(id)sender{ if (_toComment) { if ([Login isLoginUserGlobalKey:_toComment.owner.global_key]) { ESWeakSelf; - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { ESStrongSelf if (index == 0) { [_self deleteComment:_self.toComment ofTweet:_self.curTweet]; @@ -427,9 +438,15 @@ - (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithTransitInfo #pragma mark to VC - (void)goToUserInfo:(User *)curUser{ - UserInfoViewController *vc = [[UserInfoViewController alloc] init]; - vc.curUser = curUser; - [self.navigationController pushViewController:vc animated:YES]; + if (kTarget_Enterprise) { + UserInfoDetailViewController *vc = [UserInfoDetailViewController new]; + vc.curUser = curUser; + [self.navigationController pushViewController:vc animated:YES]; + }else{ + UserInfoViewController *vc = [[UserInfoViewController alloc] init]; + vc.curUser = curUser; + [self.navigationController pushViewController:vc animated:YES]; + } } #pragma mark loadCellRequest diff --git a/Coding_iOS/Controllers/TweetSendViewController.m b/Coding_iOS/Controllers/TweetSendViewController.m index 54b35383a..18934c734 100755 --- a/Coding_iOS/Controllers/TweetSendViewController.m +++ b/Coding_iOS/Controllers/TweetSendViewController.m @@ -180,13 +180,13 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath - (void)showActionForPhoto{ @weakify(self); - [[UIActionSheet bk_actionSheetCustomWithTitle:nil buttonTitles:@[@"拍照", @"从相册选择"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:nil buttonTitles:@[@"拍照", @"从相册选择"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { @strongify(self); - [self photoActionSheet:sheet DismissWithButtonIndex:index]; + [self photoActionSheetDismissWithButtonIndex:index]; }] showInView:self.view]; } -- (void)photoActionSheet:(UIActionSheet *)sheet DismissWithButtonIndex:(NSInteger)buttonIndex{ +- (void)photoActionSheetDismissWithButtonIndex:(NSInteger)buttonIndex{ if (buttonIndex == 0) { // 拍照 if (![Helper checkCameraAuthorizationStatus]) { @@ -271,7 +271,7 @@ - (void)cancelBtnClicked:(id)sender{ [self dismissSelfWithCompletion:nil]; }else{ __weak typeof(self) weakSelf = self; - [[UIActionSheet bk_actionSheetCustomWithTitle:@"是否保存草稿" buttonTitles:@[@"保存"] destructiveTitle:@"不保存" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:@"是否保存草稿" buttonTitles:@[@"保存"] destructiveTitle:@"不保存" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf.curTweet saveSendData]; }else if (index == 1){ @@ -296,15 +296,12 @@ - (void)dismissSelfWithCompletion:(void (^)(void))completion{ - (void)handleCallBack:(NSString *)callback status:(BOOL)handleStatus{ NSString *schemeStr = [NSString stringWithFormat:@"%@://coding.net?type=%@&handle_result=%@", callback, @"handle_result", handleStatus? @(1): @(0)]; if (handleStatus) {//弹出提示给用户选择 - UIAlertView *alertV = [UIAlertView bk_alertViewWithTitle:@"已发送" message:@"是否需要返回原来应用?"]; - [alertV bk_setCancelButtonWithTitle:@"返回原应用" handler:nil]; - [alertV bk_addButtonWithTitle:@"留在 Coding" handler:nil]; - alertV.bk_didDismissBlock = ^(UIAlertView *alertView, NSInteger buttonIndex){ - if (buttonIndex == 0) {// + [[UIAlertController ea_alertViewWithTitle:@"已发送" message:@"是否需要返回原来应用?" buttonTitles:@[@"留在 CODING"] destructiveTitle:nil cancelTitle:@"返回原应用" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 1) {// [[UIApplication sharedApplication] openURL:[NSURL URLWithString:schemeStr]]; } - }; - [alertV show]; + }] show]; + }else{//直接返回 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:schemeStr]]; [self dismissSelfWithCompletion:nil]; diff --git a/Coding_iOS/Controllers/UserInfoDetailViewController.m b/Coding_iOS/Controllers/UserInfoDetailViewController.m index b4cd4cc6c..62fe1b7bb 100644 --- a/Coding_iOS/Controllers/UserInfoDetailViewController.m +++ b/Coding_iOS/Controllers/UserInfoDetailViewController.m @@ -12,6 +12,7 @@ #import "UserInfoDetailUserCell.h" #import "TitleValueCell.h" +#import "Coding_NetAPIManager.h" @interface UserInfoDetailViewController () @property (strong, nonatomic) UITableView *myTableView; @@ -43,8 +44,149 @@ - (void)viewDidLoad { tableView.estimatedSectionFooterHeight = 0; tableView; }); + [self refresh]; } +- (void)refresh{ + __weak typeof(self) weakSelf = self; + [[Coding_NetAPIManager sharedManager] request_UserInfo_WithObj:_curUser andBlock:^(id data, NSError *error) { + if (data) { + weakSelf.curUser = data; + [weakSelf.myTableView reloadData]; + } + }]; +} + +#ifdef Target_Enterprise + +#pragma mark TableM + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ + return 5; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + NSInteger row; + switch (section) { + case 0: + row = 1; + break; + case 1: + row = 3; + break; + case 2: + row = 4; + break; + case 3: + row = 2; + break; + default: + row = 1; + break; + } + return row; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + if (indexPath.section == 0) { + UserInfoDetailUserCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_UserInfoDetailUserCell forIndexPath:indexPath]; + [cell setName:_curUser.name icon:_curUser.avatar]; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; + return cell; + }else if (indexPath.section == 4){ + UserInfoDetailTagCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_UserInfoDetailTagCell forIndexPath:indexPath]; + [cell setTagStr:_curUser.tags_str]; + cell.accessoryType = UITableViewCellAccessoryNone; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; + return cell; + }else{ + TitleValueCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier_TitleValue forIndexPath:indexPath]; + [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:kPaddingLeftWidth]; + + switch (indexPath.section) { + case 1: + switch (indexPath.row) { + case 0: + [cell setTitleStr:@"加入时间" valueStr:[_curUser.created_at string_yyyy_MM_dd]]; + break; + case 1: + [cell setTitleStr:@"最后活动" valueStr:[_curUser.last_activity_at string_yyyy_MM_dd]]; + break; + default: + [cell setTitleStr:@"用户名" valueStr:_curUser.global_key]; + break; + } + break; + case 2: + switch (indexPath.row) { + case 0: + if (_curUser.sex.intValue == 0) { + // 男 + [cell setTitleStr:@"性别" valueStr:@"男"]; + }else if (_curUser.sex.intValue == 1){ + // 女 + [cell setTitleStr:@"性别" valueStr:@"女"]; + }else{ + // 未知 + [cell setTitleStr:@"性别" valueStr:@"未知"]; + } + break; + case 1: + [cell setTitleStr:@"生日" valueStr:_curUser.birthday ?: @"未填写"]; + break; + case 2: + [cell setTitleStr:@"所在地" valueStr:_curUser.location]; + break; + default: + [cell setTitleStr:@"座右铭" valueStr:_curUser.slogan]; + break; + } + break; + default: + if (indexPath.row == 0) { + [cell setTitleStr:@"公司" valueStr:_curUser.company]; + }else{ + [cell setTitleStr:@"职位" valueStr:_curUser.job_str]; + } + break; + } + return cell; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + CGFloat cellHeight; + if (indexPath.section == 0) { + cellHeight = [UserInfoDetailUserCell cellHeight]; + }else if (indexPath.section == 4){ + cellHeight = [UserInfoDetailTagCell cellHeightWithObj:_curUser.tags_str]; + }else{ + cellHeight = 44; + } + return cellHeight; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ + return 20.0; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + return 0.5; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ + UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreen_Width, 1)]; + headerView.backgroundColor = kColorTableSectionBg; + [headerView setHeight:20.0]; + return headerView; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +#else + #pragma mark TableM - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ @@ -100,7 +242,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N [cell setTitleStr:@"最后活动" valueStr:[_curUser.last_activity_at string_yyyy_MM_dd]]; break; default: - [cell setTitleStr:@"个性后缀" valueStr:_curUser.global_key]; + [cell setTitleStr:@"用户名" valueStr:_curUser.global_key]; break; } break; @@ -176,10 +318,6 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath [tableView deselectRowAtIndexPath:indexPath animated:YES]; } -- (void)dealloc -{ - _myTableView.delegate = nil; - _myTableView.dataSource = nil; -} +#endif @end diff --git a/Coding_iOS/Controllers/UserInfoViewController.h b/Coding_iOS/Controllers/UserInfoViewController.h index 0f11b613d..0b7e3512b 100644 --- a/Coding_iOS/Controllers/UserInfoViewController.h +++ b/Coding_iOS/Controllers/UserInfoViewController.h @@ -7,7 +7,9 @@ // #import "BaseViewController.h" -#import "user.h" +#import "User.h" + +#import "UserInfoDetailViewController.h" @interface UserInfoViewController : BaseViewController @property (strong, nonatomic) User *curUser; diff --git a/Coding_iOS/Controllers/UserInfoViewController.m b/Coding_iOS/Controllers/UserInfoViewController.m index 9747f86db..f5c2aeffb 100644 --- a/Coding_iOS/Controllers/UserInfoViewController.m +++ b/Coding_iOS/Controllers/UserInfoViewController.m @@ -16,7 +16,6 @@ #import "AddUserViewController.h" #import "SettingViewController.h" #import "SettingMineInfoViewController.h" -#import "UserInfoDetailViewController.h" #import "ProjectListViewController.h" #import "LocalFoldersViewController.h" diff --git a/Coding_iOS/Controllers/UserOrProjectTweetsViewController.m b/Coding_iOS/Controllers/UserOrProjectTweetsViewController.m index 17e1817fc..a1175f7d0 100755 --- a/Coding_iOS/Controllers/UserOrProjectTweetsViewController.m +++ b/Coding_iOS/Controllers/UserOrProjectTweetsViewController.m @@ -207,24 +207,29 @@ - (void)refreshMore{ } - (void)sendRequest{ - if (_curTweets.tweetType == TweetTypeUserSingle && _curTweets.curUser.name.length <= 0) { - [self refreshCurUser]; - return; + if (self.curTweets.list.count <= 0) { + [self.myTableView beginLoading]; } - - __weak typeof(self) weakSelf = self; - [[Coding_NetAPIManager sharedManager] request_Tweets_WithObj:_curTweets andBlock:^(id data, NSError *error) { - [weakSelf.refreshControl endRefreshing]; - [weakSelf.myTableView.infiniteScrollingView stopAnimating]; - if (data) { - [weakSelf.curTweets configWithTweets:data]; - [weakSelf.myTableView reloadData]; - weakSelf.myTableView.showsInfiniteScrolling = weakSelf.curTweets.canLoadMore; - } - [weakSelf.view configBlankPage:[weakSelf blankType] hasData:(weakSelf.curTweets.list.count > 0) hasError:(error != nil) offsetY:[weakSelf blankPageOffsetY] reloadButtonBlock:^(id sender) { - [weakSelf sendRequest]; + if (_curTweets.tweetType == TweetTypeUserSingle && _curTweets.curUser.name.length <= 0) { + [self refreshCurUser]; + }else if (_curTweets.tweetType == TweetTypeProject && ![_curTweets.curPro.id isKindOfClass:[NSNumber class]]){ + [self refreshCurPro]; + }else{ + __weak typeof(self) weakSelf = self; + [[Coding_NetAPIManager sharedManager] request_Tweets_WithObj:_curTweets andBlock:^(id data, NSError *error) { + [weakSelf.myTableView endLoading]; + [weakSelf.refreshControl endRefreshing]; + [weakSelf.myTableView.infiniteScrollingView stopAnimating]; + if (data) { + [weakSelf.curTweets configWithTweets:data]; + [weakSelf.myTableView reloadData]; + weakSelf.myTableView.showsInfiniteScrolling = weakSelf.curTweets.canLoadMore; + } + [weakSelf.view configBlankPage:[weakSelf blankType] hasData:(weakSelf.curTweets.list.count > 0) hasError:(error != nil) offsetY:[weakSelf blankPageOffsetY] reloadButtonBlock:^(id sender) { + [weakSelf sendRequest]; + }]; }]; - }]; + } } - (CGFloat)blankPageOffsetY{//MeDisplayViewController @@ -243,7 +248,7 @@ - (void)refreshCurUser{ weakSelf.title = weakSelf.curTweets.curUser.name; [weakSelf sendRequest]; }else{ - [weakSelf.view endLoading]; + [weakSelf.myTableView endLoading]; [weakSelf.view configBlankPage:[weakSelf blankType] hasData:(weakSelf.curTweets.list.count > 0) hasError:YES offsetY:[weakSelf blankPageOffsetY] reloadButtonBlock:^(id sender) { [weakSelf sendRequest]; }]; @@ -251,6 +256,21 @@ - (void)refreshCurUser{ }]; } +- (void)refreshCurPro{ + __weak typeof(self) weakSelf = self; + [[Coding_NetAPIManager sharedManager] request_ProjectDetail_WithObj:_curTweets.curPro andBlock:^(id data, NSError *error) { + if (data) { + weakSelf.curTweets.curPro = data; + weakSelf.title = weakSelf.curTweets.curPro.name; + [weakSelf sendRequest]; + }else{ + [weakSelf.myTableView endLoading]; + [weakSelf.view configBlankPage:[weakSelf blankType] hasData:(weakSelf.curTweets.list.count > 0) hasError:YES offsetY:[weakSelf blankPageOffsetY] reloadButtonBlock:^(id sender) { + [weakSelf sendRequest]; + }]; + } + }]; +} #pragma mark TableM - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ @@ -279,7 +299,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N if ([Login isLoginUserGlobalKey:weakSelf.commentToUser.global_key]) { - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"删除此评论" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0 && weakSelf.commentIndex >= 0) { Comment *comment = [weakSelf.commentTweet.comment_list objectAtIndex:weakSelf.commentIndex]; [weakSelf deleteComment:comment ofTweet:weakSelf.commentTweet]; @@ -297,9 +317,15 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N [weakSelf.myTableView reloadData]; }; cell.userBtnClickedBlock = ^(User *curUser){ - UserInfoViewController *vc = [[UserInfoViewController alloc] init]; - vc.curUser = curUser; - [self.navigationController pushViewController:vc animated:YES]; + if (kTarget_Enterprise) { + UserInfoDetailViewController *vc = [UserInfoDetailViewController new]; + vc.curUser = curUser; + [self.navigationController pushViewController:vc animated:YES]; + }else{ + UserInfoViewController *vc = [[UserInfoViewController alloc] init]; + vc.curUser = curUser; + [self.navigationController pushViewController:vc animated:YES]; + } }; cell.moreLikersBtnClickedBlock = ^(Tweet *curTweet){ LikersViewController *vc = [[LikersViewController alloc] init]; @@ -312,7 +338,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N } self.deleteTweet = curTweet; self.deleteTweetsIndex = outTweetsIndex; - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:curTweet.isProjectTweet? @"删除此公告": @"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + UIAlertController *actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:curTweet.isProjectTweet? @"删除此公告": @"删除此冒泡" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf deleteTweet:weakSelf.deleteTweet outTweetsIndex:weakSelf.deleteTweetsIndex]; } @@ -338,6 +364,8 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + Tweet *toTweet = [_curTweets.list objectAtIndex:indexPath.row]; [self goToDetailWithTweet:toTweet]; } diff --git a/Coding_iOS/Controllers/UsersViewController.m b/Coding_iOS/Controllers/UsersViewController.m index fbd161587..236ec59fe 100755 --- a/Coding_iOS/Controllers/UsersViewController.m +++ b/Coding_iOS/Controllers/UsersViewController.m @@ -59,9 +59,12 @@ - (void)viewDidLoad{ case UsersTypeFriends_Message: self.title = @"我的好友"; break; + case UsersType_CompanyMember: + self.title = @"企业成员"; + break; case UsersTypeFriends_At: case UsersTypeFriends_Transpond:{ - self.title = @"我的好友"; + self.title = kTarget_Enterprise? @"企业成员": @"我的好友"; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStylePlain target:self action:@selector(dismissSelf)]; } break; @@ -98,7 +101,7 @@ - (void)viewDidLoad{ UISearchBar *searchBar = [[UISearchBar alloc] init]; searchBar.delegate = self; [searchBar sizeToFit]; - [searchBar setPlaceholder:@"昵称/个性后缀"]; + [searchBar setPlaceholder:@"昵称/用户名"]; searchBar; }); _myTableView.tableHeaderView = _mySearchBar; @@ -172,6 +175,9 @@ - (void)sendRequest{ [weakSelf.myTableView.infiniteScrollingView stopAnimating]; if (data) { [weakSelf.curUsers configWithObj:data]; + if (weakSelf.curUsers.type == UsersType_CompanyMember) {//发私信,移除自己 + [weakSelf.curUsers removeLoginUserFromList]; + } weakSelf.groupedDict = [weakSelf.curUsers dictGroupedByPinyin]; [weakSelf.myTableView reloadData]; @@ -330,6 +336,10 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath vc.type = AddUserTypeFollow; [self.navigationController pushViewController:vc animated:YES]; } + }else if (_curUsers.type == UsersType_CompanyMember){ + ConversationViewController *vc = [[ConversationViewController alloc] init]; + vc.myPriMsgs = [PrivateMessages priMsgsWithUser:user]; + [self.navigationController pushViewController:vc animated:YES]; }else if (_curUsers.type == UsersTypeFriends_At){ [self dismissViewControllerAnimated:YES completion:^{ if (weakSelf.selectUserBlock) { @@ -337,38 +347,33 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath } }]; }else if (_curUsers.type == UsersTypeFriends_Transpond){ - UIAlertView *alertView = [UIAlertView bk_alertViewWithTitle:@"确定发送给:" message:user.name]; - [alertView bk_setCancelButtonWithTitle:@"取消" handler:nil]; - [alertView bk_addButtonWithTitle:@"确定" handler:nil]; - [alertView bk_setDidDismissBlock:^(UIAlertView *alert, NSInteger index) { - switch (index) { - case 1: - { - [weakSelf dismissViewControllerAnimated:YES completion:^{ - if (weakSelf.transpondMessageBlock) { - PrivateMessage *nextMsg = [PrivateMessage privateMessageWithObj:weakSelf.curMessage andFriend:user]; - weakSelf.transpondMessageBlock(nextMsg); - } - }]; - } - break; - default: - break; + [[UIAlertController ea_alertViewWithTitle:@"确定发送给:" message:user.name buttonTitles:@[@"确定"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { + [weakSelf dismissViewControllerAnimated:YES completion:^{ + if (weakSelf.transpondMessageBlock) { + PrivateMessage *nextMsg = [PrivateMessage privateMessageWithObj:weakSelf.curMessage andFriend:user]; + weakSelf.transpondMessageBlock(nextMsg); + } + }]; } - }]; - [alertView show]; + }] show]; }else{ - UserInfoViewController *vc = [[UserInfoViewController alloc] init]; - vc.curUser = user; - vc.followChanged = ^(User *curUser){ - user.followed = curUser.followed; - [weakSelf.myTableView reloadData]; - }; - [self.navigationController pushViewController:vc animated:YES]; + if (kTarget_Enterprise) { + UserInfoDetailViewController *vc = [UserInfoDetailViewController new]; + vc.curUser = user; + [self.navigationController pushViewController:vc animated:YES]; + }else{ + UserInfoViewController *vc = [[UserInfoViewController alloc] init]; + vc.curUser = user; + vc.followChanged = ^(User *curUser){ + user.followed = curUser.followed; + [weakSelf.myTableView reloadData]; + }; + [self.navigationController pushViewController:vc animated:YES]; + } } } - #pragma mark UISearchBarDelegate - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{ [searchBar insertBGColor:kColorNavBG]; diff --git a/Coding_iOS/Controllers/ValueListViewController.h b/Coding_iOS/Controllers/ValueListViewController.h index e9ca06df7..b6ed05d70 100755 --- a/Coding_iOS/Controllers/ValueListViewController.h +++ b/Coding_iOS/Controllers/ValueListViewController.h @@ -12,7 +12,8 @@ typedef NS_ENUM(NSInteger, ValueListType) { ValueListTypeTaskStatus = 0, ValueListTypeTaskPriority, - ValueListTypeProjectMemberType + ValueListTypeProjectMemberType, + ValueListTypeTeamMemberType }; typedef void(^IndexSelectedBlock)(NSInteger index); diff --git a/Coding_iOS/Controllers/ValueListViewController.m b/Coding_iOS/Controllers/ValueListViewController.m index 58068484f..a01c41b77 100755 --- a/Coding_iOS/Controllers/ValueListViewController.m +++ b/Coding_iOS/Controllers/ValueListViewController.m @@ -8,6 +8,7 @@ #import "ValueListViewController.h" #import "ValueListCell.h" +#import "ProjectTypeExplanationViewController.h" @interface ValueListViewController () @property (strong, nonatomic) UITableView *myTableView; @@ -85,14 +86,11 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N row = self.dataList.count-1 -row; } switch (_type) { - case ValueListTypeTaskStatus: - case ValueListTypeProjectMemberType: - [cell setTitleStr:[_dataList objectAtIndex:row] imageStr:nil isSelected:(_selectedIndex == row)]; - break; case ValueListTypeTaskPriority: [cell setTitleStr:[_dataList objectAtIndex:row] imageStr:[NSString stringWithFormat:@"taskPriority%ld", (long)row] isSelected:(_selectedIndex == row)]; break; default: + [cell setTitleStr:[_dataList objectAtIndex:row] imageStr:nil isSelected:(_selectedIndex == row)]; break; } [tableView addLineforPlainCell:cell forRowAtIndexPath:indexPath withLeftSpace:10]; @@ -121,16 +119,27 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath } self.selectedIndex = value; - if (_type == ValueListTypeTaskPriority || _type == ValueListTypeTaskStatus) { +// if (_type == ValueListTypeTaskPriority || _type == ValueListTypeTaskStatus) { [self.navigationController popViewControllerAnimated:YES]; - if (_selectBlock) { - _selectBlock(self.selectedIndex); - } - }else{ - [self.myTableView reloadData]; - } +// 在 viewWillDisappear 有 _selectBlock 了已经 +// if (_selectBlock) { +// _selectBlock(self.selectedIndex); +// } +// }else{ +// [self.myTableView reloadData]; +// } } +#ifdef Target_Enterprise + +#pragma mark - Tip +- (void)showMemberTypeTip{ + ProjectTypeExplanationViewController *vc = [ProjectTypeExplanationViewController new]; + [self.navigationController pushViewController:vc animated:YES]; +} + +#else + #pragma mark - Tip - (void)showMemberTypeTip{ if (self.tipView) { @@ -198,4 +207,6 @@ - (void)dismissTipView{ }]; } +#endif + @end diff --git a/Coding_iOS/Controllers/WebViewController.m b/Coding_iOS/Controllers/WebViewController.m index d3b8afd88..800148517 100644 --- a/Coding_iOS/Controllers/WebViewController.m +++ b/Coding_iOS/Controllers/WebViewController.m @@ -78,7 +78,9 @@ - (void)viewDidLoad{ _progressView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; _progressView.progressBarView.backgroundColor = kColorLightBlue; - [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"moreBtn_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(shareItemClicked)] animated:YES]; + if (!kTarget_Enterprise) {//企业版不支持分享 + [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"moreBtn_Nav"] style:UIBarButtonItemStylePlain target:self action:@selector(shareItemClicked)] animated:YES]; + } } - (void)viewWillAppear:(BOOL)animated{ diff --git a/Coding_iOS/Controllers/WikiEditViewController.m b/Coding_iOS/Controllers/WikiEditViewController.m index 546fb8300..d49ebb56f 100644 --- a/Coding_iOS/Controllers/WikiEditViewController.m +++ b/Coding_iOS/Controllers/WikiEditViewController.m @@ -72,8 +72,8 @@ - (void)viewDidLoad { if ([self.curWiki hasDraft]) { BOOL versionChanged = [self.curWiki draftVersionChanged]; __weak typeof(self) weakSelf = self; - [[UIAlertView bk_showAlertViewWithTitle:@"提示" message:versionChanged? @"有最新版本更新,您是否继续编辑上次保存的草稿?": @"是否启用上次保存的草稿?" cancelButtonTitle:@"取消" otherButtonTitles:@[@"编辑草稿"] handler:^(UIAlertView *alertView, NSInteger buttonIndex) { - if (buttonIndex == 1) { + [[UIAlertController ea_alertViewWithTitle:@"提示" message:versionChanged? @"有最新版本更新,您是否继续编辑上次保存的草稿?": @"是否启用上次保存的草稿?" buttonTitles:@[@"编辑草稿"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { [weakSelf.curWiki readDraft]; [weakSelf refreshUI]; }else{ @@ -117,8 +117,8 @@ - (BOOL)navigationShouldPopOnBackButton{ self.curWiki.mdContent = _inputContentView.text; if ([self.curWiki hasChanged]) { __weak typeof(self) weakSelf = self; - [[UIAlertView bk_showAlertViewWithTitle:@"提示" message:@"是否需要保存草稿?" cancelButtonTitle:@"不保存" otherButtonTitles:@[@"保存"] handler:^(UIAlertView *alertView, NSInteger buttonIndex) { - if (buttonIndex == 1) { + [[UIAlertController ea_alertViewWithTitle:@"提示" message:@"是否需要保存草稿?" buttonTitles:@[@"保存"] destructiveTitle:nil cancelTitle:@"不保存" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { [weakSelf.curWiki saveDraft]; }else{ [weakSelf.curWiki deleteDraft]; diff --git a/Coding_iOS/Controllers/WikiViewController.m b/Coding_iOS/Controllers/WikiViewController.m index 660fe7909..43d6a3be9 100644 --- a/Coding_iOS/Controllers/WikiViewController.m +++ b/Coding_iOS/Controllers/WikiViewController.m @@ -160,7 +160,7 @@ - (void)addGesture{ #pragma refresh Data - (void)refresh{ - if (_wikiList) { + if (!_wikiList) { [self refreshWikiList]; }else{ [self refreshWikiDetail]; @@ -185,25 +185,33 @@ - (void)refreshWikiList{ weakSelf.wikiList = data; } if (weakSelf.wikiList.count > 0) { + if (!weakSelf.navigationItem.rightBarButtonItem) { + [weakSelf.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"moreBtn_Nav"] style:UIBarButtonItemStylePlain target:weakSelf action:@selector(rightNavBtnClicked)] animated:NO]; + } weakSelf.iid = weakSelf.iid ?: [(EAWiki *)weakSelf.wikiList.firstObject iid]; [weakSelf refreshWikiDetail]; }else{ + [weakSelf.navigationItem setRightBarButtonItem:nil animated:NO]; [weakSelf doSomethingWithError:error]; } }]; } - (void)refreshWikiDetail{ - if (!_curWiki) { - [self.view beginLoading]; - } - __weak typeof(self) weakSelf = self; - [[Coding_NetAPIManager sharedManager] request_WikiDetailWithPro:_myProject iid:_iid version:_version andBlock:^(id data, NSError *error) { - if (data) { - weakSelf.curWiki = data; + if (!_iid) { + [self refreshWikiList]; + }else{ + if (!_curWiki) { + [self.view beginLoading]; } - [weakSelf doSomethingWithError:error]; - }]; + __weak typeof(self) weakSelf = self; + [[Coding_NetAPIManager sharedManager] request_WikiDetailWithPro:_myProject iid:_iid version:_version andBlock:^(id data, NSError *error) { + if (data) { + weakSelf.curWiki = data; + } + [weakSelf doSomethingWithError:error]; + }]; + } } - (void)doSomethingWithError:(NSError *)error{ @@ -211,7 +219,9 @@ - (void)doSomethingWithError:(NSError *)error{ [self.myRefreshControl endRefreshing]; NSString *contentStr = [WebContentManager wikiPatternedWithContent:_curWiki.html]; - [self.webContentView loadHTMLString:contentStr baseURL:nil]; +// [self.webContentView loadHTMLString:contentStr baseURL:nil]; + [self.webContentView loadHTMLString:contentStr baseURL:[NSURL URLWithString:[self p_baseHref]]]; + BOOL hasError = (error != nil && !_curWiki); [self.view configBlankPage:EaseBlankPageTypeWiki hasData:(_curWiki != nil) hasError:hasError reloadButtonBlock:^(id sender) { @@ -220,12 +230,16 @@ - (void)doSomethingWithError:(NSError *)error{ self.webContentView.hidden = hasError; } +- (NSString *)p_baseHref{//写在 wiki.html 文件里的,没有 baseHref 的话,锚点会异常 + return @"https://coding.net/"; +} + #pragma mark Footer Action - (void)handleFooterIndex:(NSInteger)index{ if (_curWiki.isHistoryVersion) {//恢复版本 __weak typeof(self) weakSelf = self; - [[UIActionSheet bk_actionSheetCustomWithTitle:@"确定要恢复到当前版本吗?" buttonTitles:@[@"确认恢复"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:@"确定要恢复到当前版本吗?" buttonTitles:@[@"确认恢复"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf revertWiki]; } @@ -316,12 +330,19 @@ - (void)hideFooterV:(BOOL)hide{ #pragma mark UIWebViewDelegate - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ DebugLog(@"strLink=[%@]",request.URL.absoluteString); - UIViewController *vc = [BaseViewController analyseVCFromLinkStr:request.URL.absoluteString]; - if (vc) { - [self.navigationController pushViewController:vc animated:YES]; - return NO; +// #user-content-examples + NSString *urlStr = request.URL.absoluteString; + if ([urlStr isEqualToString:[self p_baseHref]] || + [urlStr hasPrefix:[[self p_baseHref] stringByAppendingString:@"#"]]) { + return YES; + }else{ + UIViewController *vc = [BaseViewController analyseVCFromLinkStr:request.URL.absoluteString]; + if (vc) { + [self.navigationController pushViewController:vc animated:YES]; + return NO; + } + return YES; } - return YES; } - (void)webViewDidStartLoad:(UIWebView *)webView{ [_activityIndicator startAnimating]; @@ -359,9 +380,9 @@ - (void)rightNavBtnClicked{ - (void)goToShareFileLink{ __weak typeof(self) weakSelf = self; - UIActionSheet *actionSheet; + UIAlertController *actionSheet; if (_curWiki.share) { - actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"该链接适用于所有人,无需登录" buttonTitles:@[@"拷贝链接"] destructiveTitle:@"关闭共享" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"该链接适用于所有人,无需登录" buttonTitles:@[@"拷贝链接"] destructiveTitle:@"关闭共享" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf doCopyShareUrl]; }else if (index == 1) { @@ -369,7 +390,7 @@ - (void)goToShareFileLink{ } }]; }else{ - actionSheet = [UIActionSheet bk_actionSheetCustomWithTitle:@"当前未开启共享,请先创建公开链接" buttonTitles:@[@"开启共享并拷贝链接"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + actionSheet = [UIAlertController ea_actionSheetCustomWithTitle:@"当前未开启共享,请先创建公开链接" buttonTitles:@[@"开启共享并拷贝链接"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf doOpenAndCopyShareUrl]; } @@ -413,7 +434,7 @@ - (void)doCloseShareUrl{ - (void)showDeleteWikiTip{ if (_iid) { __weak typeof(self) weakSelf = self; - [[UIActionSheet bk_actionSheetCustomWithTitle:@"确定要删除 Wiki 文档吗?" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { + [[UIAlertController ea_actionSheetCustomWithTitle:@"确定要删除 Wiki 文档吗?" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (index == 0) { [weakSelf deleteWiki]; } @@ -448,7 +469,7 @@ @implementation WikiFooterView - (instancetype)init{ self = [super init]; if (self) { - self.frame = CGRectMake(0, 0, kScreen_Width, 49); + self.frame = CGRectMake(0, 0, kScreen_Width, 49 + kSafeArea_Bottom); self.backgroundColor = kColorNavBG; [self addLineUp:YES andDown:NO]; } @@ -466,6 +487,7 @@ - (void)setCurWiki:(EAWiki *)curWiki{ __weak typeof(self) weakSelf = self; if (isHistoryVersion && !_revertBtn) { _revertBtn = [[UIButton alloc] initWithFrame:self.bounds]; + _revertBtn.height -= kSafeArea_Bottom; [_revertBtn bk_addEventHandler:^(id sender) { [weakSelf handleButtonClickedIndex:0]; } forControlEvents:UIControlEventTouchUpInside]; @@ -485,7 +507,7 @@ - (void)setCurWiki:(EAWiki *)curWiki{ _menuBtnList = @[].mutableCopy; NSInteger num = 3; CGFloat width = self.width/ num; - CGFloat height = self.height; + CGFloat height = self.height - kSafeArea_Bottom; for (NSInteger index = 0; index < num; index++) { UIButton *menuBtn = [[UIButton alloc] initWithFrame:CGRectMake(index * width, 0, width, height)]; [menuBtn bk_addEventHandler:^(id sender) { diff --git a/Coding_iOS/Ease_2FA/Controllers/OTPListViewController.m b/Coding_iOS/Ease_2FA/Controllers/OTPListViewController.m index 125c382c6..800403f24 100644 --- a/Coding_iOS/Ease_2FA/Controllers/OTPListViewController.m +++ b/Coding_iOS/Ease_2FA/Controllers/OTPListViewController.m @@ -67,7 +67,7 @@ + (NSString *)otpCodeWithGK:(NSString *)global_key{ for (OTPAuthURL *authURL in authURLs) { NSString *cur_issure = authURL.issuer; NSString *cur_global_key = [[authURL.name componentsSeparatedByString:@"@"] firstObject]; - if ([cur_issure isEqualToString:@"Coding"] && + if ([cur_issure.uppercaseString isEqualToString:@"CODING"] && [cur_global_key isEqualToString:global_key]) { otpCode = authURL.otpCode; break; @@ -149,9 +149,9 @@ - (void)configUI{ if (!_tipLabel) { _tipLabel = [UILabel new]; _tipLabel.numberOfLines = 0; - _tipLabel.textAlignment = NSTextAlignmentCenter; + _tipLabel.textAlignment = NSTextAlignmentNatural; _tipLabel.textColor = kColor222; - _tipLabel.text = @"启用两步验证后,登录 Coding 账户或进行敏感操作时都将需要输入密码和本客户端生成的验证码。"; + _tipLabel.text = @"启用两步验证后,账户登录或进行敏感操作时,都将需要输入密码和本客户端生成的验证码。"; [self.view addSubview:_tipLabel]; } if (!_beginButton) { @@ -215,13 +215,11 @@ - (void)dealWithScanResult:(NSString *)resultStr ofVC:(ZXScanCodeViewController }else{ tipStr = [NSString stringWithFormat:@"条码「%@」不是有效的身份验证令牌条码", resultStr]; } - UIAlertView *alertV = [UIAlertView bk_alertViewWithTitle:@"无效条码" message:tipStr]; - [alertV bk_addButtonWithTitle:@"重试" handler:^{ + [[UIAlertController ea_alertViewWithTitle:@"无效条码" message:tipStr buttonTitles:@[@"重试"] destructiveTitle:nil cancelTitle:nil andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { if (![vc isScaning]) { [vc startScan]; } - }]; - [alertV show]; + }] show]; } } @@ -235,12 +233,9 @@ - (void)addOneAuthURL:(OTPAuthURL *)authURL{ if ([authURL.otpCode isEqualToString:item.otpCode]) { kTipAlert(@"该二维码已被保存为账户名:\n%@", authURL.name); }else{ - UIAlertView *alertV = [UIAlertView bk_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"账户名:%@ 已存在\n选择 '更新' 覆盖原账户。", authURL.name]]; - [alertV bk_setCancelButtonWithTitle:@"取消" handler:nil]; - [alertV bk_addButtonWithTitle:@"更新" handler:nil]; @weakify(self); - alertV.bk_didDismissBlock = ^(UIAlertView *alertView, NSInteger buttonIndex){ - if (buttonIndex == 1) { + [[UIAlertController ea_alertViewWithTitle:@"提示" message:[NSString stringWithFormat:@"账户名:%@ 已存在\n选择 '更新' 覆盖原账户。", authURL.name] buttonTitles:@[@"更新"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { @strongify(self); if ([authURL saveToKeychain]) { if ([self.authURLs indexOfObject:item] != NSNotFound) { @@ -251,10 +246,8 @@ - (void)addOneAuthURL:(OTPAuthURL *)authURL{ }else{ kTipAlert(@"保存过程中发生了异常,请重新扫描"); } - } - }; - [alertV show]; + }] show]; } break; } @@ -327,14 +320,13 @@ - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEd if (editingStyle == UITableViewCellEditingStyleDelete) { OTPAuthURL *authURL = self.authURLs[indexPath.section]; __weak typeof(self) weakSelf = self; - UIAlertView *alertV = [UIAlertView bk_alertViewWithTitle:@"删除此账户不会停用两步验证" message:@"\n您可能会因此无法登录自己的账户\n在删除该账户前,请先停用两步验证,或者确保您可以通过其它方法生成验证码。"]; - [alertV bk_setCancelButtonWithTitle:@"取消" handler:^{ - [weakSelf configUI]; - }]; - [alertV bk_addButtonWithTitle:@"确认删除" handler:^{ - [weakSelf deleteOneAuthURL:authURL]; - }]; - [alertV show]; + [[UIAlertController ea_alertViewWithTitle:@"删除此账户不会停用两步验证" message:@"\n您可能会因此无法登录自己的账户\n在删除该账户前,请先停用两步验证,或者确保您可以通过其它方法生成验证码。" buttonTitles:nil destructiveTitle:@"确认删除" cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { + [weakSelf deleteOneAuthURL:authURL]; + }else{ + [weakSelf configUI]; + } + }] show]; } } diff --git a/Coding_iOS/Ease_2FA/Views/Cell/OTPTableViewCell.m b/Coding_iOS/Ease_2FA/Views/Cell/OTPTableViewCell.m index 8f9db1f20..f51b0e7c4 100644 --- a/Coding_iOS/Ease_2FA/Views/Cell/OTPTableViewCell.m +++ b/Coding_iOS/Ease_2FA/Views/Cell/OTPTableViewCell.m @@ -131,7 +131,8 @@ - (void)updateUI{ if (!_back_passwordLabel) { _back_passwordLabel = [UILabel new]; _back_passwordLabel.font = [UIFont systemFontOfSize:50]; - _back_passwordLabel.textColor = [UIColor colorWithHexString:@"0xE15957"]; +// _back_passwordLabel.textColor = [UIColor colorWithHexString:@"0xE15957"]; + _back_passwordLabel.textColor = kColorDark3; [self.contentView addSubview:_back_passwordLabel]; [_back_passwordLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.passwordLabel); @@ -153,6 +154,7 @@ - (void)otpAuthURLWillGenerateNewOTP:(NSNotification *)notification{ } - (void)prepareForReuse{ + [super prepareForReuse]; [self.contentView.layer removeAllAnimations]; for (UIView *view in [self subviews]) { if ([view isKindOfClass:NSClassFromString(@"UITableViewCellDeleteConfirmationView")]) { diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/120-1.png b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/120-1.png new file mode 100644 index 000000000..d264f71a8 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/120-1.png differ diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/120-2.png b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/120-2.png new file mode 100644 index 000000000..d264f71a8 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/120-2.png differ diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/180.png b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/180.png new file mode 100644 index 000000000..4638727ce Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/180.png differ diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/29.png b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/29.png new file mode 100644 index 000000000..3eca2f6e5 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/29.png differ diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/58.png b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/58.png new file mode 100644 index 000000000..23d0f69ce Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/58.png differ diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/80.png b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/80.png new file mode 100644 index 000000000..aebb08e2a Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/80.png differ diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/87.png b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/87.png new file mode 100644 index 000000000..4d0c14de4 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/87.png differ diff --git a/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/Contents.json b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/Contents.json new file mode 100644 index 000000000..88f06469c --- /dev/null +++ b/Coding_iOS/Images.xcassets/AppIconTemp_E.appiconset/Contents.json @@ -0,0 +1,140 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "29.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "58.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "87.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "80.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "120-2.png", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "1x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "120-1.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "180.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/180.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/180.png new file mode 100644 index 000000000..278f04882 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/180.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Contents.json b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Contents.json new file mode 100644 index 000000000..0ec6c9ba8 --- /dev/null +++ b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Contents.json @@ -0,0 +1,153 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon29.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon58.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon87.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon80.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon120.png", + "scale" : "3x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon57.png", + "scale" : "1x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon114.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Enterprise APP Icon120-1.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "180.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon29-1.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon58-1.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon80-1.png", + "scale" : "2x" + }, + { + "size" : "50x50", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon50.png", + "scale" : "1x" + }, + { + "size" : "50x50", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon100.png", + "scale" : "2x" + }, + { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon72.png", + "scale" : "1x" + }, + { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon144.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Enterprise APP Icon152.png", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Enterprise APP Icon1024.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon100.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon100.png new file mode 100644 index 000000000..0b0295595 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon100.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon1024.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon1024.png new file mode 100644 index 000000000..561f64b1b Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon1024.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon114.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon114.png new file mode 100644 index 000000000..f49023df7 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon114.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon120-1.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon120-1.png new file mode 100644 index 000000000..0b9708475 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon120-1.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon120.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon120.png new file mode 100644 index 000000000..0b9708475 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon120.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon144.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon144.png new file mode 100644 index 000000000..6bfe727fe Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon144.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon152.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon152.png new file mode 100644 index 000000000..aedae8584 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon152.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon29-1.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon29-1.png new file mode 100644 index 000000000..5db35c6b9 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon29-1.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon29.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon29.png new file mode 100644 index 000000000..5db35c6b9 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon29.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon40.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon40.png new file mode 100644 index 000000000..10fcbc8ef Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon40.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon50.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon50.png new file mode 100644 index 000000000..aa8b7f558 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon50.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon57.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon57.png new file mode 100644 index 000000000..495439e16 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon57.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon58-1.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon58-1.png new file mode 100644 index 000000000..ba81f960e Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon58-1.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon58.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon58.png new file mode 100644 index 000000000..ba81f960e Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon58.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon72.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon72.png new file mode 100644 index 000000000..18b358cb5 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon72.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon76.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon76.png new file mode 100644 index 000000000..741fbcfee Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon76.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon80-1.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon80-1.png new file mode 100644 index 000000000..105b6ea20 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon80-1.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon80.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon80.png new file mode 100644 index 000000000..105b6ea20 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon80.png differ diff --git a/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon87.png b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon87.png new file mode 100644 index 000000000..48ff22ef3 Binary files /dev/null and b/Coding_iOS/Images.xcassets/AppIcon_E.appiconset/Enterprise APP Icon87.png differ diff --git a/Coding_iOS/Images.xcassets/LaunchImage.launchimage/Contents.json b/Coding_iOS/Images.xcassets/LaunchImage.launchimage/Contents.json deleted file mode 100644 index 770e35e89..000000000 --- a/Coding_iOS/Images.xcassets/LaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "images" : [ - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "minimum-system-version" : "8.0", - "subtype" : "736h", - "scale" : "3x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "minimum-system-version" : "8.0", - "subtype" : "667h", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "filename" : "vvc.png", - "scale" : "2x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "retina4", - "filename" : "传奇(3).png", - "minimum-system-version" : "7.0", - "orientation" : "portrait", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "subtype" : "retina4", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Coding_iOS/Images.xcassets/LaunchImage.launchimage/vvc.png b/Coding_iOS/Images.xcassets/LaunchImage.launchimage/vvc.png deleted file mode 100644 index 5774be3a1..000000000 Binary files a/Coding_iOS/Images.xcassets/LaunchImage.launchimage/vvc.png and /dev/null differ diff --git "a/Coding_iOS/Images.xcassets/LaunchImage.launchimage/\344\274\240\345\245\207(3).png" "b/Coding_iOS/Images.xcassets/LaunchImage.launchimage/\344\274\240\345\245\207(3).png" deleted file mode 100644 index 11443b582..000000000 Binary files "a/Coding_iOS/Images.xcassets/LaunchImage.launchimage/\344\274\240\345\245\207(3).png" and /dev/null differ diff --git a/Coding_iOS/Images/btn_dismiss@2x.png b/Coding_iOS/Images/btn_dismiss@2x.png new file mode 100644 index 000000000..bd53182e7 Binary files /dev/null and b/Coding_iOS/Images/btn_dismiss@2x.png differ diff --git a/Coding_iOS/Images/btn_dismiss@3x.png b/Coding_iOS/Images/btn_dismiss@3x.png new file mode 100644 index 000000000..6d1df79df Binary files /dev/null and b/Coding_iOS/Images/btn_dismiss@3x.png differ diff --git a/Coding_iOS/Images/btn_next/btn_next_enable@2x.png b/Coding_iOS/Images/btn_next/btn_next_enable@2x.png new file mode 100644 index 000000000..27b9e7bee Binary files /dev/null and b/Coding_iOS/Images/btn_next/btn_next_enable@2x.png differ diff --git a/Coding_iOS/Images/btn_next/btn_next_enable@3x.png b/Coding_iOS/Images/btn_next/btn_next_enable@3x.png new file mode 100644 index 000000000..5997738fa Binary files /dev/null and b/Coding_iOS/Images/btn_next/btn_next_enable@3x.png differ diff --git a/Coding_iOS/Images/btn_next/btn_next_unable@2x.png b/Coding_iOS/Images/btn_next/btn_next_unable@2x.png new file mode 100644 index 000000000..f9980b0f5 Binary files /dev/null and b/Coding_iOS/Images/btn_next/btn_next_unable@2x.png differ diff --git a/Coding_iOS/Images/btn_next/btn_next_unable@3x.png b/Coding_iOS/Images/btn_next/btn_next_unable@3x.png new file mode 100644 index 000000000..9f734e571 Binary files /dev/null and b/Coding_iOS/Images/btn_next/btn_next_unable@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_both@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_both@2x.png old mode 100755 new mode 100644 index 488d4e1ad..d779329ab Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_both@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_both@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_both@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_both@3x.png new file mode 100644 index 000000000..679dfb10c Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_both@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_not@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_not@2x.png old mode 100755 new mode 100644 index 5f5501363..ddb0e41cc Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_not@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_not@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_not@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_not@3x.png new file mode 100644 index 000000000..4c7f3b6c9 Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_not@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_yes@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_yes@2x.png old mode 100755 new mode 100644 index f208e3681..388dd8199 Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_yes@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_yes@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_yes@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_yes@3x.png new file mode 100644 index 000000000..fdfd2164b Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_followed_yes@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_black@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_black@2x.png deleted file mode 100755 index cb6d76c07..000000000 Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_black@2x.png and /dev/null differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_friend@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_friend@2x.png old mode 100755 new mode 100644 index a37db4d5a..ae022f333 Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_friend@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_friend@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_friend@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_friend@3x.png new file mode 100644 index 000000000..943e52109 Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_friend@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_stranger@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_stranger@2x.png old mode 100755 new mode 100644 index 002511d73..ae022f333 Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_stranger@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_stranger@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_stranger@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_stranger@3x.png new file mode 100644 index 000000000..943e52109 Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_stranger@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_white@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_white@2x.png deleted file mode 100755 index 30b32be65..000000000 Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_privateMsg_white@2x.png and /dev/null differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_add@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_add@2x.png old mode 100755 new mode 100644 index 889daf0fd..ddb0e41cc Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_add@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_add@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_add@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_add@3x.png new file mode 100644 index 000000000..4c7f3b6c9 Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_add@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_added@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_added@2x.png old mode 100755 new mode 100644 index bf510182e..388dd8199 Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_added@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_added@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_added@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_added@3x.png new file mode 100644 index 000000000..fdfd2164b Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_added@3x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_quit@2x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_quit@2x.png old mode 100755 new mode 100644 index 7bac694d6..8124cdaab Binary files a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_quit@2x.png and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_quit@2x.png differ diff --git a/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_quit@3x.png b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_quit@3x.png new file mode 100644 index 000000000..63dcfbca3 Binary files /dev/null and b/Coding_iOS/Images/cell_right_plain_btn_image/btn_project_quit@3x.png differ diff --git a/Coding_iOS/Images/editBoardList@2x.png b/Coding_iOS/Images/editBoardList@2x.png new file mode 100644 index 000000000..9505937ac Binary files /dev/null and b/Coding_iOS/Images/editBoardList@2x.png differ diff --git a/Coding_iOS/Images/editBoardList@3x.png b/Coding_iOS/Images/editBoardList@3x.png new file mode 100644 index 000000000..376cc3e94 Binary files /dev/null and b/Coding_iOS/Images/editBoardList@3x.png differ diff --git a/Coding_iOS/Images/logo_coding_top@2x.png b/Coding_iOS/Images/logo_coding_top@2x.png index 2fc429212..3c393a4e6 100644 Binary files a/Coding_iOS/Images/logo_coding_top@2x.png and b/Coding_iOS/Images/logo_coding_top@2x.png differ diff --git a/Coding_iOS/Images/logo_coding_top@3x.png b/Coding_iOS/Images/logo_coding_top@3x.png new file mode 100644 index 000000000..ce31ccd78 Binary files /dev/null and b/Coding_iOS/Images/logo_coding_top@3x.png differ diff --git a/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@2x.png b/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@2x.png index c0cd029d4..502504a56 100644 Binary files a/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@2x.png and b/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@2x.png differ diff --git a/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@3x.png b/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@3x.png index e725620f8..73ec8a1c1 100644 Binary files a/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@3x.png and b/Coding_iOS/Images/member_cell_edit/member_cell_edit_alias@3x.png differ diff --git a/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@2x.png b/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@2x.png index c0af6cf6e..014e7e6a6 100644 Binary files a/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@2x.png and b/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@2x.png differ diff --git a/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@3x.png b/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@3x.png index a2d31e6df..3856ca854 100644 Binary files a/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@3x.png and b/Coding_iOS/Images/member_cell_edit/member_cell_edit_remove@3x.png differ diff --git a/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@2x.png b/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@2x.png index 6d3be348f..638646e25 100644 Binary files a/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@2x.png and b/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@2x.png differ diff --git a/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@3x.png b/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@3x.png index 89716215f..fd872effe 100644 Binary files a/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@3x.png and b/Coding_iOS/Images/member_cell_edit/member_cell_edit_type@3x.png differ diff --git a/Coding_iOS/Images/nav_button/done_Nav@2x.png b/Coding_iOS/Images/nav_button/done_Nav@2x.png new file mode 100644 index 000000000..ae308a081 Binary files /dev/null and b/Coding_iOS/Images/nav_button/done_Nav@2x.png differ diff --git a/Coding_iOS/Images/nav_button/done_Nav@3x.png b/Coding_iOS/Images/nav_button/done_Nav@3x.png new file mode 100644 index 000000000..aa6b60e0d Binary files /dev/null and b/Coding_iOS/Images/nav_button/done_Nav@3x.png differ diff --git a/Coding_iOS/Images/nav_button/done_un_Nav@2x.png b/Coding_iOS/Images/nav_button/done_un_Nav@2x.png new file mode 100644 index 000000000..2cc8d8e9d Binary files /dev/null and b/Coding_iOS/Images/nav_button/done_un_Nav@2x.png differ diff --git a/Coding_iOS/Images/nav_button/done_un_Nav@3x.png b/Coding_iOS/Images/nav_button/done_un_Nav@3x.png new file mode 100644 index 000000000..d0c3a0873 Binary files /dev/null and b/Coding_iOS/Images/nav_button/done_un_Nav@3x.png differ diff --git a/Coding_iOS/Images/project_icon_edit@2x.png b/Coding_iOS/Images/project_icon_edit@2x.png new file mode 100644 index 000000000..ec1d821c8 Binary files /dev/null and b/Coding_iOS/Images/project_icon_edit@2x.png differ diff --git a/Coding_iOS/Images/project_icon_edit@3x.png b/Coding_iOS/Images/project_icon_edit@3x.png new file mode 100644 index 000000000..e481723f8 Binary files /dev/null and b/Coding_iOS/Images/project_icon_edit@3x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_2fa@2x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_2fa@2x.png new file mode 100644 index 000000000..67b0eb55f Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_2fa@2x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_2fa@3x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_2fa@3x.png new file mode 100644 index 000000000..7eff617d0 Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_2fa@3x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_message@2x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_message@2x.png new file mode 100644 index 000000000..b4ea5df8e Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_message@2x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_message@3x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_message@3x.png new file mode 100644 index 000000000..84036b0c2 Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_message@3x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_project@2x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_project@2x.png new file mode 100644 index 000000000..bdae630c3 Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_project@2x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_project@3x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_project@3x.png new file mode 100644 index 000000000..c299b65a9 Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_project@3x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_task@2x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_task@2x.png new file mode 100644 index 000000000..abf906ab0 Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_task@2x.png differ diff --git a/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_task@3x.png b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_task@3x.png new file mode 100644 index 000000000..008d11045 Binary files /dev/null and b/Coding_iOS/Images/quick_menu_icon/quick_menu_icon_task@3x.png differ diff --git a/Coding_iOS/Images/task_activity_icon/task_activity_icon_add_milestone@2x.png b/Coding_iOS/Images/task_activity_icon/task_activity_icon_add_milestone@2x.png new file mode 100644 index 000000000..0be1db36a Binary files /dev/null and b/Coding_iOS/Images/task_activity_icon/task_activity_icon_add_milestone@2x.png differ diff --git a/Coding_iOS/Images/task_activity_icon/task_activity_icon_add_milestone@3x.png b/Coding_iOS/Images/task_activity_icon/task_activity_icon_add_milestone@3x.png new file mode 100644 index 000000000..40b7c9b21 Binary files /dev/null and b/Coding_iOS/Images/task_activity_icon/task_activity_icon_add_milestone@3x.png differ diff --git a/Coding_iOS/Images/task_activity_icon/task_activity_icon_remove_milestone@2x.png b/Coding_iOS/Images/task_activity_icon/task_activity_icon_remove_milestone@2x.png new file mode 100644 index 000000000..0be1db36a Binary files /dev/null and b/Coding_iOS/Images/task_activity_icon/task_activity_icon_remove_milestone@2x.png differ diff --git a/Coding_iOS/Images/task_activity_icon/task_activity_icon_remove_milestone@3x.png b/Coding_iOS/Images/task_activity_icon/task_activity_icon_remove_milestone@3x.png new file mode 100644 index 000000000..40b7c9b21 Binary files /dev/null and b/Coding_iOS/Images/task_activity_icon/task_activity_icon_remove_milestone@3x.png differ diff --git a/Coding_iOS/Images/team_bg@2x.png b/Coding_iOS/Images/team_bg@2x.png new file mode 100644 index 000000000..95eacd764 Binary files /dev/null and b/Coding_iOS/Images/team_bg@2x.png differ diff --git a/Coding_iOS/Images/team_bg@3x.png b/Coding_iOS/Images/team_bg@3x.png new file mode 100644 index 000000000..75942ce8d Binary files /dev/null and b/Coding_iOS/Images/team_bg@3x.png differ diff --git a/Coding_iOS/Images/team_cell_edit/team_cell_edit_delete@2x.png b/Coding_iOS/Images/team_cell_edit/team_cell_edit_delete@2x.png new file mode 100644 index 000000000..014e7e6a6 Binary files /dev/null and b/Coding_iOS/Images/team_cell_edit/team_cell_edit_delete@2x.png differ diff --git a/Coding_iOS/Images/team_cell_edit/team_cell_edit_delete@3x.png b/Coding_iOS/Images/team_cell_edit/team_cell_edit_delete@3x.png new file mode 100644 index 000000000..3856ca854 Binary files /dev/null and b/Coding_iOS/Images/team_cell_edit/team_cell_edit_delete@3x.png differ diff --git a/Coding_iOS/Images/team_cell_edit/team_cell_edit_pro@2x.png b/Coding_iOS/Images/team_cell_edit/team_cell_edit_pro@2x.png new file mode 100644 index 000000000..80edf5904 Binary files /dev/null and b/Coding_iOS/Images/team_cell_edit/team_cell_edit_pro@2x.png differ diff --git a/Coding_iOS/Images/team_cell_edit/team_cell_edit_pro@3x.png b/Coding_iOS/Images/team_cell_edit/team_cell_edit_pro@3x.png new file mode 100644 index 000000000..e7e07497d Binary files /dev/null and b/Coding_iOS/Images/team_cell_edit/team_cell_edit_pro@3x.png differ diff --git a/Coding_iOS/Images/team_cell_edit/team_cell_edit_team@2x.png b/Coding_iOS/Images/team_cell_edit/team_cell_edit_team@2x.png new file mode 100644 index 000000000..3134188fe Binary files /dev/null and b/Coding_iOS/Images/team_cell_edit/team_cell_edit_team@2x.png differ diff --git a/Coding_iOS/Images/team_cell_edit/team_cell_edit_team@3x.png b/Coding_iOS/Images/team_cell_edit/team_cell_edit_team@3x.png new file mode 100644 index 000000000..655083386 Binary files /dev/null and b/Coding_iOS/Images/team_cell_edit/team_cell_edit_team@3x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_mem@2x.png b/Coding_iOS/Images/team_info/team_info_mem@2x.png new file mode 100644 index 000000000..c69361144 Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_mem@2x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_mem@3x.png b/Coding_iOS/Images/team_info/team_info_mem@3x.png new file mode 100644 index 000000000..321d9bb16 Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_mem@3x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_order@2x.png b/Coding_iOS/Images/team_info/team_info_order@2x.png new file mode 100644 index 000000000..059976c8e Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_order@2x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_order@3x.png b/Coding_iOS/Images/team_info/team_info_order@3x.png new file mode 100644 index 000000000..6f8d9b9fc Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_order@3x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_pro@2x.png b/Coding_iOS/Images/team_info/team_info_pro@2x.png new file mode 100644 index 000000000..bdae630c3 Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_pro@2x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_pro@3x.png b/Coding_iOS/Images/team_info/team_info_pro@3x.png new file mode 100644 index 000000000..c299b65a9 Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_pro@3x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_sup@2x.png b/Coding_iOS/Images/team_info/team_info_sup@2x.png new file mode 100644 index 000000000..e8ca91fec Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_sup@2x.png differ diff --git a/Coding_iOS/Images/team_info/team_info_sup@3x.png b/Coding_iOS/Images/team_info/team_info_sup@3x.png new file mode 100644 index 000000000..7d95d3e6e Binary files /dev/null and b/Coding_iOS/Images/team_info/team_info_sup@3x.png differ diff --git a/Coding_iOS/Launch Screen_E.xib b/Coding_iOS/Launch Screen_E.xib new file mode 100644 index 000000000..630ddc06f --- /dev/null +++ b/Coding_iOS/Launch Screen_E.xib @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Coding_iOS/Models/CodeFile.h b/Coding_iOS/Models/CodeFile.h index b8e75ef4f..13bd17a2b 100755 --- a/Coding_iOS/Models/CodeFile.h +++ b/Coding_iOS/Models/CodeFile.h @@ -19,7 +19,7 @@ @property (strong, nonatomic) NSString *editData, *editMessage, *editName; + (CodeFile *)codeFileWithRef:(NSString *)ref andPath:(NSString *)path; -+ (CodeFile *)codeFileWithMDStr:(NSString *)md_html; ++ (CodeFile *)codeFileWithMDPreview:(NSString *)md_html; + (CodeFile *)codeFileToCommitWithRef:(NSString *)ref andPath:(NSString *)path name:(NSString *)name data:(NSString *)data message:(NSString *)message headCommit:(Commit *)headCommit; + (CodeFile *)codeFileWithLocalURL:(NSURL *)localURL; diff --git a/Coding_iOS/Models/CodeFile.m b/Coding_iOS/Models/CodeFile.m index bb2c0acd2..b2e5ddf10 100755 --- a/Coding_iOS/Models/CodeFile.m +++ b/Coding_iOS/Models/CodeFile.m @@ -16,7 +16,7 @@ + (CodeFile *)codeFileWithRef:(NSString *)ref andPath:(NSString *)path{ codeFile.path = path; return codeFile; } -+ (CodeFile *)codeFileWithMDStr:(NSString *)md_html{ ++ (CodeFile *)codeFileWithMDPreview:(NSString *)md_html{ CodeFile *codeFile = [self codeFileWithRef:@"" andPath:@"README"]; CodeFile_RealFile *file = [CodeFile_RealFile new]; @@ -95,9 +95,9 @@ - (NSDictionary *)toDeleteParams{ - (NSDictionary *)toCreateParams{ NSMutableDictionary *params = @{}.mutableCopy; params[@"title"] = self.editName; - params[@"content"] = self.editData; + params[@"content"] = self.editData ?: @""; params[@"message"] = self.editMessage; - params[@"lastCommitSha"] = self.headCommit.commitId; + params[@"lastCommitSha"] = self.headCommit.commitId ?: @""; return params; } @end @@ -105,4 +105,8 @@ - (NSDictionary *)toCreateParams{ @implementation CodeFile_RealFile +- (void)setPreview:(NSString *)preview{ + _preview = [preview stringByReplacingOccurrencesOfString:@"{{CodingUrl}}" withString:@""]; +} + @end diff --git a/Coding_iOS/Models/CodingTip.m b/Coding_iOS/Models/CodingTip.m index fef1ff411..715040d1b 100644 --- a/Coding_iOS/Models/CodingTip.m +++ b/Coding_iOS/Models/CodingTip.m @@ -64,7 +64,7 @@ - (void)adjust{ _target_type_ColorName = @"0x379FD3"; } _target_type_imageName = [NSString stringWithFormat:@"tipIcon_%@", _target_type]; - _content = _htmlMedia.contentDisplay; + _content = [_htmlMedia.contentDisplay stringByReplacingOccurrencesOfString:@"团队" withString:@"企业"]; } + (NSDictionary *)p_color_dict{ diff --git a/Coding_iOS/Models/CodingTips.m b/Coding_iOS/Models/CodingTips.m index d4a40b681..25498830f 100755 --- a/Coding_iOS/Models/CodingTips.m +++ b/Coding_iOS/Models/CodingTips.m @@ -78,6 +78,9 @@ - (NSDictionary *)toTipsParams{ params = @{@"type" : @[@(4), @(6)], @"page" : _willLoadMore? [NSNumber numberWithInteger:_page.integerValue +1]: [NSNumber numberWithInteger:1], @"pageSize" : _pageSize}; + }else if (_type == 3){ + params = @{@"page" : _willLoadMore? [NSNumber numberWithInteger:_page.integerValue +1]: [NSNumber numberWithInteger:1], + @"pageSize" : _pageSize}; } return params; } @@ -93,6 +96,8 @@ - (NSDictionary *)toMarkReadParams{ }else if (_type == 2){ params = @{@"type" : @(4), @"all" : @(1)}; + }else if (_type == 3){ + params = @{@"all" : @(1)}; } return params; } diff --git a/Coding_iOS/Models/EAMilestone.h b/Coding_iOS/Models/EAMilestone.h new file mode 100644 index 000000000..55c5f88ea --- /dev/null +++ b/Coding_iOS/Models/EAMilestone.h @@ -0,0 +1,17 @@ +// +// EAMilestone.h +// Coding_iOS +// +// Created by Easeeeeeeeee on 2018/5/14. +// Copyright © 2018年 Coding. All rights reserved. +// + +#import "EABasePageModel.h" + +@interface EAMilestone : EABasePageModel +@property (strong, nonatomic) NSNumber *id, *project_id, *status, *processing, *finished, *percentage, *remaining_days, *expire_days; +@property (strong, nonatomic) NSString *name, *description_mine, *start_date, *publish_date; +@end + +//"start_date": "2018-05-14", +//"publish_date": "2018-05-30", diff --git a/Coding_iOS/Models/EAMilestone.m b/Coding_iOS/Models/EAMilestone.m new file mode 100644 index 000000000..ddbcf695c --- /dev/null +++ b/Coding_iOS/Models/EAMilestone.m @@ -0,0 +1,13 @@ +// +// EAMilestone.m +// Coding_iOS +// +// Created by Easeeeeeeeee on 2018/5/14. +// Copyright © 2018年 Coding. All rights reserved. +// + +#import "EAMilestone.h" + +@implementation EAMilestone + +@end diff --git a/Coding_iOS/Models/FileVersion.m b/Coding_iOS/Models/FileVersion.m index 7ed6288a2..87270f816 100644 --- a/Coding_iOS/Models/FileVersion.m +++ b/Coding_iOS/Models/FileVersion.m @@ -16,7 +16,7 @@ @interface FileVersion () @implementation FileVersion - (NSString *)diskFileName{ if (!_diskFileName) { - _diskFileName = [NSString stringWithFormat:@"%@|||%@|||%@|%@", _name, _project_id.stringValue, _storage_type, self.storage_key_for_disk]; + _diskFileName = [NSString stringWithFormat:@"%@|||%@|||%@|%@", _name, _project_id.stringValue, self.storage_type, self.storage_key_for_disk]; } return _diskFileName; } @@ -24,11 +24,11 @@ - (NSString *)diskFileName{ - (NSString *)storage_key_for_disk{ NSArray *fileNameCom = [_name componentsSeparatedByString:@"."]; NSMutableArray *storage_keyCom = [_storage_key componentsSeparatedByString:@"."].mutableCopy; - if (fileNameCom.count > 1 && storage_keyCom.count > 0 && ![fileNameCom.lastObject isEqualToString:storage_keyCom.lastObject]) { + if (fileNameCom.count > 1 && storage_keyCom.count > 0 && ![fileNameCom.lastObject isEqualToString:storage_keyCom.lastObject]) {//_storage_key 后缀名与 fileNameCom 后缀名不同的情况 [storage_keyCom addObject:fileNameCom.lastObject]; return [storage_keyCom componentsJoinedByString:@"."]; }else{ - return _storage_key; + return [_storage_key componentsSeparatedByString:@"/"].lastObject;//'group0/M00/00/01/fwAAAVsHsvqAOY8rABzvMF5h1Ck652.JPG'..诡异的前半截数据 } } diff --git a/Coding_iOS/Models/Login.h b/Coding_iOS/Models/Login.h index 778498472..6ab81c7d4 100755 --- a/Coding_iOS/Models/Login.h +++ b/Coding_iOS/Models/Login.h @@ -8,10 +8,14 @@ #import #import "User.h" +#import "Team.h" +#import "Project.h" + @interface Login : NSObject //请求 -@property (readwrite, nonatomic, strong) NSString *email, *password, *j_captcha; +@property (readwrite, nonatomic, strong) NSString *email, *password, *j_captcha, *company, *ssoType; @property (readwrite, nonatomic, strong) NSNumber *remember_me; +@property (readwrite, nonatomic) BOOL ssoEnabled; - (NSString *)goToLoginTipWithCaptcha:(BOOL)needCaptcha; - (NSString *)toPath; @@ -19,14 +23,19 @@ + (BOOL) isLogin; + (void) doLogin:(NSDictionary *)loginData; ++ (void) doLoginCompany:(NSDictionary *)loginCompanyData; ++ (void) updateLoginIsAdministrator:(NSNumber *)isAdministrator; + (void) doLogout; + (void)setPreUserEmail:(NSString *)emailStr; + (NSString *)preUserEmail; + (User *)curLoginUser; ++ (Team *)curLoginCompany; + + (void)setXGAccountWithCurUser; + (User *)userWithGlobaykeyOrEmail:(NSString *)textStr; + (NSMutableDictionary *)readLoginDataList; -+(BOOL)isLoginUserGlobalKey:(NSString *)global_key; ++ (BOOL)isLoginUserGlobalKey:(NSString *)global_key; ++ (BOOL)canEditPro:(Project *)pro; // Git Clone 需要用 http 的方式校验 + (void)setPassword:(NSString *)password; diff --git a/Coding_iOS/Models/Login.m b/Coding_iOS/Models/Login.m index 9062a9b4c..8d3c5d05f 100644 --- a/Coding_iOS/Models/Login.m +++ b/Coding_iOS/Models/Login.m @@ -9,14 +9,17 @@ #import "Login.h" #import "XGPush.h" #import "AppDelegate.h" +#import "Coding_NetAPIManager.h" #define kLoginStatus @"login_status" #define kLoginPreUserEmail @"pre_user_email" #define kLoginUserDict @"user_dict" #define kLoginDataListPath @"login_data_list_path.plist" +#define kLoginTeamKey @"login_team_key" #define kLoginPasswordKey(_key_) [NSString stringWithFormat:@"password|%@", _key_] static User *curLoginUser; +static Team *curLoginTeam; @implementation Login - (instancetype)init @@ -26,6 +29,8 @@ - (instancetype)init self.remember_me = [NSNumber numberWithBool:YES]; self.email = @""; self.password = @""; + self.ssoType = @"default"; + self.ssoEnabled = NO; } return self; } @@ -34,8 +39,12 @@ - (NSString *)toPath{ return @"api/v2/account/login"; } - (NSDictionary *)toParams{ + NSString *password = [self.password sha1Str]; + if (self.ssoEnabled && [self.ssoType isEqualToString:@"ldap"]) { + password = self.password; + } NSMutableDictionary *params = @{@"account": self.email, - @"password" : [self.password sha1Str], + @"password" : password, @"remember_me" : self.remember_me? @"true" : @"false",}.mutableCopy; if (self.j_captcha.length > 0) { params[@"j_captcha"] = self.j_captcha; @@ -45,8 +54,11 @@ - (NSDictionary *)toParams{ } - (NSString *)goToLoginTipWithCaptcha:(BOOL)needCaptcha{ + if (kTarget_Enterprise && _company.length <= 0) { + return @"请填写企业域名"; + } if (!_email || _email.length <= 0) { - return @"请填写「手机号码/电子邮箱/个性后缀」"; + return @"请填写「手机号码/电子邮箱/用户名」"; } if (!_password || _password.length <= 0) { return @"请填写密码"; @@ -86,11 +98,44 @@ + (void)doLogin:(NSDictionary *)loginData{ [Login setXGAccountWithCurUser]; [self saveLoginData:loginData]; + + if (kTarget_Enterprise) { + if (![self curLoginCompany]) { + [[Coding_NetAPIManager sharedManager] request_UpdateCompanyInfoBlock:^(id data, NSError *error) { + }]; + } + if (!curLoginUser.isAdministrator) { + [[Coding_NetAPIManager sharedManager] request_UpdateIsAdministratorBlock:^(id data, NSError *error) { + }]; + } + } }else{ [Login doLogout]; } } ++ (void) doLoginCompany:(NSDictionary *)loginCompanyData{ + if (loginCompanyData) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:loginCompanyData forKey:kLoginTeamKey]; + curLoginTeam = [NSObject objectOfClass:@"Team" fromJSON:loginCompanyData]; + [defaults synchronize]; + } +} + ++ (void) updateLoginIsAdministrator:(NSNumber *)isAdministrator{ + if (!isAdministrator) { + return; + } + if (!curLoginUser.isAdministrator || [curLoginUser.isAdministrator isEqualToNumber:isAdministrator]) { + curLoginUser.isAdministrator = isAdministrator; + + NSMutableDictionary *loginData = [[[NSUserDefaults standardUserDefaults] objectForKey:kLoginUserDict] mutableCopy]; + loginData[@"isAdministrator"] = isAdministrator; + [self doLogin:loginData]; + } +} + + (NSMutableDictionary *)readLoginDataList{ NSMutableDictionary *loginDataList = [NSMutableDictionary dictionaryWithContentsOfFile:[self loginDataListPath]]; if (!loginDataList) { @@ -188,12 +233,27 @@ + (User *)curLoginUser{ return curLoginUser; } ++ (Team *)curLoginCompany{ + if (!curLoginTeam) { + NSDictionary *loginCompanyData = [[NSUserDefaults standardUserDefaults] objectForKey:kLoginTeamKey]; + curLoginTeam = loginCompanyData? [NSObject objectOfClass:@"Team" fromJSON:loginCompanyData]: nil; + } + return [curLoginTeam.global_key.lowercaseString isEqualToString:[NSObject baseCompany].lowercaseString]? curLoginTeam: nil; +} + +(BOOL)isLoginUserGlobalKey:(NSString *)global_key{ if (global_key.length <= 0) { return NO; } return [[self curLoginUser].global_key isEqualToString:global_key]; } ++ (BOOL)canEditPro:(Project *)pro{ + if ([Login isLogin]) { + return (pro.current_user_role_id.integerValue >= 90 || + [self curLoginUser].isAdministrator.boolValue); + } + return NO; +} // Git Clone 需要用 http 的方式校验 + (void)setPassword:(NSString *)password{ diff --git a/Coding_iOS/Models/MRPR.m b/Coding_iOS/Models/MRPR.m index 4df8906e0..8955eda92 100644 --- a/Coding_iOS/Models/MRPR.m +++ b/Coding_iOS/Models/MRPR.m @@ -33,6 +33,9 @@ - (void)setPath:(NSString *)path{ if (pathComponents.count == 8) { _des_owner_name = pathComponents[2]; _des_project_name = pathComponents[4]; + }else if (pathComponents.count == 6){ + _des_owner_name = [NSObject baseCompany]; + _des_project_name = pathComponents[2]; } } @@ -121,6 +124,8 @@ - (NSString *)p_prePath{ NSArray *pathComponents = [_path componentsSeparatedByString:@"/"]; if (pathComponents.count == 8) { prePath = [NSString stringWithFormat:@"api/user/%@/project/%@/git/%@/%@/", pathComponents[2], pathComponents[4], pathComponents[6], pathComponents[7]]; + }else if (pathComponents.count == 6){ + prePath = [NSString stringWithFormat:@"api/user/%@/project/%@/git/%@/%@/", [NSObject baseCompany], pathComponents[2], pathComponents[4], pathComponents[5]]; } NSLog(@"path === %@", prePath); return prePath; diff --git a/Coding_iOS/Models/Project.m b/Coding_iOS/Models/Project.m index a240bb376..d82e2da74 100644 --- a/Coding_iOS/Models/Project.m +++ b/Coding_iOS/Models/Project.m @@ -78,6 +78,9 @@ -(id)copyWithZone:(NSZone*)zone { return person; } +- (NSString *)owner_user_name{ + return _owner_user_name ?: [NSObject baseCompany]; +} - (void)setFull_name:(NSString *)full_name{ _full_name = full_name; @@ -106,7 +109,7 @@ + (Project *)project_FeedBack{ } -(NSString *)toProjectPath{ - return @"api/project"; + return kTarget_Enterprise? [NSString stringWithFormat:@"api/team/%@/project", [NSObject baseCompany]]: @"api/project"; } -(NSDictionary *)toCreateParams{ @@ -117,20 +120,34 @@ -(NSDictionary *)toCreateParams{ }else{ type = @"2"; } - - return @{@"name":self.name, - @"description":self.description_mine, - @"type":type, - @"gitEnabled":@"true", - @"gitReadmeEnabled": _gitReadmeEnabled.boolValue? @"true": @"false", - @"gitIgnore":@"no", - @"gitLicense":@"no", - // @"importFrom":@"no", - @"vcsType":@"git"}; + if (kTarget_Enterprise) { + return @{@"name":self.name, + @"description":self.description_mine, + @"type":type, + @"gitEnabled":@"true", + @"gitReadmeEnabled": _gitReadmeEnabled.boolValue? @"true": @"false", + @"gitIgnore":@"no", + @"gitLicense":@"no", + // @"importFrom":@"no", + @"vcsType":@"git", + @"teamGK": [NSObject baseCompany], + @"joinTeam": @"true", + }; + }else{ + return @{@"name":self.name, + @"description":self.description_mine, + @"type":type, + @"gitEnabled":@"true", + @"gitReadmeEnabled": _gitReadmeEnabled.boolValue? @"true": @"false", + @"gitIgnore":@"no", + @"gitLicense":@"no", + // @"importFrom":@"no", + @"vcsType":@"git"}; + } } -(NSString *)toUpdatePath{ - return [self toProjectPath]; + return @"api/project"; } -(NSDictionary *)toUpdateParams{ @@ -146,11 +163,19 @@ -(NSString *)toUpdateIconPath{ } -(NSString *)toDeletePath{ - return [NSString stringWithFormat:@"api/user/%@/project/%@",self.owner_user_name, self.name]; + if (kTarget_Enterprise) { + return [NSString stringWithFormat:@"api/team/%@/project/%@/delete", [Login curLoginCompany].global_key, _id]; + }else{ + return [NSString stringWithFormat:@"api/user/%@/project/%@",self.owner_user_name, self.name]; + } } - (NSString *)toArchivePath{ - return [NSString stringWithFormat:@"api/project/%@/archive", self.id]; + if (kTarget_Enterprise) { + return [NSString stringWithFormat:@"api/team/%@/project/%@/archive", [Login curLoginCompany].global_key, self.id]; + }else{ + return [NSString stringWithFormat:@"api/project/%@/archive", self.id]; + } } - (NSString *)toMembersPath{ @@ -190,7 +215,12 @@ - (NSString *)toBranchOrTagPath:(NSString *)path{ //} - (NSURL *)remoteURL{ - NSURL *remoteURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://git.coding.net/%@/%@.git", self.owner_user_name, self.name]]; + NSURL *remoteURL; + if (kTarget_Enterprise) { + remoteURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@/%@.git", [NSObject e_URLStr], self.owner_user_name, self.name]]; + }else{ + remoteURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://git.coding.net/%@/%@.git", self.owner_user_name, self.name]]; + } return remoteURL; } - (NSURL *)localURL{ diff --git a/Coding_iOS/Models/ProjectActivities.h b/Coding_iOS/Models/ProjectActivities.h index 5467674a6..799d35f9f 100755 --- a/Coding_iOS/Models/ProjectActivities.h +++ b/Coding_iOS/Models/ProjectActivities.h @@ -15,6 +15,7 @@ typedef NS_ENUM(NSInteger, ProjectActivityType) ProjectActivityTypeAll = 0, ProjectActivityTypeTask, ProjectActivityTypeTopic, + ProjectActivityTypeWiki, ProjectActivityTypeFile, ProjectActivityTypeCode, ProjectActivityTypeOther diff --git a/Coding_iOS/Models/ProjectActivities.m b/Coding_iOS/Models/ProjectActivities.m index 923a15893..34fc0c454 100755 --- a/Coding_iOS/Models/ProjectActivities.m +++ b/Coding_iOS/Models/ProjectActivities.m @@ -45,6 +45,9 @@ + (ProjectActivities *)proActivitiesWithPro:(Project *)project type:(ProjectActi case ProjectActivityTypeTopic: proActs.type = @"topic"; break; + case ProjectActivityTypeWiki: + proActs.type = @"wiki"; + break; case ProjectActivityTypeFile: proActs.type = @"file"; break; @@ -147,4 +150,4 @@ - (void)refreshListGroupWithArray:(NSArray *)responseA isAdd:(BOOL)isAdd{ } } } -@end \ No newline at end of file +@end diff --git a/Coding_iOS/Models/ProjectActivity.h b/Coding_iOS/Models/ProjectActivity.h index 444badd9f..2055c840e 100644 --- a/Coding_iOS/Models/ProjectActivity.h +++ b/Coding_iOS/Models/ProjectActivity.h @@ -14,13 +14,15 @@ #import "FileComment.h" #import "ProjectFile.h" #import "ProjectTag.h" +#import "EAMilestone.h" @class Task; @class ProjectTopic; @interface ProjectActivity : NSObject -@property (readwrite, nonatomic, strong) NSNumber *id; +@property (readwrite, nonatomic, strong) NSNumber *id, *wiki_iid; @property (readwrite, nonatomic, strong) NSString *target_type, *action, *action_msg, *type, *ref, *ref_type, *ref_path, *pull_request_title, *merge_request_title, *comment_content, *merge_request_path, *pull_request_path, *version, *wiki_title, *wiki_path, *old_name, *ref_name; +@property (strong, nonatomic) NSString *release_title, *release_tag_name, *release_path; @property (readwrite, nonatomic, strong) User *user, *target_user, *watcher; @property (readwrite, nonatomic, strong) NSDate *created_at; @property (readwrite, nonatomic, strong) Task *origin_task, *task; @@ -36,6 +38,7 @@ @property (strong, nonatomic) Commit *commit; @property (strong, nonatomic) FileComment *projectFileComment; @property (strong, nonatomic) ProjectFile *projectFile; +@property (strong, nonatomic) EAMilestone *milestone; @property (readwrite, strong, nonatomic) NSString *content; @property (readwrite, nonatomic, strong) HtmlMedia *htmlMedia; diff --git a/Coding_iOS/Models/ProjectActivity.m b/Coding_iOS/Models/ProjectActivity.m index 6f20d61f7..6bc751ae3 100644 --- a/Coding_iOS/Models/ProjectActivity.m +++ b/Coding_iOS/Models/ProjectActivity.m @@ -80,6 +80,9 @@ - (NSMutableString *)actionStr{ [self addActionUser:_user]; [_actionStr appendFormat:@"%@项目成员", _action_msg]; } + }else if ([_target_type isEqualToString:@"Release"]){ + [self addActionUser:_user]; + [_actionStr appendFormat:@"%@版本", _action_msg]; }else if ([_target_type isEqualToString:@"Task"]){ [self addActionUser:_user]; if ([_action isEqualToString:@"update_priority"]) { @@ -100,6 +103,8 @@ - (NSMutableString *)actionStr{ }else if ([_action isEqualToString:@"remove_watcher"]){ [_actionStr saveAppendString:_action_msg]; [self addActionUser:_watcher]; + }else if ([_action isEqualToString:@"add_milestone"] || [_action isEqualToString:@"remove_milestone"]){ + [_actionStr appendFormat:@"在任务「%@」中%@", _task.title, _action_msg]; }else{ [_actionStr saveAppendString:_action_msg]; if (_origin_task.owner) { @@ -163,6 +168,8 @@ - (NSMutableString *)actionStr{ } }else if ([_target_type isEqualToString:@"Wiki"]){ [_actionStr appendString:@"wiki"]; + }else if ([_target_type isEqualToString:@"Milestone"]){ + }else{ [_actionStr appendString:@"项目"]; if ([_target_type isEqualToString:@"Project"]){ @@ -209,6 +216,8 @@ - (NSMutableString *)contentStr{ }else{ [_contentStr appendFormat:@"移除了任务的所有标签"]; } + }else if ([_action isEqualToString:@"add_milestone"] || [_action isEqualToString:@"remove_milestone"]){ + [_contentStr saveAppendString:_milestone.name]; }else{ [_contentStr saveAppendString:_task.title]; } @@ -276,6 +285,10 @@ - (NSMutableString *)contentStr{ } }else if ([_target_type isEqualToString:@"ProtectedBranch"]){ [_contentStr saveAppendString:self.ref_name]; + }else if ([_target_type isEqualToString:@"Milestone"]){ + [_contentStr saveAppendString:_milestone.name]; + }else if ([_target_type isEqualToString:@"Release"]){ + [_contentStr saveAppendString:_release_title.length> 0 ? _release_title: _release_tag_name]; }else{ [_contentStr appendString:@"**未知**"]; } diff --git a/Coding_iOS/Models/ProjectFile.h b/Coding_iOS/Models/ProjectFile.h index 94da5b5d0..9390227a1 100755 --- a/Coding_iOS/Models/ProjectFile.h +++ b/Coding_iOS/Models/ProjectFile.h @@ -22,16 +22,20 @@ typedef NS_ENUM(NSInteger, DownloadState){ @interface ProjectFile : NSObject @property (readwrite, nonatomic, strong) NSDate *created_at, *updated_at; -@property (readwrite, nonatomic, strong) NSNumber *id,*file_id, *owner_id, *parent_id, *type, *current_user_role_id, *size, *project_id, *number; -@property (readwrite, nonatomic, strong) NSString *name, *fileType, *owner_preview, *preview, *storage_key, *storage_type, *title, *path; +@property (readwrite, nonatomic, strong) NSNumber *id, *file_id, *owner_id, *parent_id, *type, *current_user_role_id, *size, *project_id, *number, *count; +@property (readwrite, nonatomic, strong) NSString *name, *owner_name, *fileType, *owner_preview, *preview, *storage_key, *storage_type, *title, *path; @property (readwrite, nonatomic, strong) User *owner; @property (readwrite, nonatomic, strong) FileShare *share, *share_ea; @property (strong, nonatomic, readonly) NSString *diskFileName, *storage_key_for_disk; -@property (strong, nonatomic, readonly) NSString *project_name, *project_owner_name; +@property (strong, nonatomic) NSString *next_name; +@property (strong, nonatomic) NSString *project_name, *project_owner_name; + (ProjectFile *)fileWithFileId:(NSNumber *)fileId andProjectId:(NSNumber *)project_id; ++ (instancetype)sharedFolderInProject:(NSString *)project_name ofUser:(NSString *)project_owner_name; - (instancetype)initWithFileId:(NSNumber *)fileId inProject:(NSString *)project_name ofUser:(NSString *)project_owner_name; +- (BOOL)isDefaultFolder; +- (BOOL)isSharedFolder; - (BOOL)isEmpty; - (DownloadState)downloadState; @@ -52,4 +56,7 @@ typedef NS_ENUM(NSInteger, DownloadState){ - (NSString *)toHistoryListPath; - (NSDictionary *)toShareParams; + +- (NSString *)toFolderFilesPath; +- (NSDictionary *)toFolderFilesParams; @end diff --git a/Coding_iOS/Models/ProjectFile.m b/Coding_iOS/Models/ProjectFile.m index 815bc0564..8ab4a00df 100755 --- a/Coding_iOS/Models/ProjectFile.m +++ b/Coding_iOS/Models/ProjectFile.m @@ -10,7 +10,6 @@ #import "Coding_FileManager.h" @interface ProjectFile () -@property (strong, nonatomic, readwrite) NSString *project_name, *project_owner_name; @property (strong, nonatomic, readwrite) NSString *diskFileName; @end @@ -37,7 +36,7 @@ -(id)copyWithZone:(NSZone*)zone { file.type = [_type copy]; file.parent_id = [_parent_id copy]; file.owner_id = [_owner_id copy]; - file.file_id = [_file_id copy]; + file.file_id = [self.file_id copy]; file.created_at = [_created_at copy]; file.updated_at = [_updated_at copy]; file.id=[_id copy]; @@ -52,10 +51,16 @@ +(ProjectFile *)fileWithFileId:(NSNumber *)fileId andProjectId:(NSNumber *)proje return file; } ++ (instancetype)sharedFolderInProject:(NSString *)project_name ofUser:(NSString *)project_owner_name{ + ProjectFile *file = [[self alloc] initWithFileId:@(-1) inProject:project_name ofUser:project_owner_name]; + file.type = @0;//文件夹类型 + return file; +} + - (instancetype)initWithFileId:(NSNumber *)fileId inProject:(NSString *)project_name ofUser:(NSString *)project_owner_name{ self = [super init]; if (self) { - _file_id = fileId; + self.file_id = fileId; _project_id = nil; _project_name = project_name; _project_owner_name = project_owner_name; @@ -72,6 +77,22 @@ - (void)setOwner_preview:(NSString *)owner_preview{ } } +- (NSNumber *)file_id{ + return _file_id ?: _id; +} + +- (void)setCount:(NSNumber *)count{ + _count = @(MAX(0, count.integerValue)); +} + +- (BOOL)isDefaultFolder{ + return _file_id && _file_id.integerValue == 0; +} + +- (BOOL)isSharedFolder{ + return _file_id && _file_id.integerValue == -1; +} + - (BOOL)isEmpty{ return !(self.storage_key && self.storage_key.length > 0); } @@ -95,8 +116,12 @@ - (DownloadState)downloadState{ return state; } +- (NSString *)owner_name{ + return _owner_name ?: _owner.name; +} + - (NSString *)downloadPath{ - NSString *path = [NSString stringWithFormat:@"%@api/project/%@/files/%@/download", [NSObject baseURLStr], _project_id.stringValue, _file_id.stringValue]; + NSString *path = [NSString stringWithFormat:@"%@api/project/%@/files/%@/download", [NSObject baseURLStr], _project_id.stringValue, self.file_id.stringValue]; return path; } @@ -110,11 +135,13 @@ - (NSString *)diskFileName{ - (NSString *)storage_key_for_disk{ NSArray *fileNameCom = [_name componentsSeparatedByString:@"."]; NSMutableArray *storage_keyCom = [_storage_key componentsSeparatedByString:@"."].mutableCopy; - if (fileNameCom.count > 1 && storage_keyCom.count > 0 && ![fileNameCom.lastObject isEqualToString:storage_keyCom.lastObject]) { + if (fileNameCom.count > 1 && storage_keyCom.count > 0 && ![fileNameCom.lastObject isEqualToString:storage_keyCom.lastObject]) {//_storage_key 后缀名与 fileNameCom 后缀名不同的情况 [storage_keyCom addObject:fileNameCom.lastObject]; return [storage_keyCom componentsJoinedByString:@"."]; - }else{ - return _storage_key; + }else if (_storage_key.length > 0){ + return [_storage_key componentsSeparatedByString:@"/"].lastObject;//'group0/M00/00/01/fwAAAVsHsvqAOY8rABzvMF5h1Ck652.JPG'..诡异的前半截数据 + }else{// 说是以后,可能迁移到腾讯云,_storage_key 字段可能不保 + return [NSString stringWithFormat:@"%@_%@.%@", _project_id, _file_id, fileNameCom.lastObject]; } } @@ -129,10 +156,10 @@ - (NSString *)toDeletePath{ return [NSString stringWithFormat:@"api/project/%@/file/delete", _project_id.stringValue]; } - (NSDictionary *)toDeleteParams{ - return @{@"fileIds" : @[_file_id.stringValue]}; + return @{@"fileIds" : @[self.file_id.stringValue]}; } - (NSDictionary *)toMoveToParams{ - return @{@"fileId" : @[_file_id.stringValue]}; + return @{@"fileId" : @[self.file_id.stringValue]}; } - (NSString *)toDetailPath{ @@ -146,20 +173,36 @@ - (NSString *)toDetailPath{ } - (NSString *)toActivityListPath{ - return [NSString stringWithFormat:@"api/project/%@/file/%@/activities", _project_id.stringValue, _file_id.stringValue]; + return [NSString stringWithFormat:@"api/project/%@/file/%@/activities", _project_id.stringValue, self.file_id.stringValue]; } - (NSString *)toHistoryListPath{ - return [NSString stringWithFormat:@"api/project/%@/files/%@/histories", _project_id.stringValue, _file_id.stringValue]; + return [NSString stringWithFormat:@"api/project/%@/files/%@/histories", _project_id.stringValue, self.file_id.stringValue]; } - (NSDictionary *)toShareParams{ return @{ @"projectId": _project_id, - @"resourceId": _file_id, + @"resourceId": self.file_id, @"resourceType": @0, @"accessType": @0 }; } + + + +- (NSString *)toFolderFilesPath{ + if (self.isSharedFolder) { + return [NSString stringWithFormat:@"api/user/%@/project/%@/folder/shared_files", _project_owner_name, _project_name]; + }else{ + return [NSString stringWithFormat:@"api/user/%@/project/%@/folder/%@/all", _project_owner_name, _project_name, self.file_id]; + } +} +- (NSDictionary *)toFolderFilesParams{ + return @{@"height": @"90", + @"width": @"90", + @"page" : @"1", + @"pageSize": @"500"}; +} @end diff --git a/Coding_iOS/Models/ProjectFiles.h b/Coding_iOS/Models/ProjectFiles.h index 296a8520d..711f7df63 100755 --- a/Coding_iOS/Models/ProjectFiles.h +++ b/Coding_iOS/Models/ProjectFiles.h @@ -16,4 +16,6 @@ @property (strong, nonatomic) NSDictionary *propertyArrayMap; @property (assign, nonatomic) BOOL isLoading; +@property (readonly, nonatomic, strong) NSMutableArray *fileList, *folderList; +- (void)addSharedFolder; @end diff --git a/Coding_iOS/Models/ProjectFiles.m b/Coding_iOS/Models/ProjectFiles.m index 14d5c0da6..470f45640 100755 --- a/Coding_iOS/Models/ProjectFiles.m +++ b/Coding_iOS/Models/ProjectFiles.m @@ -20,4 +20,19 @@ - (instancetype)init } return self; } + +- (void)setList:(NSMutableArray *)list{ + _list = list.mutableCopy; + _folderList = [list filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"type == 0"]]].mutableCopy ?: @[].mutableCopy; + _fileList = [list filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"type != 0"]]].mutableCopy ?: @[].mutableCopy; + +} + +- (void)addSharedFolder{ + ProjectFile *tempF = _list.firstObject; + ProjectFile *sharedF = [ProjectFile sharedFolderInProject:tempF.project_name ofUser:tempF.project_owner_name]; + [_list insertObject:sharedF atIndex:0]; + [_folderList insertObject:sharedF atIndex:0]; +} + @end diff --git a/Coding_iOS/Models/ProjectFolder.m b/Coding_iOS/Models/ProjectFolder.m index 799b53996..dfa89836b 100755 --- a/Coding_iOS/Models/ProjectFolder.m +++ b/Coding_iOS/Models/ProjectFolder.m @@ -88,7 +88,7 @@ - (NSDictionary *)toFilesParams{ return @{@"height": @"90", @"width": @"90", @"page" : @"1", - @"pageSize": @(99999999)}; + @"pageSize": @(999999999)}; } - (NSString *)toRenamePath{ return [NSString stringWithFormat:@"api/project/%@/dir/%@/name/%@", _project_id.stringValue, _file_id.stringValue, _next_name]; diff --git a/Coding_iOS/Models/ProjectFolders.m b/Coding_iOS/Models/ProjectFolders.m index f54c85232..46ca99cb1 100755 --- a/Coding_iOS/Models/ProjectFolders.m +++ b/Coding_iOS/Models/ProjectFolders.m @@ -56,7 +56,7 @@ - (NSString *)toFoldersPathWithObj:(NSNumber *)project_id{ } - (NSDictionary *)toFoldersParams{ return @{@"page": @"1", - @"pageSize": @(99999999)}; + @"pageSize": @(999999999)}; } - (NSString *)toFoldersCountPathWithObj:(NSNumber *)project_id{ diff --git a/Coding_iOS/Models/ProjectRole.h b/Coding_iOS/Models/ProjectRole.h new file mode 100644 index 000000000..b9bcf7657 --- /dev/null +++ b/Coding_iOS/Models/ProjectRole.h @@ -0,0 +1,16 @@ +// +// ProjectRole.h +// Coding_Enterprise_iOS +// +// Created by Easeeeeeeeee on 2017/6/6. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import +#import "Project.h" + +@interface ProjectRole : NSObject +@property (strong, nonatomic) NSString *alias; +@property (strong, nonatomic) NSNumber *id, *project_id, *user_id, *type; +@property (strong, nonatomic) Project *project; +@end diff --git a/Coding_iOS/Models/ProjectRole.m b/Coding_iOS/Models/ProjectRole.m new file mode 100644 index 000000000..3f577d2fa --- /dev/null +++ b/Coding_iOS/Models/ProjectRole.m @@ -0,0 +1,13 @@ +// +// ProjectRole.m +// Coding_Enterprise_iOS +// +// Created by Easeeeeeeeee on 2017/6/6. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "ProjectRole.h" + +@implementation ProjectRole + +@end diff --git a/Coding_iOS/Models/Projects.m b/Coding_iOS/Models/Projects.m index 306aae0b7..3eb35892d 100755 --- a/Coding_iOS/Models/Projects.m +++ b/Coding_iOS/Models/Projects.m @@ -30,7 +30,7 @@ + (Projects *)projectsWithType:(ProjectsType)type andUser:(User *)user{ pros.curUser = user; pros.page = [NSNumber numberWithInteger:1]; - pros.pageSize = @(99999999); + pros.pageSize = @(999999999); return pros; } diff --git a/Coding_iOS/Models/Team.h b/Coding_iOS/Models/Team.h index 5d54e9fca..fd5395cdf 100644 --- a/Coding_iOS/Models/Team.h +++ b/Coding_iOS/Models/Team.h @@ -5,13 +5,32 @@ // Created by Ease on 2016/9/9. // Copyright © 2016年 Coding. All rights reserved. // +#define kEANeedTipRemainDays 5 #import #import "User.h" +@class TeamInfo; + @interface Team : NSObject @property (strong, nonatomic) NSNumber *id, *member_count, *project_count, *current_user_role_id; +@property (strong, nonatomic) NSNumber *locked;//是否被锁定(停用) @property (strong, nonatomic) NSString *name, *introduction, *avatar, *path, *global_key; @property (strong, nonatomic) NSDate *created_at, *updated_at; @property (strong, nonatomic) User *owner; -@end \ No newline at end of file +@property (strong, nonatomic) TeamInfo *info;//需要另行请求的参数 request_InfoOfTeam +@property (assign, nonatomic) BOOL hasDismissWebTip; ++ (instancetype)teamWithGK:(NSString *)global_key; +- (NSString *)toUpdateInfoPath; +- (NSDictionary *)toUpdateInfoParams; +@end + +@interface TeamInfo : NSObject +@property (strong, nonatomic) NSNumber *balance, *remain_days, *trial, *payed; +@property (strong, nonatomic) NSDate *billing_date, *created_at, *estimate_date, *suspended_at; +@property (strong, nonatomic) NSNumber *locked;//是否被锁定(停用) +- (BOOL)isToped_up; +- (NSInteger)stopped_days; +- (NSInteger)beyond_days; +- (NSInteger)trial_left_days; +@end diff --git a/Coding_iOS/Models/Team.m b/Coding_iOS/Models/Team.m index fa0ec62b9..0797387f0 100644 --- a/Coding_iOS/Models/Team.m +++ b/Coding_iOS/Models/Team.m @@ -5,9 +5,47 @@ // Created by Ease on 2016/9/9. // Copyright © 2016年 Coding. All rights reserved. // +#define kEAMaxTrialDays 15 #import "Team.h" @implementation Team ++ (instancetype)teamWithGK:(NSString *)global_key{ + Team *team = [Team new]; + team.global_key = global_key; + return team; +} +- (NSString *)toUpdateInfoPath{ + return [NSString stringWithFormat:@"api/team/%@/update", _global_key]; +} +- (NSDictionary *)toUpdateInfoParams{ + return @{@"global_key": _global_key, + @"name": _name, + @"introduction": _introduction ?: @"", + }; +} + +@end + +@implementation TeamInfo +- (BOOL)isToped_up{//是否充过值 + return _payed? _payed.boolValue: _balance.integerValue > 0; +} + +- (NSInteger)stopped_days{//停用天数 + if (_suspended_at) { + return MAX(0, [_suspended_at daysAgo]); + }else{ + return MAX(0, [_estimate_date daysAgo] - ([self isToped_up]? 5: 0)); + } +} + +- (NSInteger)beyond_days{//超期天数 + return MAX(0, [_estimate_date daysAgo]); +} + +- (NSInteger)trial_left_days{//试用期剩余天数 + return MAX(0, kEAMaxTrialDays - MAX(0, [_created_at daysAgo])); +} @end diff --git a/Coding_iOS/Models/TeamMember.h b/Coding_iOS/Models/TeamMember.h index 5442f93f3..18f015490 100644 --- a/Coding_iOS/Models/TeamMember.h +++ b/Coding_iOS/Models/TeamMember.h @@ -10,13 +10,13 @@ #import "User.h" @interface TeamMember : NSObject -@property (readwrite, nonatomic, strong) NSNumber *id, *team_id, *user_id, *role;//role:80是member,100是creater +@property (readwrite, nonatomic, strong) NSNumber *id, *team_id, *user_id, *role;//role:80是member,90是admin,100是creater @property (readwrite, nonatomic, strong) User *user; @property (readwrite, nonatomic, strong) NSDate *created_at, *updated_at; @property (strong, nonatomic) NSString *alias, *default2faMethod; //edit @property (strong, nonatomic) NSString *editAlias; -@property (strong, nonatomic) NSNumber *editType; +@property (strong, nonatomic) NSNumber *editRole; -@end \ No newline at end of file +@end diff --git a/Coding_iOS/Models/TeamMember.m b/Coding_iOS/Models/TeamMember.m index 81ebd1e4c..774af3cc1 100644 --- a/Coding_iOS/Models/TeamMember.m +++ b/Coding_iOS/Models/TeamMember.m @@ -10,4 +10,17 @@ @implementation TeamMember +- (NSString *)editAlias{ + if (!_editAlias) { + _editAlias = _alias ?: @""; + } + return _editAlias; +} +- (NSNumber *)editRole{ + if (!_editRole) { + _editRole = _role; + } + return _editRole; +} + @end diff --git a/Coding_iOS/Models/TeamPurchaseBilling.h b/Coding_iOS/Models/TeamPurchaseBilling.h new file mode 100644 index 000000000..c9c6e008e --- /dev/null +++ b/Coding_iOS/Models/TeamPurchaseBilling.h @@ -0,0 +1,20 @@ +// +// TeamPurchaseBilling.h +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import +#import "TeamPurchaseBillingDetail.h" + +@interface TeamPurchaseBilling : NSObject +@property (strong, nonatomic) NSNumber *id, *price, *balance; +@property (strong, nonatomic) NSDate *created_at, *billing_date; +@property (strong, nonatomic) NSArray *details; +@property (strong, nonatomic, readonly) NSArray *details_display; +@property (strong, nonatomic, readonly) NSDictionary *propertyArrayMap; + +@property (assign, nonatomic) BOOL isExpanded;//UI 页面是都展开了 +@end diff --git a/Coding_iOS/Models/TeamPurchaseBilling.m b/Coding_iOS/Models/TeamPurchaseBilling.m new file mode 100644 index 000000000..ea4dbb705 --- /dev/null +++ b/Coding_iOS/Models/TeamPurchaseBilling.m @@ -0,0 +1,30 @@ +// +// TeamPurchaseBilling.m +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "TeamPurchaseBilling.h" + +@implementation TeamPurchaseBilling + +- (NSDictionary *)propertyArrayMap{ + return @{@"details": @"TeamPurchaseBillingDetail"}; +} + +- (void)setDetails:(NSArray *)details{ + _details = details; + NSSet *daySet = [NSSet setWithArray:[_details valueForKey:@"days"]]; + NSArray *dayArray = [daySet sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:nil ascending:NO selector:@selector(compare:)]]]; + NSMutableArray *details_display = @[].mutableCopy; + for (NSNumber *day in dayArray) { + NSArray *list = [_details filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"days = %@", day]]; +// NSString *displayStr = [NSString stringWithFormat:@"%lu 人,已使用 %@ 天", (unsigned long)list.count, day]; + NSString *displayStr = [NSString stringWithFormat:@"%lu 人", (unsigned long)list.count]; + [details_display addObject:displayStr]; + } + _details_display = details_display; +} +@end diff --git a/Coding_iOS/Models/TeamPurchaseBillingDetail.h b/Coding_iOS/Models/TeamPurchaseBillingDetail.h new file mode 100644 index 000000000..c604ef254 --- /dev/null +++ b/Coding_iOS/Models/TeamPurchaseBillingDetail.h @@ -0,0 +1,15 @@ +// +// TeamPurchaseBillingDetail.h +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import + +@interface TeamPurchaseBillingDetail : NSObject +@property (strong, nonatomic) NSString *user_name, *user_gk; +@property (strong, nonatomic) NSNumber *days; +@property (strong, nonatomic) NSDate *start_date, *end_date; +@end diff --git a/Coding_iOS/Models/TeamPurchaseBillingDetail.m b/Coding_iOS/Models/TeamPurchaseBillingDetail.m new file mode 100644 index 000000000..5f016f4e1 --- /dev/null +++ b/Coding_iOS/Models/TeamPurchaseBillingDetail.m @@ -0,0 +1,13 @@ +// +// TeamPurchaseBillingDetail.m +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "TeamPurchaseBillingDetail.h" + +@implementation TeamPurchaseBillingDetail + +@end diff --git a/Coding_iOS/Models/TeamPurchaseOrder.h b/Coding_iOS/Models/TeamPurchaseOrder.h new file mode 100644 index 000000000..4028f8c78 --- /dev/null +++ b/Coding_iOS/Models/TeamPurchaseOrder.h @@ -0,0 +1,15 @@ +// +// TeamPurchaseOrder.h +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import + +@interface TeamPurchaseOrder : NSObject +@property (strong, nonatomic) NSNumber *price; +@property (strong, nonatomic) NSString *number, *status, *action, *creator_name, *creator_gk; +@property (strong, nonatomic) NSDate *created_at; +@end diff --git a/Coding_iOS/Models/TeamPurchaseOrder.m b/Coding_iOS/Models/TeamPurchaseOrder.m new file mode 100644 index 000000000..6061948c0 --- /dev/null +++ b/Coding_iOS/Models/TeamPurchaseOrder.m @@ -0,0 +1,13 @@ +// +// TeamPurchaseOrder.m +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/3/7. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "TeamPurchaseOrder.h" + +@implementation TeamPurchaseOrder + +@end diff --git a/Coding_iOS/Models/Tweet.m b/Coding_iOS/Models/Tweet.m index 7c47b6ea8..fa2000435 100644 --- a/Coding_iOS/Models/Tweet.m +++ b/Coding_iOS/Models/Tweet.m @@ -8,6 +8,7 @@ #import "Tweet.h" #import "Login.h" +#import "YLGIFImage.h" static Tweet *_tweetForSend = nil; @@ -201,7 +202,9 @@ - (void)saveSendData{ [tweetImagesDict setObject:tImg.assetLocalIdentifier forKey:imgNameStr]; } if (tImg.downloadState == TweetImageDownloadStateSuccess) { - [NSObject saveImage:tImg.image imageName:imgNameStr inFolder:dataPath]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + [NSObject saveImage:tImg.image imageName:imgNameStr inFolder:dataPath]; + }); } } [NSObject saveResponseData:@{@"content" : _tweetContent? _tweetContent: @"", @@ -226,7 +229,7 @@ - (void)loadSendData{ NSData *imageData = [NSObject loadImageDataWithName:key inFolder:dataPath]; TweetImage *tImg; if (imageData) { - tImg = [TweetImage tweetImageWithAssetLocalIdentifier:obj andImage:[UIImage imageWithData:imageData]]; + tImg = [TweetImage tweetImageWithAssetLocalIdentifier:obj andImage:[YLGIFImage imageWithData:imageData]]; }else{ tImg = [TweetImage tweetImageWithAssetLocalIdentifier:obj]; } diff --git a/Coding_iOS/Models/User.h b/Coding_iOS/Models/User.h index e6f42d977..33a8997bb 100755 --- a/Coding_iOS/Models/User.h +++ b/Coding_iOS/Models/User.h @@ -20,11 +20,13 @@ @property (readwrite, nonatomic, strong) NSNumber *id, *sex, *follow, *followed, *fans_count, *follows_count, *tweets_count, *status, *points_left, *email_validation, *is_phone_validated, *vip, *degree, *job; @property (readwrite, nonatomic, strong) NSDate *created_at, *last_logined_at, *last_activity_at, *updated_at, *vip_expired_at; +@property (strong, nonatomic) NSNumber *isAdministrator; + @property (strong, nonatomic) NSArray *skills; @property (strong, nonatomic, readonly) NSString *skills_str, *degree_str, *vipName; -@property (assign, nonatomic, readonly) BOOL isUserInfoCompleted, canUpgradeByCompleteUserInfo, willExpired; +@property (assign, nonatomic, readonly) BOOL isUserInfoCompleted, canUpgradeByCompleteUserInfo, willExpired, hasNoEamilAndPhone; + (User *)userWithGlobalKey:(NSString *)global_key; diff --git a/Coding_iOS/Models/User.m b/Coding_iOS/Models/User.m index 274248456..3ad829be9 100755 --- a/Coding_iOS/Models/User.m +++ b/Coding_iOS/Models/User.m @@ -201,12 +201,14 @@ - (NSDictionary *)toUpdateInfoParams{ @"company" : _company? _company: @"", @"job" : _job? _job: [NSNumber numberWithInteger:0], @"tags" : _tags? _tags: @"", - @"school": _school ?: @"", - @"degree": _degree ?: @"", }.mutableCopy; - for (int index = 0; index < _skills.count; index++) { - CodingSkill *curSkill = _skills[index]; - params[[NSString stringWithFormat:@"skills[%d]", index]] = [NSString stringWithFormat:@"%@:%@", curSkill.skillId, curSkill.level]; + if (!kTarget_Enterprise) { + params[@"school"] = _school ?: @""; + params[@"degree"] = _degree ?: @""; + for (int index = 0; index < _skills.count; index++) { + CodingSkill *curSkill = _skills[index]; + params[[NSString stringWithFormat:@"skills[%d]", index]] = [NSString stringWithFormat:@"%@:%@", curSkill.skillId, curSkill.level]; + } } return params; } @@ -234,6 +236,9 @@ - (BOOL)willExpired{ return (self.vip.integerValue >= 3 && (timeInterval < 3 * 24 * 60 * 60)); } +- (BOOL)hasNoEamilAndPhone{ + return self.email.length <= 0 && self.phone.length <= 0; +} - (NSString *)changePasswordTips{ NSString *tipStr = nil; diff --git a/Coding_iOS/Models/Users.h b/Coding_iOS/Models/Users.h index a12238949..3905278e8 100755 --- a/Coding_iOS/Models/Users.h +++ b/Coding_iOS/Models/Users.h @@ -12,6 +12,7 @@ typedef NS_ENUM(NSInteger, UsersType) { UsersTypeFollowers = 0, UsersTypeFriends_Attentive, + UsersType_CompanyMember, UsersTypeFriends_Message, UsersTypeFriends_At, UsersTypeFriends_Transpond, @@ -36,6 +37,7 @@ typedef NS_ENUM(NSInteger, UsersType) { - (NSString *)toPath; - (NSDictionary *)toParams; - (void)configWithObj:(Users *)resultA; +- (void)removeLoginUserFromList; - (NSDictionary *)dictGroupedByPinyin; diff --git a/Coding_iOS/Models/Users.m b/Coding_iOS/Models/Users.m index 42b80c2df..433464f26 100755 --- a/Coding_iOS/Models/Users.m +++ b/Coding_iOS/Models/Users.m @@ -7,6 +7,7 @@ // #import "Users.h" +#import "Login.h" @implementation Users - (instancetype)init @@ -18,7 +19,7 @@ - (instancetype)init _canLoadMore = YES; _isLoading = _willLoadMore = NO; _page = [NSNumber numberWithInteger:1]; - _pageSize = @(99999999); + _pageSize = @(999999999); } return self; } @@ -52,6 +53,10 @@ - (NSString *)toPath{ path = [NSString stringWithFormat:@"api/user/%@/project/%@/stargazers", _project_owner_name, _project_name]; }else if (_type == UsersTypeProjectWatch){ path = [NSString stringWithFormat:@"api/user/%@/project/%@/watchers", _project_owner_name, _project_name]; + }else if (_type == UsersType_CompanyMember){ + path = [NSString stringWithFormat:@"api/team/%@/members", [NSObject baseCompany]]; + }else if (_type == UsersTypeFriends_Transpond && kTarget_Enterprise){ + path = [NSString stringWithFormat:@"api/team/%@/members", [NSObject baseCompany]]; } return path; } @@ -79,6 +84,19 @@ - (void)configWithObj:(Users *)resultA{ } } +- (void)removeLoginUserFromList{ + __block User *loginUser = nil; + [self.list enumerateObjectsUsingBlock:^(User * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.global_key isEqualToString:[Login curLoginUser].global_key] || + [obj.id isEqualToNumber:[Login curLoginUser].id]) { + loginUser = obj; + } + }]; + if (loginUser) { + [self.list removeObject:loginUser]; + } +} + - (NSDictionary *)dictGroupedByPinyin{ if (self.list.count <= 0) { return @{@"#" : [NSMutableArray array]}; diff --git a/Coding_iOS/Resources/service_terms.html b/Coding_iOS/Resources/service_terms.html index ca7982e4a..8c9d48264 100644 --- a/Coding_iOS/Resources/service_terms.html +++ b/Coding_iOS/Resources/service_terms.html @@ -310,29 +310,29 @@

服务条款

-

欢迎使用 Coding —— 云端软件开发平台,包括代码托管,运行空间,质量控制,项目管理等等。Coding 由深圳市扣钉网络科技有限公司(以下简称“扣钉网络”)开发运营。本服务条款是您与扣钉网络之间的协议,并在必要的时候进行修订,且无需另行通知。修订后的条款一旦在网页上公布即有效代替原来的服务条款。

+

欢迎使用 CODING —— 云端软件开发平台,包括代码托管,运行空间,质量控制,项目管理等等。CODING 由深圳市扣钉网络科技有限公司(以下简称“扣钉网络”)开发运营。本服务条款是您与扣钉网络之间的协议,并在必要的时候进行修订,且无需另行通知。修订后的条款一旦在网页上公布即有效代替原来的服务条款。

1、本网站的使用

-

如果您有意愿使用 Coding的某些付费服务,这将表示您同意支付其中的所有费用。在您提交使用付费产品的申请后,扣钉网络将提供经我们认可的第三方在线服务机构的支付方式,并要求您支付相关费用。成功支付后,表明您已经获得使用付费服务的权利并且已经达成此项交易,除非因扣钉网络的原因导致服务无法正常提供,否则我们将不退还您已经支付的服务费。

+

如果您有意愿使用 CODING 的某些付费服务,这将表示您同意支付其中的所有费用。在您提交使用付费产品的申请后,扣钉网络将提供经我们认可的第三方在线服务机构的支付方式,并要求您支付相关费用。成功支付后,表明您已经获得使用付费服务的权利并且已经达成此项交易,除非因扣钉网络的原因导致服务无法正常提供,否则我们将不退还您已经支付的服务费。

此外,由于您违反了《隐私策略》或者《服务条款》的相关规定而导致账户不可用,扣钉网络将不会退还付费产品的服务费。

以下行为是我们坚决反对和禁止的:

-

(1) 使用Coding的通信功能发送垃圾信息、频繁骚扰其他用户和造成用户反感的行为;
- (2) 对网站服务器进行恶意攻击, 或者采取恶意手段使用 Coding,造成服务器异常;
- (3) 使用 Coding 从事非法活动或者为非法活动提供帮助。

+

(1) 使用 CODING 的通信功能发送垃圾信息、频繁骚扰其他用户和造成用户反感的行为;
+ (2) 对网站服务器进行恶意攻击, 或者采取恶意手段使用 CODING,造成服务器异常;
+ (3) 使用 CODING 从事非法活动或者为非法活动提供帮助。

-

如果您采取了上述行为,我们有权终止/暂停您使用 Coding 的权利,并将视该行为引起后果的严重性追究责任,并保留通过法律途径追偿合理损失的权利。

+

如果您采取了上述行为,我们有权终止/暂停您使用 CODING 的权利,并将视该行为引起后果的严重性追究责任,并保留通过法律途径追偿合理损失的权利。

2、知识产权声明

本网站,包括(但不仅限于) 文字,内容,软件,录像,音乐,声音,图形,照片,图表,美术设计,图片,名称,标识,商标和/或服务标志(包括已注册和未注册的),以及其他资料(以下简称网站内容)都受到版权法,商标法和一切知识产权公约的保护。未经扣钉网络、用户或相关权利人书面许可, 任何人不得以任何形式进行使用或创造相关衍生作品。本网站内容包括扣钉网络所有或控制下的内容和第三方所有或控制下,并授权扣钉网络使用的内容。所有代码,文章,讨论等一切构成本网站的元素都可能是受版权保护的作品。您同意遵守所有适用本网站的版权保护法律法规,以及所有本网站包含的补充性的版权说明或限制。本网站的内容均由相应的机构/个人上传、维护。对于本站内容的任何使用请遵守内容所附带的授权协议。如不清楚相应的授权协议请询问上传该内容的机构/个人。

-

任何在 Coding 上注册的账号上传的内容的版权均归上传者所有,上传者承担所有被上传内容的版权责任。扣钉网络有权在其拥有的网站上,展示上传者上传到本网站公共区域的内容。

+

任何在 CODING 上注册的账号上传的内容的版权均归上传者所有,上传者承担所有被上传内容的版权责任。扣钉网络有权在其拥有的网站上,展示上传者上传到本网站公共区域的内容。

3、个人信息的保护

diff --git a/Coding_iOS/Util/Common/Helper.m b/Coding_iOS/Util/Common/Helper.m index da56ac871..c64203d69 100644 --- a/Coding_iOS/Util/Common/Helper.m +++ b/Coding_iOS/Util/Common/Helper.m @@ -13,13 +13,11 @@ @implementation Helper + (BOOL)checkPhotoLibraryAuthorizationStatus { - if ([ALAssetsLibrary respondsToSelector:@selector(authorizationStatus)]) { - ALAuthorizationStatus authStatus = [ALAssetsLibrary authorizationStatus]; - if (ALAuthorizationStatusDenied == authStatus || - ALAuthorizationStatusRestricted == authStatus) { - [self showSettingAlertStr:@"请在iPhone的“设置->隐私->照片”中打开本应用的访问权限"]; - return NO; - } + PHAuthorizationStatus authStatus = PHPhotoLibrary.authorizationStatus; + if (authStatus == PHAuthorizationStatusRestricted || + authStatus == PHAuthorizationStatusDenied) { + [self showSettingAlertStr:@"请在iPhone的“设置->隐私->照片”中打开本应用的访问权限"]; + return NO; } return YES; } @@ -46,19 +44,15 @@ + (BOOL)checkCameraAuthorizationStatus + (void)showSettingAlertStr:(NSString *)tipStr{ //iOS8+系统下可跳转到‘设置’页面,否则只弹出提示窗即可 if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_7_1) { - UIAlertView *alertView = [UIAlertView bk_alertViewWithTitle:@"提示" message:tipStr]; - [alertView bk_setCancelButtonWithTitle:@"取消" handler:nil]; - [alertView bk_addButtonWithTitle:@"设置" handler:nil]; - [alertView bk_setDidDismissBlock:^(UIAlertView *alert, NSInteger index) { - if (index == 1) { + [[UIAlertController ea_alertViewWithTitle:@"提示" message:tipStr buttonTitles:@[@"设置"] destructiveTitle:nil cancelTitle:@"取消" andDidDismissBlock:^(UIAlertAction *action, NSInteger index) { + if (index == 0) { UIApplication *app = [UIApplication sharedApplication]; NSURL *settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([app canOpenURL:settingsURL]) { [app openURL:settingsURL]; } } - }]; - [alertView show]; + }] show]; }else{ kTipAlert(@"%@", tipStr); } diff --git a/Coding_iOS/Util/Common/UITapImageView.h b/Coding_iOS/Util/Common/UITapImageView.h index 064f66b93..6a330a4b4 100755 --- a/Coding_iOS/Util/Common/UITapImageView.h +++ b/Coding_iOS/Util/Common/UITapImageView.h @@ -8,7 +8,9 @@ #import -@interface UITapImageView : UIImageView +#import "YLImageView.h" + +@interface UITapImageView : YLImageView - (void)addTapBlock:(void(^)(id obj))tapAction; -(void)setImageWithUrl:(NSURL *)imgUrl placeholderImage:(UIImage *)placeholderImage tapBlock:(void(^)(id obj))tapAction; diff --git a/Coding_iOS/Util/EADeviceToServerLog/EADeviceToServerLog.m b/Coding_iOS/Util/EADeviceToServerLog/EADeviceToServerLog.m index c38c5f78e..ef4df3961 100644 --- a/Coding_iOS/Util/EADeviceToServerLog/EADeviceToServerLog.m +++ b/Coding_iOS/Util/EADeviceToServerLog/EADeviceToServerLog.m @@ -108,11 +108,13 @@ - (BOOL)p_canStartLog{ } - (void)tryToStart{ - if ([self p_canStartLog]) { - [self startLog]; - }else{ - [self tryToPostToServer]; - } + return ; //停了。要开的话,以后再说 + +// if ([self p_canStartLog]) { +// [self startLog]; +// }else{ +// [self tryToPostToServer]; +// } } - (void)tryToPostToServer{ diff --git a/Coding_iOS/Util/EADeviceToServerLog/LDNetDiagnoService/LDNetTraceRoute.m b/Coding_iOS/Util/EADeviceToServerLog/LDNetDiagnoService/LDNetTraceRoute.m index 817124915..fc352f933 100644 --- a/Coding_iOS/Util/EADeviceToServerLog/LDNetDiagnoService/LDNetTraceRoute.m +++ b/Coding_iOS/Util/EADeviceToServerLog/LDNetDiagnoService/LDNetTraceRoute.m @@ -118,6 +118,11 @@ - (Boolean)doTraceRoute:(NSString *)host // On progresse jusqu'à un nombre de TTLs max. while (ttl <= maxTTL) { memset(&fromAddr, 0, sizeof(fromAddr)); + + //设置不发送 `SIGPIPE` 信号 + int value = 1; + setsockopt(send_sock, SOL_SOCKET, SO_NOSIGPIPE, &value, sizeof(value)); + //设置sender 套接字的ttl if ((isIPV6? setsockopt(send_sock,IPPROTO_IPV6, IPV6_UNICAST_HOPS, &ttl, sizeof(ttl)):setsockopt(send_sock, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl))) < 0) { error = true; diff --git a/Coding_iOS/Util/Manager/CodingNetAPIClient.h b/Coding_iOS/Util/Manager/CodingNetAPIClient.h index a5a9978e4..f9fd65778 100755 --- a/Coding_iOS/Util/Manager/CodingNetAPIClient.h +++ b/Coding_iOS/Util/Manager/CodingNetAPIClient.h @@ -28,6 +28,11 @@ typedef NS_ENUM(NSInteger, IllegalContentType) { + (id)sharedJsonClient; + (id)changeJsonClient; ++ (id)changeSharedJsonClient; ++ (id)e_JsonClient; ++ (id)changeE_JsonClient; + + - (void)requestJsonDataWithPath:(NSString *)aPath withParams:(NSDictionary*)params withMethodType:(NetworkMethod)method diff --git a/Coding_iOS/Util/Manager/CodingNetAPIClient.m b/Coding_iOS/Util/Manager/CodingNetAPIClient.m index e18443a4b..811c54d05 100755 --- a/Coding_iOS/Util/Manager/CodingNetAPIClient.m +++ b/Coding_iOS/Util/Manager/CodingNetAPIClient.m @@ -14,7 +14,9 @@ @implementation CodingNetAPIClient static CodingNetAPIClient *_sharedClient = nil; +static CodingNetAPIClient *_eClient = nil; static dispatch_once_t onceToken; +static dispatch_once_t e_Token; + (CodingNetAPIClient *)sharedJsonClient { dispatch_once(&onceToken, ^{ @@ -28,6 +30,23 @@ + (id)changeJsonClient{ return _sharedClient; } ++ (id)changeSharedJsonClient{ + _sharedClient = [[CodingNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:[NSObject baseURLStr]]]; + return _sharedClient; +} + ++ (CodingNetAPIClient *)e_JsonClient { + dispatch_once(&e_Token, ^{ + _eClient = [[CodingNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:[NSObject e_URLStr]]]; + }); + return _eClient; +} + ++ (id)changeE_JsonClient{ + _eClient = [[CodingNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:[NSObject e_URLStr]]]; + return _eClient; +} + - (id)initWithBaseURL:(NSURL *)url { self = [super initWithBaseURL:url]; if (!self) { @@ -71,7 +90,8 @@ - (void)requestJsonDataWithPath:(NSString *)aPath } //log请求数据 DebugLog(@"\n===========request===========\n%@\n%@:\n%@", kNetworkMethodName[method], aPath, params); - aPath = [aPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + aPath = [aPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//卧槽了,有些把 params 放在 path 里面的 GET 方法 +// aPath = [aPath stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]; // 发起请求 switch (method) { case Get:{ @@ -161,8 +181,9 @@ - (void)requestJsonDataWithPath:(NSString *)aPath -(void)requestJsonDataWithPath:(NSString *)aPath file:(NSDictionary *)file withParams:(NSDictionary *)params withMethodType:(NetworkMethod)method andBlock:(void (^)(id, NSError *))block{ //log请求数据 DebugLog(@"\n===========request===========\n%@:\n%@", aPath, params); - aPath = [aPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - +// aPath = [aPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + aPath = [aPath stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet]; + // Data NSData *data; NSString *name, *fileName; @@ -238,7 +259,68 @@ - (void)uploadImage:(UIImage *)image path:(NSString *)path name:(NSString *)name failureBlock:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure progerssBlock:(void (^)(CGFloat progressValue))progress{ - NSData *data = [image dataForCodingUpload]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSData *data = [image dataForCodingUpload]; + [self p_uploadImageData:data path:path name:name successBlock:success failureBlock:failure progerssBlock:progress]; + }); + +// NSData *data = [image dataForCodingUpload]; +// NSString *fileName = [NSString stringWithFormat:@"%@_%@.jpg", [Login curLoginUser].global_key, [NSUUID UUID].UUIDString]; +// DebugLog(@"\nuploadImageSize\n%@ : %.0f", fileName, (float)data.length/1024); +// +// __weak typeof(self) weakSelf = self; +// void (^uploadBlock)(NSDictionary *) = ^(NSDictionary *uploadParams){ +// AFHTTPRequestOperation *operation = [weakSelf POST:path parameters:uploadParams constructingBodyWithBlock:^(id formData) { +// [formData appendPartWithFileData:data name:name fileName:fileName mimeType:@"image/jpeg"]; +// } success:^(AFHTTPRequestOperation *operation, id responseObject) { +// DebugLog(@"Success: %@ ***** %@", operation.responseString, responseObject); +// id error = [self handleResponse:responseObject]; +// if (error && failure) { +// failure(operation, error); +// }else{ +// success(operation, responseObject); +// } +// } failure:^(AFHTTPRequestOperation *operation, NSError *error) { +// DebugLog(@"Error: %@ ***** %@", operation.responseString, error); +// if (failure) { +// failure(operation, error); +// } +// }]; +// [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { +// CGFloat progressValue = (float)totalBytesWritten/(float)totalBytesExpectedToWrite; +// if (progress) { +// progress(progressValue); +// } +// }]; +// [operation start]; +// }; +// if ([path isEqualToString:@"https://up.qbox.me/"]) {//先拿 token +// NSDictionary *params = @{ +// @"fileName": fileName, +// @"fileSize": @(data.length) +// }; +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:@"api/upload_token/public/images" withParams:params withMethodType:Get andBlock:^(id data, NSError *error) { +// if (data) { +// NSDictionary *result = data[@"data"]; +// NSMutableDictionary *uploadParams = @{}.mutableCopy; +// uploadParams[@"token"] = result[@"uptoken"]; +// uploadParams[@"x:time"] = result[@"time"]; +// uploadParams[@"x:authToken"] = result[@"authToken"]; +// uploadParams[@"x:userId"] = result[@"userId"]; +// uploadParams[@"key"] = fileName; +// uploadBlock(uploadParams); +// } +// }]; +// }else{ +// uploadBlock(nil); +// } +} + +- (void)p_uploadImageData:(NSData *)data path:(NSString *)path name:(NSString *)name + successBlock:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success + failureBlock:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure + progerssBlock:(void (^)(CGFloat progressValue))progress{ + NSString *fileName = [NSString stringWithFormat:@"%@_%@.jpg", [Login curLoginUser].global_key, [NSUUID UUID].UUIDString]; DebugLog(@"\nuploadImageSize\n%@ : %.0f", fileName, (float)data.length/1024); diff --git a/Coding_iOS/Util/Manager/Coding_FileManager.h b/Coding_iOS/Util/Manager/Coding_FileManager.h index d7d96670f..0e615ab1a 100755 --- a/Coding_iOS/Util/Manager/Coding_FileManager.h +++ b/Coding_iOS/Util/Manager/Coding_FileManager.h @@ -18,6 +18,7 @@ @class Coding_DownloadTask; @class Coding_UploadTask; @class ProjectFile; +@class Coding_UploadParams; @protocol Coding_FileManagerDelegate; @interface Coding_FileManager : NSObject @@ -48,6 +49,8 @@ + (void)cancelCUploadTaskForFile:(NSString *)diskFileName hasError:(BOOL)hasError; + (NSArray *)uploadFilesInProject:(NSString *)project_id andFolder:(NSString *)folder_id; +- (void)addUploadTaskWithFileName:(NSString *)fileName isQuick:(BOOL)isQuick resultBlock:(void (^)(Coding_UploadTask *uploadTask))block; + - (Coding_UploadTask *)addUploadTaskWithFileName:(NSString *)fileName projectIsPublic:(BOOL)is_public; @end @@ -66,3 +69,16 @@ + (Coding_UploadTask *)cUploadTaskWithTask:(NSURLSessionUploadTask *)task progress:(NSProgress *)progress fileName:(NSString *)fileName; - (void)cancel; @end + + +@interface Coding_UploadParams : NSObject +@property (strong, nonatomic) NSString *fileName, *authToken, *time, *uptoken, *fullName; +@property (strong, nonatomic) NSNumber *projectId, *fileSize, *userId, *dir; +@property (assign, nonatomic) BOOL isQuick; + ++ (instancetype)instanceWithFileName:(NSString *)fileName; +- (void)configWithFileName:(NSString *)fileName; +- (NSDictionary *)toTokenParams; +- (NSURL *)filePathUrl; +- (NSDictionary *)toUploadParams; +@end diff --git a/Coding_iOS/Util/Manager/Coding_FileManager.m b/Coding_iOS/Util/Manager/Coding_FileManager.m index a1fe1e8c8..ac2741ef3 100755 --- a/Coding_iOS/Util/Manager/Coding_FileManager.m +++ b/Coding_iOS/Util/Manager/Coding_FileManager.m @@ -7,6 +7,8 @@ // #import "Coding_FileManager.h" +#import "Login.h" +#import "CodingNetAPIClient.h" @interface Coding_FileManager () @@ -64,16 +66,23 @@ - (instancetype)init + (NSString *)downloadPath{ NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; - NSString *downloadPath = [documentPath stringByAppendingPathComponent:@"Coding_Download"]; + NSString *pathComponent = kTarget_Enterprise? [NSString stringWithFormat:@"%@_Coding_Download", [self p_loginPrefix]]: @"Coding_Download"; + NSString *downloadPath = [documentPath stringByAppendingPathComponent:pathComponent]; return downloadPath; } + (NSString *)uploadPath{ NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; - NSString *uploadPath = [documentPath stringByAppendingPathComponent:@"Coding_Upload"]; + NSString *pathComponent = kTarget_Enterprise? [NSString stringWithFormat:@"%@_Coding_Upload", [self p_loginPrefix]]: @"Coding_Upload"; + NSString *uploadPath = [documentPath stringByAppendingPathComponent:pathComponent]; return uploadPath; } ++ (NSString *)p_loginPrefix{ + NSString *loginPrefix = [NSString stringWithFormat:@"%@_%@", [NSObject baseCompany], [Login curLoginUser].global_key ?: @""]; + return loginPrefix; +} + + (BOOL)createFolder:(NSString *)path{ BOOL isDir = NO; NSFileManager *fileManager = [NSFileManager defaultManager]; @@ -130,8 +139,7 @@ + (NSString *)keyStrFromResponse:(NSURLResponse *)response{ if (!response) { return nil; } - NSString *keyStr = response.URL.absoluteString; - keyStr = [[[[keyStr componentsSeparatedByString:@"?download"] firstObject] componentsSeparatedByString:@"/"] lastObject]; + NSString *keyStr = [response.URL.path componentsSeparatedByString:@"/"].lastObject; return keyStr; } + (Coding_DownloadTask *)cDownloadTaskForResponse:(NSURLResponse *)response{ @@ -164,7 +172,7 @@ - (Coding_DownloadTask *)addDownloadTaskWithPath:(NSString *)downloadPath NSURLRequest *request = [NSURLRequest requestWithURL:downloadURL]; NSURLSessionDownloadTask *downloadTask = [self.af_manager downloadTaskWithRequest:request progress:&progress destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) { NSURL *downloadUrl = [[Coding_FileManager sharedManager] urlForDownloadFolder]; - Coding_DownloadTask *cDownloadTask = [Coding_FileManager cDownloadTaskForResponse:response]; + Coding_DownloadTask *cDownloadTask = [Coding_FileManager cDownloadTaskForKey:storage_key] ?: [Coding_FileManager cDownloadTaskForResponse:response]; if (cDownloadTask) { downloadUrl = [downloadUrl URLByAppendingPathComponent:cDownloadTask.diskFileName]; }else{ @@ -178,6 +186,8 @@ - (Coding_DownloadTask *)addDownloadTaskWithPath:(NSString *)downloadPath [Coding_FileManager cancelCDownloadTaskForKey:storage_key]; }else{ [Coding_FileManager cancelCDownloadTaskForResponse:response]; + + [MobClick event:kUmeng_Event_File label:@"文件_下载成功"]; } if (completionHandler) { completionHandler(response, filePath, error); @@ -216,11 +226,90 @@ + (BOOL)deleteUploadDataWithName:(NSString *)fileName{ NSString *filePath = [[self uploadPath] stringByAppendingPathComponent:fileName]; NSFileManager *fm = [NSFileManager defaultManager]; if ([fm fileExistsAtPath:filePath]) { - return [fm removeItemAtPath:fileName error:nil]; + return [fm removeItemAtPath:filePath error:nil]; }else{ return YES; } } + + +- (void)addUploadTaskWithFileName:(NSString *)fileName isQuick:(BOOL)isQuick resultBlock:(void (^)(Coding_UploadTask *uploadTask))block{ + Coding_UploadParams *base_params = [Coding_UploadParams instanceWithFileName:fileName]; + if (!base_params) { + block(nil); + return; + } + __weak typeof(self) weakSelf = self; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:@"api/upload_token" withParams:[base_params toTokenParams] withMethodType:Get andBlock:^(id data, NSError *error) { + if (data) { + Coding_UploadParams *params = [NSObject objectOfClass:@"Coding_UploadParams" fromJSON:data[@"data"]]; + [params configWithFileName:fileName]; + params.isQuick = isQuick; + block([weakSelf p_addUploadTaskWithParams:params]); + } + }]; +} + +- (Coding_UploadTask *)p_addUploadTaskWithParams:(Coding_UploadParams *)params{ + NSString *fileName = params.fullName; + NSString *name = params.fileName; + NSURL *filePathUrl = [params filePathUrl]; + + NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"https://up.qbox.me/" parameters:[params toUploadParams] constructingBodyWithBlock:^(id formData) { + [formData appendPartWithFileURL:filePathUrl name:@"file" fileName:name mimeType:@"image/jpeg, image/png, image/gif" error:nil]; + } error:nil]; + + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"上传文件"]; + + NSProgress *progress = nil; + NSURLSessionUploadTask *uploadTask = [self.af_manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { + Coding_FileManager *manager = [Coding_FileManager sharedManager]; + if (!error) { + error = [manager handleResponse:responseObject]; + } + response = response? response: [[NSURLResponse alloc] init]; + if (error){ + [NSObject showError:error]; + [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationUploadCompled object:manager userInfo:@{@"response" : response, + @"error" : error}]; + }else if (responseObject) { + [MobClick event:kUmeng_Event_File label:@"文件_上传成功"]; + + responseObject = [responseObject valueForKey:@"data"]; + + if ([responseObject isKindOfClass:[NSString class]]) { + //处理completionHandler + [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationUploadCompled object:manager userInfo:@{@"response" : response, + @"data" : responseObject}]; + }else{ + ProjectFile *curFile = [NSObject objectOfClass:@"ProjectFile" fromJSON:responseObject]; + NSString *block_fileName = [NSString stringWithFormat:@"%@|||%@|||%@", curFile.project_id.stringValue, curFile.parent_id.stringValue, curFile.name]; + NSString *block_filePath = [[[manager class] uploadPath] stringByAppendingPathComponent:block_fileName]; + + //移动文件到已下载 + NSString *diskFilePath = [[[manager class] downloadPath] stringByAppendingPathComponent:curFile.diskFileName]; + [[NSFileManager defaultManager] moveItemAtPath:block_filePath toPath:diskFilePath error:nil]; + [manager directoryDidChange:manager.docUploadWatcher]; + [manager directoryDidChange:manager.docDownloadWatcher]; + DebugLog(@"upload_fileName------\n%@", block_fileName); + + //移除任务 + [Coding_FileManager cancelCUploadTaskForFile:block_fileName hasError:(error != nil)]; + + //处理completionHandler + [[NSNotificationCenter defaultCenter] postNotificationName:kNotificationUploadCompled object:manager userInfo:@{@"response" : response, + @"data" : curFile}]; + } + } + }]; + + [uploadTask resume]; + Coding_UploadTask *cUploadTask = [Coding_UploadTask cUploadTaskWithTask:uploadTask progress:progress fileName:fileName]; + [self.uploadDict setObject:cUploadTask forKey:fileName]; + + return cUploadTask; +} + - (Coding_UploadTask *)addUploadTaskWithFileName:(NSString *)fileName projectIsPublic:(BOOL)is_public{ if (!fileName) { return nil; @@ -405,3 +494,58 @@ - (void)cancel{ } @end + +@implementation Coding_UploadParams + ++ (instancetype)instanceWithFileName:(NSString *)fileName{ + if ([fileName componentsSeparatedByString:@"|||"].count != 3 || + ![[NSFileManager defaultManager] fileExistsAtPath:[[Coding_FileManager uploadPath] stringByAppendingPathComponent:fileName]]) { + return nil; + } + Coding_UploadParams *params = [self new]; + [params configWithFileName:fileName]; + return params; +} + +- (void)configWithFileName:(NSString *)fileName{ + NSArray *fileInfos = [fileName componentsSeparatedByString:@"|||"]; + if (fileInfos.count == 3) { + NSString *filePath = [[Coding_FileManager uploadPath] stringByAppendingPathComponent:fileName]; + NSFileManager *fileManager = [NSFileManager defaultManager]; + if ([fileManager fileExistsAtPath:filePath]) { + _fullName = fileName; + _projectId = fileInfos[0]; + _dir = fileInfos[1]; + _fileName = fileInfos[2]; + _fileSize = @([fileManager attributesOfItemAtPath:filePath error:nil].fileSize); + } + } +} + +- (NSDictionary *)toTokenParams{ + return @{@"projectId": _projectId ?: @"", + @"fileName": _fileName ?: @"", + @"fileSize": _fileSize ?: @""}; +} + +- (NSURL *)filePathUrl{ + NSString *filePath = [[Coding_FileManager uploadPath] stringByAppendingPathComponent:_fullName]; + NSURL *filePathUrl = [NSURL fileURLWithPath:filePath]; + return filePathUrl; +} + +- (NSDictionary *)toUploadParams{ + NSMutableDictionary *params = @{}.mutableCopy; + // params[@"key"] = _fileName; + params[@"key"] = [NSString stringWithFormat:@"%@.%@", [NSUUID UUID].UUIDString, [_fileName componentsSeparatedByString:@"."].lastObject] ; + params[@"x:dir"] = _dir; + params[@"x:projectId"] = _projectId; + params[@"token"] = _uptoken; + params[@"x:time"] = _time; + params[@"x:authToken"] = _authToken; + params[@"x:userId"] = [Login curLoginUser].id; + params[@"x:folderType"] = params[@"folderType"] = _isQuick? @1: @0; + return params; +} + +@end diff --git a/Coding_iOS/Util/Manager/Coding_NetAPIManager.h b/Coding_iOS/Util/Manager/Coding_NetAPIManager.h index c0ef2c6fa..dff0b9e02 100755 --- a/Coding_iOS/Util/Manager/Coding_NetAPIManager.h +++ b/Coding_iOS/Util/Manager/Coding_NetAPIManager.h @@ -40,6 +40,7 @@ #import "ShopOrderModel.h" #import "ProjectCount.h" #import "ActivenessModel.h" +#import "ProjectRole.h" #import "MRPRPreInfo.h" #import "EACodeBranches.h" #import "EACodeReleases.h" @@ -47,7 +48,7 @@ #import -@class CSTopic, Team, EAWiki; +@class CSTopic, Team, EAWiki, TeamMember; typedef NS_ENUM(NSUInteger, VerifyType){ VerifyTypeUnknow = 0, @@ -68,6 +69,10 @@ typedef NS_ENUM(NSInteger, PurposeType) { - (void)request_UnReadCountWithBlock:(void (^)(id data, NSError *error))block; - (void)request_UnReadNotificationsWithBlock:(void (^)(id data, NSError *error))block; +#pragma mark Company +- (void)request_CompanyExist:(NSString *)company andBlock:(void (^)(id data, NSError *error))block; +- (void)request_UpdateCompanyInfoBlock:(void (^)(id data, NSError *error))block; +- (void)request_UpdateIsAdministratorBlock:(void (^)(id data, NSError *error))block; #pragma mark - Login - (void)request_Login_With2FA:(NSString *)otpCode andBlock:(void (^)(id data, NSError *error))block; @@ -91,6 +96,7 @@ typedef NS_ENUM(NSInteger, PurposeType) { - (void)request_ProjectMembers_WithObj:(Project *)project andBlock:(void (^)(id data, NSError *error))block; - (void)request_ProjectMembersHaveTasks_WithObj:(Project *)project andBlock:(void (^)(NSArray *data, NSError *error))block; - (void)request_ProjectMember_Quit:(ProjectMember *)curMember andBlock:(void (^)(id data, NSError *error))block; +- (void)request_ProjectQuit:(NSNumber *)project_id andBlock:(void (^)(id data, NSError *error))block; - (void)request_Project_Pin:(Project *)project andBlock:(void (^)(id data, NSError *error))block; - (void)request_NewProject_WithObj:(Project *)project image:(UIImage *)image andBlock:(void (^)(NSString *data, NSError *error))block; @@ -101,14 +107,22 @@ typedef NS_ENUM(NSInteger, PurposeType) { - (void)request_TransferProject:(Project *)project toUser:(User *)user passCode:(NSString *)passCode type:(VerifyType)type andBlock:(void (^)(Project *data, NSError *error))block; - (void)request_EditAliasOfMember:(ProjectMember *)curMember inProject:(Project *)curPro andBlock:(void (^)(id data, NSError *error))block; - (void)request_EditTypeOfMember:(ProjectMember *)curMember inProject:(Project *)curPro andBlock:(void (^)(id data, NSError *error))block; +- (void)request_EditTypeOfUser:(NSString *)global_key inProjects:(NSArray *)pro_id_list roles:(NSArray *)role_list andBlock:(void (^)(id data, NSError *error))block; - (void)request_ProjectServiceInfo:(Project *)curPro andBlock:(void (^)(id data, NSError *error))block; #pragma mark Team - (void)request_JoinedTeamsBlock:(void (^)(id data, NSError *error))block; - (void)request_DetailOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block; +- (void)request_InfoOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block; - (void)request_ProjectsInTeam:(Team *)team isJoined:(BOOL)isJoined andBlock:(void (^)(id data, NSError *error))block; - (void)request_MembersInTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block; +- (void)request_UpdateTeamInfo_WithObj:(Team *)curTeam andBlock:(void (^)(id data, NSError *error))block; +- (void)request_OrderListOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block; +- (void)request_BillingListOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block; +- (void)request_EditTeamTypeOfMember:(TeamMember *)curMember andBlock:(void (^)(id data, NSError *error))block; +- (void)request_ProjectRoleOfUser:(NSString *)global_key andBlock:(void (^)(id data, NSError *error))block; +- (void)request_DeleteTeamMember:(NSString *)golbal_key passCode:(NSString *)passCode type:(VerifyType)type andBlock:(void (^)(id data, NSError *error))block; #pragma mark - MRPR - (void)request_MRPRS_WithObj:(MRPRS *)curMRPRS andBlock:(void (^)(MRPRS *data, NSError *error))block; @@ -128,14 +142,24 @@ typedef NS_ENUM(NSInteger, PurposeType) { - (void)request_DeleteLineNoteWithPath:(NSString *)path andBlock:(void (^)(id data, NSError *error))block; #pragma mark - File + - (void)request_Folders:(ProjectFolders *)folders inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block; -- (void)request_FilesInFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; -- (void)request_DeleteFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; -- (void)request_RenameFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_FilesInFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_DeleteFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_RenameFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_MoveFiles:(NSArray *)fileIdList toFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_MoveFolder:(NSNumber *)folderId toFolder:(ProjectFolder *)folder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_CreatFolder:(NSString *)fileName inFolder:(ProjectFolder *)parentFolder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block; + +- (void)request_FoldersInFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block; +- (void)request_FilesInFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block; +- (void)request_DeleteFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block; +- (void)request_RenameFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block; +- (void)request_MoveFiles:(NSArray *)fileIdList toFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block; +- (void)request_MoveFolder:(NSNumber *)folderId toFolder:(ProjectFile *)folder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block; +- (void)request_CreatFolder:(NSString *)fileName inFolder:(ProjectFile *)parentFolder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block; + - (void)request_DeleteFiles:(NSArray *)fileIdList inProject:(NSNumber *)project_id andBlock:(void (^)(id data, NSError *error))block; -- (void)request_MoveFiles:(NSArray *)fileIdList toFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block; -- (void)request_MoveFolder:(NSNumber *)folderId toFolder:(ProjectFolder *)folder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block; -- (void)request_CreatFolder:(NSString *)fileName inFolder:(ProjectFolder *)parentFolder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block; - (void)request_FileDetail:(ProjectFile *)file andBlock:(void (^)(id data, NSError *error))block; - (void)request_FileContent:(ProjectFile *)file andBlock:(void (^)(id data, NSError *error))block; - (void)request_EditFile:(ProjectFile *)file withContent:(NSString *)contentStr andBlock:(void (^)(id data, NSError *error))block; @@ -177,6 +201,13 @@ typedef NS_ENUM(NSInteger, PurposeType) { - (void)request_WikiHistoryWithWiki:(EAWiki *)wiki pro:(Project *)pro andBlock:(void (^)(id data, NSError *error))block; - (void)request_RevertWiki:(NSNumber *)wikiIid toVersion:(NSNumber *)version pro:(Project *)pro andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_WikiListWithProName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_WikiDetailWithProName:(NSString *)proName iid:(NSNumber *)iid version:(NSNumber *)version andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_DeleteWikiWithProName:(NSString *)proName iid:(NSNumber *)iid andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_ModifyWiki:(EAWiki *)wiki proName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_WikiHistoryWithWiki:(EAWiki *)wiki proName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_RevertWiki:(NSNumber *)wikiIid toVersion:(NSNumber *)version proName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block; + #pragma mark - Task - (void)request_AddTask:(Task *)task andBlock:(void (^)(id data, NSError *error))block; - (void)request_DeleteTask:(Task *)task andBlock:(void (^)(id data, NSError *error))block; @@ -197,7 +228,7 @@ typedef NS_ENUM(NSInteger, PurposeType) { - (void)request_project_tasks_countWithProjectId:(NSString *)projectId andBlock:(void (^)(id data, NSError *error))block; //项目内 - (void)request_project_task_countWithProjectId:(NSString *)projectId andBlock:(void (^)(id data, NSError *error))block; -- (void)request_project_user_tasks_countsWithProjectId:(NSString *)projectId memberId:(NSString *)memberId andBlock:(void (^)(id data, NSError *error))block; +//- (void)request_project_user_tasks_countsWithProjectId:(NSString *)projectId memberId:(NSString *)memberId andBlock:(void (^)(id data, NSError *error))block; - (void)request_tasks_searchWithUserId:(NSString *)userId role:(TaskRoleType )role project_id:(NSString *)project_id andBlock:(void (^)(id data, NSError *error))block; - (void)request_projects_tasks_labelsWithRole:(TaskRoleType)role projectId:(NSString *)projectId projectName:(NSString *)projectName memberId:(NSString *)memberId owner_user_name:(NSString *)owner_user_name andBlock:(void (^)(id data, NSError *error))block; @@ -295,6 +326,12 @@ typedef NS_ENUM(NSInteger, PurposeType) { successBlock:(void (^)(id responseObj))success failureBlock:(void (^)(NSError *error))failure progerssBlock:(void (^)(CGFloat progressValue))progress; + +- (void)request_UpdateTeamIconImage:(UIImage *)image + successBlock:(void (^)(id responseObj))success + failureBlock:(void (^)(NSError *error))failure + progerssBlock:(void (^)(CGFloat progressValue))progress; + - (void)loadImageWithPath:(NSString *)imageUrlStr completeBlock:(void (^)(UIImage *image, NSError *error))block; #pragma mark - Other diff --git a/Coding_iOS/Util/Manager/Coding_NetAPIManager.m b/Coding_iOS/Util/Manager/Coding_NetAPIManager.m index 7cf433502..495362741 100644 --- a/Coding_iOS/Util/Manager/Coding_NetAPIManager.m +++ b/Coding_iOS/Util/Manager/Coding_NetAPIManager.m @@ -21,6 +21,8 @@ #import "ProjectServiceInfo.h" #import "CodingVipTipManager.h" #import "EAWiki.h" +#import "TeamPurchaseOrder.h" +#import "TeamPurchaseBilling.h" @implementation Coding_NetAPIManager + (instancetype)sharedManager { @@ -74,6 +76,33 @@ - (void)request_UnReadNotificationsWithBlock:(void (^)(id data, NSError *error)) } }]; } + +#pragma mark Company +- (void)request_CompanyExist:(NSString *)company andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/enterprise/info/%@", company]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get autoShowError:NO andBlock:^(id data, NSError *error) { + block(data, error); + }]; +} + +- (void)request_UpdateCompanyInfoBlock:(void (^)(id data, NSError *error))block{ + NSString *companyKey = [NSObject baseCompany]; + [[Coding_NetAPIManager sharedManager] request_DetailOfTeam:[Team teamWithGK:companyKey] andBlock:^(id data, NSError *error) { + block(data, error); + }]; +} + +- (void)request_UpdateIsAdministratorBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/team/%@/is_admin", [NSObject baseCompany]]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { + if (data) { + data = data[@"data"]; + [Login updateLoginIsAdministrator:data]; + } + block(data, error); + }]; +} + #pragma mark Login - (void)request_Login_With2FA:(NSString *)otpCode andBlock:(void (^)(id data, NSError *error))block{ if (otpCode.length <= 0) { @@ -157,7 +186,7 @@ - (void)request_Register_V2_WithParams:(NSDictionary *)params andBlock:(void (^) } - (void)request_CaptchaNeededWithPath:(NSString *)path andBlock:(void (^)(id data, NSError *error))block{ - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get autoShowError:NO andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_Get label:@"是否需要验证码"]; @@ -389,13 +418,28 @@ - (void)request_Project_Pin:(Project *)project andBlock:(void (^)(id data, NSErr }]; } +- (void)request_ProjectQuit:(NSNumber *)project_id andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/project/%@/quit", project_id]; + [NSObject showStatusBarQueryStr:@"正在退出项目"]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Post andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"退出项目"]; + + [NSObject showStatusBarSuccessStr:@"退出项目成功"]; + block(data, nil); + }else{ + [NSObject showStatusBarError:error]; + block(nil, error); + } + }]; +} + -(void)request_NewProject_WithObj:(Project *)project image:(UIImage *)image andBlock:(void (^)(NSString *, NSError *))block{ [NSObject showStatusBarQueryStr:@"正在创建项目"]; NSDictionary *fileDic; if (image) { fileDic = @{@"image":image,@"name":@"icon",@"fileName":@"icon.jpg"}; } - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[project toProjectPath] file:fileDic withParams:[project toCreateParams] withMethodType:Post andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"创建项目"]; @@ -448,22 +492,19 @@ - (void)request_DeleteProject_WithObj:(Project *)project passCode:(NSString *)pa if (!project.name || !passCode) { return; } - NSDictionary *params; + NSMutableDictionary *params; if (type == VerifyTypePassword) { - params = @{ - @"name": project.name, - @"two_factor_code": [passCode sha1Str] - }; + params = @{@"two_factor_code": [passCode sha1Str]}.mutableCopy; }else if (type == VerifyTypeTotp){ - params = @{ - @"name": project.name, - @"two_factor_code": passCode - }; + params = @{@"two_factor_code": passCode}.mutableCopy; }else{ return; } + if (!kTarget_Enterprise) { + params[@"name"] = project.name; + } [NSObject showStatusBarQueryStr:@"正在删除项目"]; - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[project toDeletePath] withParams:params withMethodType:Delete andBlock:^(id data, NSError *error) { + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[project toDeletePath] withParams:params withMethodType:kTarget_Enterprise? Post: Delete andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"删除项目"]; @@ -548,15 +589,6 @@ - (void)request_ProjectMembers_WithObj:(Project *)project andBlock:(void (^)(id resultData = [resultData objectForKey:@"list"]; NSMutableArray *resultA = [NSObject arrayFromJSON:resultData ofObjects:@"ProjectMember"]; - [resultA sortUsingComparator:^NSComparisonResult(ProjectMember *obj1, ProjectMember *obj2) { - if ([obj1.user_id isEqualToNumber:[Login curLoginUser].id]) { - return NSOrderedAscending; - }else if ([obj2.user_id isEqualToNumber:[Login curLoginUser].id]){ - return NSOrderedDescending; - }else{ - return obj1.type.intValue < obj2.type.intValue; - } - }]; block(resultA, nil); }else{ block(nil, error); @@ -640,6 +672,25 @@ - (void)request_EditTypeOfMember:(ProjectMember *)curMember inProject:(Project * }]; } +- (void)request_EditTypeOfUser:(NSString *)global_key inProjects:(NSArray *)pro_id_list roles:(NSArray *)role_list andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/team/%@/member/%@/projects/role", [Login curLoginCompany].global_key, global_key]; + NSDictionary *params = @{@"projects": [pro_id_list componentsJoinedByString:@","] ?: @"", + @"roles": [role_list componentsJoinedByString:@","] ?: @""}; + [NSObject showStatusBarQueryStr:@"正在设置成员类型"]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Post andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"企业成员_设置项目成员类型"]; + + [MobClick event:kUmeng_Event_UserCenter label:@"成员管理_项目权限设置"]; + + [NSObject showStatusBarSuccessStr:@"成员类型设置成功"]; + }else{ + [NSObject showStatusBarError:error]; + } + block(data, error); + }]; +} + - (void)request_ProjectServiceInfo:(Project *)curPro andBlock:(void (^)(id data, NSError *error))block{ NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/service_info", curPro.owner_user_name, curPro.name]; [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { @@ -670,9 +721,35 @@ - (void)request_DetailOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *e if (data) { [MobClick event:kUmeng_Event_Request_Get label:@"团队_详情"]; - data = [NSObject objectOfClass:@"Team" fromJSON:data[@"data"]]; + Team *team = [NSObject objectOfClass:@"Team" fromJSON:data[@"data"]]; + if ([team.global_key.lowercaseString isEqualToString:[NSObject baseCompany].lowercaseString]) { + [Login doLoginCompany:data[@"data"]]; + } + block(team, nil); + }else{ + block(nil, error); + } + }]; +} + +- (void)request_InfoOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/enterprise/%@", team.global_key]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { + if (data[@"data"]) { + TeamInfo *info = [NSObject objectOfClass:@"TeamInfo" fromJSON:data[@"data"]]; + [[Coding_NetAPIManager sharedManager] request_DetailOfTeam:team andBlock:^(id dataT, NSError *errorT) { + if (dataT) { + [MobClick event:kUmeng_Event_Request_Get label:@"团队_详情"]; + + info.locked = team.locked; + block(info, nil); + }else{ + block(nil, errorT); + } + }]; + }else{ + block(nil, error); } - block(data, error); }]; } @@ -699,6 +776,104 @@ - (void)request_MembersInTeam:(Team *)team andBlock:(void (^)(id data, NSError * }]; } +- (void)request_UpdateTeamInfo_WithObj:(Team *)curTeam andBlock:(void (^)(id data, NSError *error))block{ + [NSObject showStatusBarQueryStr:@"正在修改企业信息"]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[curTeam toUpdateInfoPath] withParams:[curTeam toUpdateInfoParams] withMethodType:Post andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"企业信息_修改"]; + + [NSObject showStatusBarSuccessStr:@"企业信息修改成功"]; + id resultData = [data valueForKeyPath:@"data"]; + Team *team = [NSObject objectOfClass:@"Team" fromJSON:resultData]; + if (team) { + [Login doLoginCompany:resultData]; + } + block(team, nil); + }else{ + [NSObject showStatusBarError:error]; + block(nil, error); + } + }]; +} +- (void)request_OrderListOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/enterprise/%@/orders", team.global_key]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { + if (data) { + data = [NSObject arrayFromJSON:data[@"data"] ofObjects:@"TeamPurchaseOrder"]; + } + block(data, error); + }]; +} +- (void)request_BillingListOfTeam:(Team *)team andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/enterprise/%@/billings", team.global_key]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { + if (data) { + data = [NSObject arrayFromJSON:data[@"data"] ofObjects:@"TeamPurchaseBilling"]; + } + block(data, error); + }]; +} + +- (void)request_EditTeamTypeOfMember:(TeamMember *)curMember andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/team/%@/member/%@/role/%@", [Login curLoginCompany].global_key, curMember.user.global_key, curMember.editRole]; + [NSObject showStatusBarQueryStr:@"正在设置企业角色"]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Post andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"企业_设置成员角色"]; + + [MobClick event:kUmeng_Event_UserCenter label:@"企业管理_企业角色设置"]; + + [NSObject showStatusBarSuccessStr:@"企业角色设置成功"]; + }else{ + [NSObject showStatusBarError:error]; + } + block(data, error); + }]; +} + +- (void)request_ProjectRoleOfUser:(NSString *)global_key andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/team/%@/member/%@/projects/role", [Login curLoginCompany].global_key, global_key]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { + if (data) { + data = [NSObject arrayFromJSON:data[@"data"] ofObjects:@"ProjectRole"]; + } + block(data, error); + }]; +} + +- (void)request_DeleteTeamMember:(NSString *)golbal_key passCode:(NSString *)passCode type:(VerifyType)type andBlock:(void (^)(id data, NSError *error))block{ + if (!golbal_key || !passCode) { + return; + } + NSString *path = [NSString stringWithFormat:@"api/team/%@/member/%@", [Login curLoginCompany].global_key, golbal_key]; + NSDictionary *params; + if (type == VerifyTypePassword) { + params = @{ + @"two_factor_code": [passCode sha1Str] + }; + }else if (type == VerifyTypeTotp){ + params = @{ + @"two_factor_code": passCode + }; + }else{ + return; + } + [NSObject showStatusBarQueryStr:@"正在删除企业成员"]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Delete andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"删除企业成员"]; + + [MobClick event:kUmeng_Event_UserCenter label:@"成员管理_删除企业成员"]; + + [NSObject showStatusBarSuccessStr:@"删除企业成员成功"]; + block(data, nil); + }else{ + [NSObject showStatusBarError:error]; + block(nil, error); + } + }]; +} + #pragma mark MRPR - (void)request_MRPRS_WithObj:(MRPRS *)curMRPRS andBlock:(void (^)(MRPRS *data, NSError *error))block{ curMRPRS.isLoading = YES; @@ -870,6 +1045,16 @@ - (void)request_PostCommentWithPath:(NSString *)path params:(NSDictionary *)para [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"LineNote_评论_添加"]; NSString *noteable_type = [params objectForKey:@"noteable_type"]; + if ([params[@"isLineNote"] boolValue]) { + [MobClick event:kUmeng_Event_Git label:@"Git_添加_Linenote_评论"]; + }else{ + if ([noteable_type isEqualToString:@"MergeRequestBean"] || + [noteable_type isEqualToString:@"PullRequestBean"]) { + [MobClick event:kUmeng_Event_Git label:@"Git_添加_MR/PR_评论"]; + }else if ([noteable_type isEqualToString:@"Commit"]){ + [MobClick event:kUmeng_Event_Git label:@"Git_添加_Commit_评论"]; + } + } if ([noteable_type isEqualToString:@"MergeRequestBean"] || [noteable_type isEqualToString:@"PullRequestBean"] || [noteable_type isEqualToString:@"Commit"]) { @@ -961,69 +1146,157 @@ - (void)request_Folders:(ProjectFolders *)folders inProject:(Project *)project a } }]; } -- (void)request_FilesInFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toFilesPath] withParams:[folder toFilesParams] withMethodType:Get andBlock:^(id data, NSError *error) { +//- (void)request_FilesInFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toFilesPath] withParams:[folder toFilesParams] withMethodType:Get andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_Get label:@"文件列表"]; +// +// id resultData = [data valueForKeyPath:@"data"]; +// ProjectFiles *files = [NSObject objectOfClass:@"ProjectFiles" fromJSON:resultData]; +// for (ProjectFile *file in files.list) { +// file.project_id = folder.project_id; +// } +// block(files, nil); +// }else{ +// block(nil, error); +// } +// }]; +//} +//- (void)request_DeleteFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toDeletePath] withParams:nil withMethodType:Delete andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_删除"]; +// +// block(folder, nil); +// }else{ +// block(nil, error); +// } +// }]; +//} +//- (void)request_RenameFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toRenamePath] withParams:nil withMethodType:Put andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_重命名"]; +// +// block(folder, nil); +// }else{ +// block(nil, error); +// } +// }]; +//} +//- (void)request_MoveFiles:(NSArray *)fileIdList toFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toMoveToPath] withParams:@{@"fileId": fileIdList} withMethodType:Put andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件_移动"]; +// +// block(fileIdList, nil); +// }else{ +// block(nil, error); +// } +// }]; +//} +//- (void)request_MoveFolder:(NSNumber *)folderId toFolder:(ProjectFolder *)folder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/folder/%@/move-to/%@", project.owner_user_name, project.name, folderId, folder.file_id]; +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Put andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_移动"]; +// +// block(folderId, nil); +// }else{ +// block(nil, error); +// } +// }]; +//} +//- (void)request_CreatFolder:(NSString *)fileName inFolder:(ProjectFolder *)parentFolder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/project/%@/mkdir", project.id.stringValue]; +// NSDictionary *params = @{@"name" : fileName, +// @"parentId" : (parentFolder && parentFolder.file_id)? parentFolder.file_id.stringValue : @"0" }; +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Post andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_新建"]; +// +// id resultData = [data valueForKeyPath:@"data"]; +// ProjectFolder *createdFolder = [NSObject objectOfClass:@"ProjectFolder" fromJSON:resultData]; +// createdFolder.project_id = project.id; +// block(createdFolder, nil); +// }else{ +// block(nil, error); +// } +// }]; +//} + +- (void)request_FoldersInFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/folder/%@/sub-folders", folder.project_owner_name, folder.project_name, folder.file_id]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_Get label:@"文件列表"]; - + id resultData = [data valueForKeyPath:@"data"]; - ProjectFiles *files = [NSObject objectOfClass:@"ProjectFiles" fromJSON:resultData]; - for (ProjectFile *file in files.list) { - file.project_id = folder.project_id; - } - block(files, nil); + NSArray *list = [NSObject arrayFromJSON:resultData ofObjects:@"ProjectFile"]; + [list setValue:folder.project_name forKey:@"project_name"]; + [list setValue:folder.project_owner_name forKey:@"project_owner_name"]; + block(list, nil); }else{ block(nil, error); } }]; } -- (void)request_DeleteFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toDeletePath] withParams:nil withMethodType:Delete andBlock:^(id data, NSError *error) { +- (void)request_FilesInFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block{ + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toFolderFilesPath] withParams:[folder toFolderFilesParams] withMethodType:Get andBlock:^(id data, NSError *error) { if (data) { - [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_删除"]; - - block(folder, nil); + [MobClick event:kUmeng_Event_Request_Get label:@"文件列表"]; + + id resultData = [data valueForKeyPath:@"data"]; + ProjectFiles *files = [NSObject objectOfClass:@"ProjectFiles" fromJSON:resultData]; + [files.list setValue:folder.project_name forKey:@"project_name"]; + [files.list setValue:folder.project_owner_name forKey:@"project_owner_name"]; + block(files, nil); }else{ block(nil, error); } }]; } -- (void)request_RenameFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toRenamePath] withParams:nil withMethodType:Put andBlock:^(id data, NSError *error) { +- (void)request_DeleteFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/project/%@/file/delete", folder.project_id]; + NSDictionary *params = @{@"fileIds": folder.file_id}; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Delete andBlock:^(id data, NSError *error) { if (data) { - [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_重命名"]; - + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_删除"]; + block(folder, nil); }else{ block(nil, error); } }]; } -- (void)request_DeleteFiles:(NSArray *)fileIdList inProject:(NSNumber *)project_id andBlock:(void (^)(id data, NSError *error))block{ - NSString *path = [NSString stringWithFormat:@"api/project/%@/file/delete", project_id.stringValue]; - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:@{@"fileIds" : fileIdList} withMethodType:Delete andBlock:^(id data, NSError *error) { - if (data) { - [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件_删除"]; - block(fileIdList, nil); +- (void)request_RenameFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/folder/%@", folder.project_owner_name, folder.project_name, folder.file_id]; + NSDictionary *params = @{@"name": folder.next_name}; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Put andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_重命名"]; + + block(folder, nil); }else{ block(nil, error); } }]; } -- (void)request_MoveFiles:(NSArray *)fileIdList toFolder:(ProjectFolder *)folder andBlock:(void (^)(id data, NSError *error))block{ - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[folder toMoveToPath] withParams:@{@"fileId": fileIdList} withMethodType:Put andBlock:^(id data, NSError *error) { +- (void)request_MoveFiles:(NSArray *)fileIdList toFolder:(ProjectFile *)folder andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/folder/%@/move-files", folder.project_owner_name, folder.project_name, folder.file_id]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:@{@"fileId": fileIdList} withMethodType:Post andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件_移动"]; - + block(fileIdList, nil); }else{ block(nil, error); } }]; } -- (void)request_MoveFolder:(NSNumber *)folderId toFolder:(ProjectFolder *)folder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block{ - NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/folder/%@/move-to/%@", project.owner_user_name, project.name, folderId, folder.file_id]; +- (void)request_MoveFolder:(NSNumber *)folderId toFolder:(ProjectFile *)folder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/folder/%@/move-to/%@", project.owner_user_name, project.name, folderId, folder.file_id]; [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Put andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_移动"]; @@ -1034,23 +1307,38 @@ - (void)request_MoveFolder:(NSNumber *)folderId toFolder:(ProjectFolder *)folder } }]; } -- (void)request_CreatFolder:(NSString *)fileName inFolder:(ProjectFolder *)parentFolder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block{ - NSString *path = [NSString stringWithFormat:@"api/project/%@/mkdir", project.id.stringValue]; +- (void)request_CreatFolder:(NSString *)fileName inFolder:(ProjectFile *)parentFolder inProject:(Project *)project andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/folder", project.owner_user_name, project.name]; NSDictionary *params = @{@"name" : fileName, - @"parentId" : (parentFolder && parentFolder.file_id)? parentFolder.file_id.stringValue : @"0" }; + @"parentId" : (parentFolder && parentFolder.file_id)? parentFolder.file_id : @0 }; [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Post andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件夹_新建"]; - + id resultData = [data valueForKeyPath:@"data"]; - ProjectFolder *createdFolder = [NSObject objectOfClass:@"ProjectFolder" fromJSON:resultData]; - createdFolder.project_id = project.id; + ProjectFile *createdFolder = [NSObject objectOfClass:@"ProjectFile" fromJSON:resultData]; + createdFolder.project_id = project.id ?: parentFolder.project_id; + createdFolder.project_owner_name = parentFolder.project_owner_name ?: project.owner_user_name; + createdFolder.project_name = parentFolder.project_name ?: project.name; block(createdFolder, nil); }else{ block(nil, error); } }]; } + +- (void)request_DeleteFiles:(NSArray *)fileIdList inProject:(NSNumber *)project_id andBlock:(void (^)(id data, NSError *error))block{ + NSString *path = [NSString stringWithFormat:@"api/project/%@/file/delete", project_id.stringValue]; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:@{@"fileIds" : fileIdList} withMethodType:Delete andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"文件_删除"]; + + block(fileIdList, nil); + }else{ + block(nil, error); + } + }]; +} - (void)request_FileDetail:(ProjectFile *)file andBlock:(void (^)(id data, NSError *error))block{ [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:[file toDetailPath] withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { if (data) { @@ -1102,7 +1390,8 @@ - (void)request_RenameFile:(ProjectFile *)file withName:(NSString *)nameStr andB if (!nameStr) { return; } - NSString *path = [NSString stringWithFormat:@"api/project/%@/files/%@/rename", file.project_id, file.file_id]; + NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/files/%@/rename", file.project_owner_name, file.project_name, file.file_id]; +// NSString *path = [NSString stringWithFormat:@"api/project/%@/files/%@/rename", file.project_id, file.file_id]; NSDictionary *params = @{@"name" : nameStr}; [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Put andBlock:^(id data, NSError *error) { if (data) { @@ -1585,6 +1874,90 @@ - (void)request_RevertWiki:(NSNumber *)wikiIid toVersion:(NSNumber *)version pro }]; } +//- (void)request_WikiListWithProName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/wikis", [Login curLoginCompany].global_key, proName]; +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_Get label:@"Wiki_列表"]; +// +// data = [NSObject arrayFromJSON:data[@"data"] ofObjects:@"EAWiki"]; +// } +// block(data, error); +// }]; +//} +// +//- (void)request_WikiDetailWithProName:(NSString *)proName iid:(NSNumber *)iid version:(NSNumber *)version andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/wiki/%@", [Login curLoginCompany].global_key, proName, iid]; +// NSMutableDictionary *params = @{}.mutableCopy; +// params[@"version"] = version; +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Get andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_Get label:@"Wiki_详情"]; +// +// data = [NSObject objectOfClass:@"EAWiki" fromJSON:data[@"data"]]; +// } +// block(data, error); +// }]; +//} +//- (void)request_DeleteWikiWithProName:(NSString *)proName iid:(NSNumber *)iid andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/wiki/%@", [Login curLoginCompany].global_key, proName, iid]; +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Delete andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"Wiki_删除"]; +// } +// block(data, error); +// }]; +//} +// +//- (void)request_ModifyWiki:(EAWiki *)wiki proName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/wiki", [Login curLoginCompany].global_key, proName]; +// NSMutableDictionary *params = @{}.mutableCopy; +// params[@"iid"] = wiki.iid; +// params[@"parentIid"] = wiki.parentIid; +// params[@"order"] = wiki.order; +// params[@"msg"] = @"Modified By App"; +// params[@"title"] = wiki.mdTitle; +// params[@"content"] = wiki.mdContent; +// +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Post andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"Wiki_修改"]; +// +// [MobClick event:kUmeng_Event_Wiki label:@"Wiki_编辑_提交"]; +// +// data = [NSObject objectOfClass:@"EAWiki" fromJSON:data[@"data"]]; +// } +// block(data, error); +// }]; +//} +// +//- (void)request_WikiHistoryWithWiki:(EAWiki *)wiki proName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/wiki/%@/histories", [Login curLoginCompany].global_key, proName, wiki.iid]; +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_Get label:@"Wiki_历史版本"]; +// +// data = [NSObject arrayFromJSON:data[@"data"] ofObjects:@"EAWiki"]; +// } +// block(data, error); +// }]; +//} +// +//- (void)request_RevertWiki:(NSNumber *)wikiIid toVersion:(NSNumber *)version proName:(NSString *)proName andBlock:(void (^)(id data, NSError *error))block{ +// NSString *path = [NSString stringWithFormat:@"api/user/%@/project/%@/wiki/%@/history", [Login curLoginCompany].global_key, proName, wikiIid]; +// NSMutableDictionary *params = @{}.mutableCopy; +// params[@"version"] = version; +// +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Post andBlock:^(id data, NSError *error) { +// if (data) { +// [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"Wiki_恢复"]; +// +// data = [NSObject objectOfClass:@"EAWiki" fromJSON:data[@"data"]]; +// } +// block(data, error); +// }]; +//} + #pragma mark Task - (void)request_AddTask:(Task *)task andBlock:(void (^)(id data, NSError *error))block{ [NSObject showStatusBarQueryStr:@"正在添加任务"]; @@ -1865,8 +2238,8 @@ - (void)request_tasks_searchWithUserId:(NSString *)userId role:(TaskRoleType )ro [param setValue:[Login curLoginUser].id.stringValue forKey:roleArray[role]]; } - - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:@"api/tasks/search" withParams:param withMethodType:Get andBlock:^(id data, NSError *error) { + NSString *path = keyword.length > 0? @"api/tasks/search": @"api/tasks/list"; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:param withMethodType:Get andBlock:^(id data, NSError *error) { Tasks *pros = [NSObject objectOfClass:@"Tasks" fromJSON:data[@"data"]]; pros.list = [NSObject arrayFromJSON:data[@"data"][@"list"] ofObjects:@"Task"]; @@ -1920,23 +2293,23 @@ - (void)request_project_task_countWithProjectId:(NSString *)projectId andBlock:( }]; } -- (void)request_project_user_tasks_countsWithProjectId:(NSString *)projectId memberId:(NSString *)memberId andBlock:(void (^)(id data, NSError *error))block { - - NSString *urlStr; - if (memberId == nil) { - urlStr = @"api/tasks/search"; - } else { - urlStr = [NSString stringWithFormat:@"api/project/%@/user/%@/tasks/counts", projectId, memberId]; - } - - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:urlStr withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { - if (data) { - block(data, nil); - }else{ - block(nil, error); - } - }]; -} +//- (void)request_project_user_tasks_countsWithProjectId:(NSString *)projectId memberId:(NSString *)memberId andBlock:(void (^)(id data, NSError *error))block { +// +// NSString *urlStr; +// if (memberId == nil) { +// urlStr = @"api/tasks/search"; +// } else { +// urlStr = [NSString stringWithFormat:@"api/project/%@/user/%@/tasks/counts", projectId, memberId]; +// } +// +// [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:urlStr withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { +// if (data) { +// block(data, nil); +// }else{ +// block(nil, error); +// } +// }]; +//} - (void)request_tasks_searchWithUserId:(NSString *)userId role:(TaskRoleType )role project_id:(NSString *)project_id andBlock:(void (^)(id data, NSError *error))block { @@ -2356,18 +2729,23 @@ - (void)request_ProjectTopic_LabelMy_WithPath:(NSString *)path #pragma mark - Project Tag - (void)request_TagListInProject:(Project *)project type:(ProjectTagType)type andBlock:(void (^)(id data, NSError *error))block{ NSString *path = nil; - switch (type) { - case ProjectTagTypeTopic: - path = [NSString stringWithFormat:@"api/project/%@/topic/label?withCount=true", project.id.stringValue]; - break; + NSDictionary *params = @{@"withCount": @(YES)}; + if (kTarget_Enterprise) { + path = [NSString stringWithFormat:@"api/user/%@/project/%@/labels", [Login curLoginCompany].global_key, project.name]; + }else{ + switch (type) { + case ProjectTagTypeTopic: + path = [NSString stringWithFormat:@"api/project/%@/topic/label", project.id.stringValue]; + break; case ProjectTagTypeTask: - path = [NSString stringWithFormat:@"api/user/%@/project/%@/task/label?withCount=true", project.owner_user_name, project.name]; - break; - default: - return; - break; + path = [NSString stringWithFormat:@"api/user/%@/project/%@/task/label", project.owner_user_name, project.name]; + break; + default: + return; + break; + } } - [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:nil withMethodType:Get andBlock:^(id data, NSError *error) { + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Get andBlock:^(id data, NSError *error) { if (data) { [MobClick event:kUmeng_Event_Request_Get label:@"标签列表"]; @@ -2719,6 +3097,11 @@ - (void)request_FollowersOrFriends_WithObj:(Users *)curUsers andBlock:(void (^)( NSObject *resultA = nil; if ([path hasSuffix:@"stargazers"] || [path hasSuffix:@"watchers"]) { resultA = [NSArray arrayFromJSON:resultData ofObjects:@"User"]; + }else if ([path hasSuffix:@"members"]){//企业成员 + if ([resultData isKindOfClass:[NSArray class]] && [(NSArray *)resultData count] > 0) { + resultData = [resultData valueForKey:@"user"]; + } + resultA = [NSArray arrayFromJSON:resultData ofObjects:@"User"]; }else{ resultA = [NSObject objectOfClass:@"Users" fromJSON:resultData]; } @@ -2794,7 +3177,7 @@ - (void)request_UpdateUserInfo_WithObj:(User *)curUser andBlock:(void (^)(id dat - (void)request_GeneratePhoneCodeToResetPhone:(NSString *)phone phoneCountryCode:(NSString *)phoneCountryCode withCaptcha:(NSString *)captcha block:(void (^)(id data, NSError *error))block{ NSString *path = @"api/account/phone/change/code"; NSMutableDictionary *params = @{@"phone": phone, - @"phoneCountryCode": phoneCountryCode}.mutableCopy; + @"phoneCountryCode": phoneCountryCode}.mutableCopy; if (captcha.length > 0) { params[@"j_captcha"] = captcha; } @@ -3131,7 +3514,7 @@ - (void)request_ReadMeOFProject:(Project *)project andBlock:(void (^)(id data, N rCodeFile.file = realFile; block(rCodeFile, nil); }else{ - block(@"我们推荐每个项目都新建一个README文件(客户端暂时不支持创建和编辑README)", nil); + block(@"

该项目暂无 README.md ,我们推荐每个项目都新建一个 README.md 文件。(客户端暂不支持创建和编辑,请前往网站创建)

", nil); } }else{ block(nil, error); @@ -3140,7 +3523,7 @@ - (void)request_ReadMeOFProject:(Project *)project andBlock:(void (^)(id data, N }else{ [MobClick event:kUmeng_Event_Request_Get label:@"项目_README"]; - block(@"我们推荐每个项目都新建一个README文件(客户端暂时不支持创建和编辑README)", nil); + block(@"

该项目暂无 README.md ,我们推荐每个项目都新建一个 README.md 文件。(客户端暂不支持创建和编辑,请前往网站创建)

", nil); } }else{ block(@"加载失败...", errorTemp); @@ -3190,7 +3573,8 @@ - (void)uploadTweetImage:(UIImage *)image done(nil, [NSError errorWithDomain:@"DATA EMPTY" code:0 userInfo:@{NSLocalizedDescriptionKey : @"有张照片没有读取成功"}]); return; } - [[CodingNetAPIClient sharedJsonClient] uploadImage:image path:@"https://up.qbox.me/" name:@"file" successBlock:^(AFHTTPRequestOperation *operation, id responseObject) { + NSString *path = [NSObject isPrivateCloud].boolValue? @"api/message/send_image": @"https://up.qbox.me/"; + [[CodingNetAPIClient sharedJsonClient] uploadImage:image path:path name:@"file" successBlock:^(AFHTTPRequestOperation *operation, id responseObject) { NSString *reslutString = [responseObject objectForKey:@"data"]; DebugLog(@"%@", reslutString); done(reslutString, nil); @@ -3225,6 +3609,49 @@ - (void)request_UpdateUserIconImage:(UIImage *)image } progerssBlock:progress]; } +- (void)request_UpdateTeamIconImage:(UIImage *)image + successBlock:(void (^)(id responseObj))success + failureBlock:(void (^)(NSError *error))failure + progerssBlock:(void (^)(CGFloat progressValue))progress{ + if (!image) { + [NSObject showHudTipStr:@"读图失败"]; + return; + } + [NSObject showStatusBarQueryStr:@"正在上传头像"]; + CGSize maxSize = CGSizeMake(800, 800); + if (image.size.width > maxSize.width || image.size.height > maxSize.height) { + image = [image scaleToSize:maxSize usingMode:NYXResizeModeAspectFit]; + } + [[CodingNetAPIClient sharedJsonClient] uploadImage:image path:@"api/user/avatar" name:@"file" successBlock:^(AFHTTPRequestOperation *operation, id responseObject) { + id resultData = [responseObject valueForKeyPath:@"data"]; + if (resultData) { + NSString *path = [NSString stringWithFormat:@"api/team/%@/avatar", [NSObject baseCompany]]; + NSDictionary *params = @{@"url": resultData, + }; + [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Put andBlock:^(id data, NSError *error) { + if (data) { + [MobClick event:kUmeng_Event_Request_ActionOfServer label:@"企业信息_更换头像"]; + + [NSObject showStatusBarSuccessStr:@"上传头像成功"]; + Team *team = [NSObject objectOfClass:@"Team" fromJSON:data[@"data"]]; + if (team) { + [Login doLoginCompany:data[@"data"]]; + } + success(team); + }else{ + failure(error); + [NSObject showStatusBarError:error]; + } + }]; + }else{ + [NSObject showStatusBarErrorStr:@"上传失败"]; + } + } failureBlock:^(AFHTTPRequestOperation *operation, NSError *error) { + failure(error); + [NSObject showStatusBarError:error]; + } progerssBlock:progress]; +} + - (void)loadImageWithPath:(NSString *)imageUrlStr completeBlock:(void (^)(UIImage *image, NSError *error))block{ NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:imageUrlStr]]; AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; @@ -3476,7 +3903,8 @@ - (void)requestWithSearchString:(NSString *)strSearch typeStr:(NSString*)type an NSString *path = [NSString stringWithFormat:@"/api/esearch/%@?q=%@&page=%d",type,strSearch, (int)page]; if ([type isEqualToString:@"all"]) { - path=[NSString stringWithFormat:@"%@&types=projects,project_topics,tasks,tweets,files,friends,merge_requests,pull_requests",path]; +// path=[NSString stringWithFormat:@"%@&types=projects,project_topics,tasks,tweets,files,friends,merge_requests,pull_requests",path]; + path=[NSString stringWithFormat:@"%@&types=projects,tasks,tweets,files,friends,merge_requests",path]; }else if ([type isEqualToString:@"public_project"]) { path=[NSString stringWithFormat:@"/api/esearch/project?q=%@ related:false&page=%d",strSearch,(int)page]; } diff --git a/Coding_iOS/Util/Manager/FunctionIntroManager.m b/Coding_iOS/Util/Manager/FunctionIntroManager.m index a2d915864..73c8551bc 100644 --- a/Coding_iOS/Util/Manager/FunctionIntroManager.m +++ b/Coding_iOS/Util/Manager/FunctionIntroManager.m @@ -48,7 +48,7 @@ + (NSString *)p_imageNameForIndex:(NSInteger)index{ imageName = [imageName stringByAppendingString:(kDevice_Is_iPhone6Plus? @"_ip6+": kDevice_Is_iPhone6? @"_ip6": kDevice_Is_iPhone5? @"_ip5": - kDevice_Is_iPhoneX? @"_ipX": + kDevice_Is_FullScreen? @"_ipX": @"_ip4")]; return imageName; } @@ -159,9 +159,9 @@ - (EAIntroPage *)p_pageWithIndex:(NSInteger)index{ UIButton *button = [self p_useImmediatelyButton]; [imageView addSubview:button]; [button mas_makeConstraints:^(MASConstraintMaker *make) { - make.size.mas_equalTo(CGSizeMake(200, (kDevice_Is_iPhone4 || kDevice_Is_iPhone5)? 50: 55)); + make.size.mas_equalTo(CGSizeMake(200, (kDevice_Use_iPhone4_Layout || kDevice_Is_iPhone5)? 50: 55)); make.centerX.equalTo(imageView); - make.bottom.equalTo(imageView).offset(kDevice_Is_iPhone4? -40: kDevice_Is_iPhone5? -65: kDevice_Is_iPhone6? -70: kDevice_Is_iPhone6Plus? -90: -120); + make.bottom.equalTo(imageView).offset(kDevice_Use_iPhone4_Layout? -40: kDevice_Is_iPhone5? -65: kDevice_Is_iPhone6? -70: kDevice_Is_iPhone6Plus? -90: -120); }]; } } @@ -171,13 +171,13 @@ - (EAIntroPage *)p_pageWithIndex:(NSInteger)index{ #pragma mark EAIntroDelegate - (void)intro:(EAIntroView *)introView pageStartScrolling:(EAIntroPage *)page withIndex:(NSUInteger)pageIndex{ - introView.pageControl.hidden = (pageIndex >= kIntroPageNum - 2 && kDevice_Is_iPhone4); + introView.pageControl.hidden = (pageIndex >= kIntroPageNum - 2 && kDevice_Use_iPhone4_Layout); } - (void)intro:(EAIntroView *)introView pageAppeared:(EAIntroPage *)page withIndex:(NSUInteger)pageIndex{ - introView.pageControl.hidden = (pageIndex == kIntroPageNum - 1 && kDevice_Is_iPhone4); + introView.pageControl.hidden = (pageIndex == kIntroPageNum - 1 && kDevice_Use_iPhone4_Layout); } - (void)intro:(EAIntroView *)introView pageEndScrolling:(EAIntroPage *)page withIndex:(NSUInteger)pageIndex{ - introView.pageControl.hidden = (pageIndex == kIntroPageNum - 1 && kDevice_Is_iPhone4); + introView.pageControl.hidden = (pageIndex == kIntroPageNum - 1 && kDevice_Use_iPhone4_Layout); } @end diff --git a/Coding_iOS/Util/Manager/SendRewardManager.m b/Coding_iOS/Util/Manager/SendRewardManager.m index 4bad5c7ea..65b3041fa 100644 --- a/Coding_iOS/Util/Manager/SendRewardManager.m +++ b/Coding_iOS/Util/Manager/SendRewardManager.m @@ -73,7 +73,7 @@ - (instancetype)init _bgView = [UIView new]; _contentView = [UIView new]; _closeBtn = [UIButton new]; - _userImgV = [UIImageView new]; + _userImgV = [YLImageView new]; _titleL = [UILabel new]; _passwordF = [UITextField new]; _submitBtn = [UIButton buttonWithStyle:StrapSuccessStyle andTitle:@"确认打赏" andFrame:CGRectMake(0, 0, buttonHeight, buttonHeight) target:self action:@selector(submitBtnClicked)]; diff --git a/Coding_iOS/Util/OC_Category/NSDate+Common.m b/Coding_iOS/Util/OC_Category/NSDate+Common.m index 46fd8caf5..b65aada41 100755 --- a/Coding_iOS/Util/OC_Category/NSDate+Common.m +++ b/Coding_iOS/Util/OC_Category/NSDate+Common.m @@ -9,7 +9,8 @@ #import "NSDate+Common.h" @implementation NSDate (Common) - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" - (BOOL)isSameDay:(NSDate*)anotherDate{ NSCalendar* calendar = [NSCalendar currentCalendar]; NSDateComponents* components1 = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:self]; @@ -217,5 +218,5 @@ + (BOOL)isDuringMidAutumn{ } return isDuringMidAutumn; } - +#pragma clang diagnostic pop @end diff --git a/Coding_iOS/Util/OC_Category/NSDate+convenience.m b/Coding_iOS/Util/OC_Category/NSDate+convenience.m index 1453c821c..7a3a37a82 100755 --- a/Coding_iOS/Util/OC_Category/NSDate+convenience.m +++ b/Coding_iOS/Util/OC_Category/NSDate+convenience.m @@ -8,7 +8,8 @@ #import "NSDate+convenience.h" @implementation NSDate (Convenience) - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" -(int)year { NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; @@ -153,4 +154,5 @@ +(NSDate *)dateEndOfWeek { endOfWeek = [gregorian dateFromComponents: componentsStripped]; return endOfWeek; } +#pragma clang diagnostic pop @end diff --git a/Coding_iOS/Util/OC_Category/NSObject+Common.h b/Coding_iOS/Util/OC_Category/NSObject+Common.h index 889b175bb..fab292e2b 100755 --- a/Coding_iOS/Util/OC_Category/NSObject+Common.h +++ b/Coding_iOS/Util/OC_Category/NSObject+Common.h @@ -23,12 +23,25 @@ + (void)showStatusBarErrorStr:(NSString *)errorStr; + (void)showStatusBarError:(NSError *)error; + (void)showCaptchaViewParams:(NSMutableDictionary *)params; ++ (void)showCaptchaViewParams:(NSMutableDictionary *)params success:(void (^)())block; #pragma mark BaseURL + (NSString *)baseURLStr; + (BOOL)baseURLStrIsProduction; + (void)changeBaseURLStrTo:(NSString *)baseURLStr; ++ (NSString *)e_URLStr; + ++ (NSString *)baseCompanySuffixStr; ++ (void)changeBaseCompanySuffixStrTo:(NSString *)companySuffixStr; ++ (NSString *)baseCompany; ++ (void)changeBaseCompanyTo:(NSString *)company; + ++ (NSNumber *)isPrivateCloud; ++ (void)setupIsPrivateCloud:(NSNumber *)isPrivateCloud; ++ (NSString *)privateCloud; ++ (void)changePrivateCloudTo:(NSString *)privateCloud; + #pragma mark File M //获取fileName的完整地址 + (NSString* )pathInCacheDirectory:(NSString *)fileName; @@ -51,4 +64,8 @@ -(id)handleResponse:(id)responseJSON; -(id)handleResponse:(id)responseJSON autoShowError:(BOOL)autoShowError; +#pragma Other ++ (void)logCookies; ++ (void)preCookieHandle; + @end diff --git a/Coding_iOS/Util/OC_Category/NSObject+Common.m b/Coding_iOS/Util/OC_Category/NSObject+Common.m index 78234bba9..5ce8d9600 100755 --- a/Coding_iOS/Util/OC_Category/NSObject+Common.m +++ b/Coding_iOS/Util/OC_Category/NSObject+Common.m @@ -10,6 +10,11 @@ #define kHUDQueryViewTag 101 #define kBaseURLStr @"https://coding.net/" +#define kBaseCompanySuffixStr @"coding.net" +#define kBaseCompanyKey @"k_base_company" + +#define kIsPrivateCloudKey @"k_is_private_cloud" +#define kPrivateCloudKey @"k_private_cloud" #import "NSObject+Common.h" #import "JDStatusBarNotification.h" @@ -128,18 +133,34 @@ + (void)showStatusBarError:(NSError *)error{ #pragma mark BaseURL + (NSString *)baseURLStr{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - return [defaults valueForKey:kBaseURLStr] ?: kBaseURLStr; + if (kTarget_Enterprise) { + if ([self isPrivateCloud].boolValue) { + return [self privateCloud]; + }else{ + if (![self baseCompany]) { + return nil; + } + NSString *baseURLStr = [NSString stringWithFormat:@"%@://%@.%@/", ([self baseURLStrIsProduction]? @"https": @"http"), [self baseCompany], [self baseCompanySuffixStr]]; + return baseURLStr; + } + }else{ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + return [defaults valueForKey:kBaseURLStr] ?: kBaseURLStr; + } } + (BOOL)baseURLStrIsProduction{ - return [[self baseURLStr] isEqualToString:kBaseURLStr]; + if (kTarget_Enterprise) { + return [[self baseCompanySuffixStr] isEqualToString:kBaseCompanySuffixStr]; + }else{ + return [[self baseURLStr] isEqualToString:kBaseURLStr]; + } } + (void)changeBaseURLStrTo:(NSString *)baseURLStr{ if (baseURLStr.length <= 0) { baseURLStr = kBaseURLStr; - }else if ([baseURLStr hasSuffix:@"/"]){ + }else if (![baseURLStr hasSuffix:@"/"]){ baseURLStr = [baseURLStr stringByAppendingString:@"/"]; } @@ -152,6 +173,85 @@ + (void)changeBaseURLStrTo:(NSString *)baseURLStr{ [[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithColor:[self baseURLStrIsProduction]? kColorNavBG: kColorActionYellow] forBarMetrics:UIBarMetricsDefault]; } ++ (NSString *)e_URLStr{ + NSString *baseURLStr = [NSString stringWithFormat:@"%@://e.%@/", ([self baseURLStrIsProduction]? @"https": @"http"), [self baseCompanySuffixStr]]; + return [self isPrivateCloud].boolValue? [self privateCloud]: baseURLStr; +} + ++ (NSString *)baseCompanySuffixStr{ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *baseCompanySuffixStr = [defaults valueForKey:kBaseCompanySuffixStr] ?: kBaseCompanySuffixStr; + return [baseCompanySuffixStr lowercaseString]; +} ++ (void)changeBaseCompanySuffixStrTo:(NSString *)companySuffixStr{ + if (companySuffixStr.length <= 0) { + companySuffixStr = kBaseCompanySuffixStr; + } + if (![companySuffixStr isEqualToString:[self baseCompanySuffixStr]]) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:companySuffixStr forKey:kBaseCompanySuffixStr]; + [defaults synchronize]; + + [[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithColor:[self baseURLStrIsProduction]? kColorNavBG: kColorBrandBlue] forBarMetrics:UIBarMetricsDefault]; + + if ([self baseCompany]) { + [CodingNetAPIClient changeSharedJsonClient]; + } + [CodingNetAPIClient changeE_JsonClient]; + } +} + ++ (NSString *)baseCompany{ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *baseCompany = [defaults valueForKey:kBaseCompanyKey]; + return [self isPrivateCloud].boolValue? @"ce": baseCompany; +} ++ (void)changeBaseCompanyTo:(NSString *)company{ + if ([self isPrivateCloud].boolValue) { + [self changePrivateCloudTo:company]; + }else if (![company isEqualToString:[self baseCompany]]) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:company ?: @"" forKey:kBaseCompanyKey]; + [defaults synchronize]; + + [CodingNetAPIClient changeSharedJsonClient]; + } +} + ++ (NSNumber *)isPrivateCloud{ + // return @(YES); + return [[NSUserDefaults standardUserDefaults] valueForKey:kIsPrivateCloudKey]; +} ++ (void)setupIsPrivateCloud:(NSNumber *)isPrivateCloud{ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if (isPrivateCloud) { + [defaults setObject:isPrivateCloud forKey:kIsPrivateCloudKey]; + }else{ + [defaults removeObjectForKey:kIsPrivateCloudKey]; + } + [defaults synchronize]; + [CodingNetAPIClient changeSharedJsonClient]; +} ++ (NSString *)privateCloud{ + // return @"http://pd.codingprod.net/"; + return [[NSUserDefaults standardUserDefaults] valueForKey:kPrivateCloudKey]; +} ++ (void)changePrivateCloudTo:(NSString *)privateCloud{ + if (privateCloud.length > 0) { + if (![privateCloud hasPrefix:@"http"]) { + privateCloud = [NSString stringWithFormat:@"http://%@", privateCloud]; + } + if (![privateCloud hasSuffix:@"/"]) { + privateCloud = [privateCloud stringByAppendingString:@"/"]; + } + } + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:privateCloud ?: @"" forKey:kPrivateCloudKey]; + [defaults synchronize]; + + [CodingNetAPIClient changeSharedJsonClient]; +} + #pragma mark File M //获取fileName的完整地址 + (NSString* )pathInCacheDirectory:(NSString *)fileName @@ -351,8 +451,11 @@ -(id)handleResponse:(id)responseJSON autoShowError:(BOOL)autoShowError{ return error; } - + (void)showCaptchaViewParams:(NSMutableDictionary *)params{ + [self showCaptchaViewParams:params success:nil]; +} + ++ (void)showCaptchaViewParams:(NSMutableDictionary *)params success:(void (^)())block{ //Data if (!params) { params = @{}.mutableCopy; @@ -368,7 +471,7 @@ + (void)showCaptchaViewParams:(NSMutableDictionary *)params{ textF.layer.sublayerTransform = CATransform3DMakeTranslation(5, 0, 0); textF.backgroundColor = [UIColor whiteColor]; [textF doBorderWidth:0.5 color:nil cornerRadius:2.0]; - UIImageView *imageV = [UIImageView new]; + UIImageView *imageV = [YLImageView new]; imageV.backgroundColor = [UIColor lightGrayColor]; imageV.contentMode = UIViewContentModeScaleAspectFit; imageV.clipsToBounds = YES; @@ -405,7 +508,11 @@ + (void)showCaptchaViewParams:(NSMutableDictionary *)params{ [[CodingNetAPIClient sharedJsonClient] requestJsonDataWithPath:path withParams:params withMethodType:Post andBlock:^(id data, NSError *error) { if (data) { [weakAlertV dismissWithCompletion:^{ - [NSObject showHudTipStr:@"验证码正确"]; + if (block) { + block(); + }else{ + [NSObject showHudTipStr:@"验证码正确"]; + } }]; }else{ [weakImageV sd_setImageWithURL:imageURL placeholderImage:nil options:(SDWebImageRetryFailed | SDWebImageRefreshCached | SDWebImageHandleCookies)]; @@ -419,4 +526,25 @@ + (void)showCaptchaViewParams:(NSMutableDictionary *)params{ }]; } + +#pragma Other ++ (void)logCookies{ + NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; + [cookies enumerateObjectsUsingBlock:^(NSHTTPCookie * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NSLog(@"cookie: %@", obj.description); + }]; +} + ++ (void)preCookieHandle{ + NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; + NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:@{NSHTTPCookieName: @"e_dev", + NSHTTPCookieValue: @"1", + NSHTTPCookieDomain: @".coding.net", + NSHTTPCookieOriginURL: @".coding.net", + NSHTTPCookiePath: @"/"}]; + [storage setCookie:cookie]; + + // [self logCookies]; +} + @end diff --git a/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.h b/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.h index 9f228cfad..f0f55a5c0 100755 --- a/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.h +++ b/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.h @@ -11,6 +11,7 @@ #define OMDateFormat @"yyyy-MM-dd'T'HH:mm:ss.SSS" #define OMTimeZone @"UTC" +#define EADateFormat @"yyyy-MM-dd HH:mm:ss" @interface NSObject (ObjectMap) @@ -52,4 +53,4 @@ @interface SOAPObject : NSObject @property (nonatomic, retain) id Header; @property (nonatomic, retain) id Body; -@end \ No newline at end of file +@end diff --git a/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.m b/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.m index a8fd44780..9d1ba8aaa 100755 --- a/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.m +++ b/Coding_iOS/Util/OC_Category/NSObject+ObjectMap.m @@ -187,6 +187,27 @@ -(id)getNodeValue:(NSString *)node fromXML:(NSString *)xml { } #pragma mark - Dictionary to Object ++ (NSDate *)p_dateFromObj:(id)obj{ + NSDate *date; + if ([obj isKindOfClass:[NSNumber class]]) { + // 1970年的long型数字 + NSNumber *timeSince1970 = (NSNumber *)obj; + NSTimeInterval timeSince1970TimeInterval = timeSince1970.doubleValue/1000; + date = [NSDate dateWithTimeIntervalSince1970:timeSince1970TimeInterval]; + }else if ([obj isKindOfClass:[NSString class]]){ + // 日期字符串 + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + [formatter setDateFormat:OMDateFormat]; + [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:OMTimeZone]]; + date = [formatter dateFromString:(NSString *)obj]; + if (!date) { + [formatter setDateFormat:EADateFormat]; + date = [formatter dateFromString:(NSString *)obj]; + } + } + return date; +} + +(id)objectOfClass:(NSString *)object fromJSON:(NSDictionary *)dict { if (!dict || ![dict isKindOfClass:[NSDictionary class]]) { return nil; @@ -231,21 +252,7 @@ +(id)objectOfClass:(NSString *)object fromJSON:(NSDictionary *)dict { // check if NSDate or not if ([classType isEqualToString:@"T@\"NSDate\""]) { -// 1970年的long型数字 - NSObject *obj = [dict objectForKey:key]; - if ([obj isKindOfClass:[NSNumber class]]) { - NSNumber *timeSince1970 = (NSNumber *)obj; - NSTimeInterval timeSince1970TimeInterval = timeSince1970.doubleValue/1000; - NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeSince1970TimeInterval]; - [newObject setValue:date forKey:propertyName]; - }else{ -// 日期字符串 - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - [formatter setDateFormat:OMDateFormat]; - [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:OMTimeZone]]; - NSString *dateString = [[dict objectForKey:key] stringByReplacingOccurrencesOfString:@"T" withString:@" "]; - [newObject setValue:[formatter dateFromString:dateString] forKey:propertyName]; - } + [newObject setValue:[self p_dateFromObj:[dict objectForKey:key]] forKey:propertyName]; } else { if ([dict objectForKey:key] != [NSNull null]) { @@ -370,22 +377,7 @@ +(NSMutableArray *)arrayMapFromArray:(NSArray *)nestedArray forPropertyName:(NSS NSString *classType = [self typeFromProperty:property]; // check if NSDate or not if ([classType isEqualToString:@"T@\"NSDate\""]) { -// 1970年的long型数字 - NSObject *obj = [nestedArray[xx] objectForKey:newKey]; - if ([obj isKindOfClass:[NSNumber class]]) { - NSNumber *timeSince1970 = (NSNumber *)obj; - NSTimeInterval timeSince1970TimeInterval = timeSince1970.doubleValue/1000; - NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeSince1970TimeInterval]; - [nestedObj setValue:date forKey:tempNewKey]; - }else{ -// 日期字符串 - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - [formatter setDateFormat:OMDateFormat]; - [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:OMTimeZone]]; - - NSString *dateString = [[nestedArray[xx] objectForKey:newKey] stringByReplacingOccurrencesOfString:@"T" withString:@" "]; - [nestedObj setValue:[formatter dateFromString:dateString] forKey:tempNewKey]; - } + [nestedObj setValue:[self p_dateFromObj:[nestedArray[xx] objectForKey:newKey]] forKey:tempNewKey]; } else { [nestedObj setValue:[nestedArray[xx] objectForKey:newKey] forKey:tempNewKey]; diff --git a/Coding_iOS/Util/OC_Category/NSString+Common.h b/Coding_iOS/Util/OC_Category/NSString+Common.h index 775c24f1f..a67f3f0f8 100755 --- a/Coding_iOS/Util/OC_Category/NSString+Common.h +++ b/Coding_iOS/Util/OC_Category/NSString+Common.h @@ -33,6 +33,7 @@ -(BOOL)containsEmoji; - (NSString *)emotionSpecailName; +- (NSString *)emotionMonkeyName; + (NSString *)sizeDisplayWithByte:(CGFloat)sizeOfByte; diff --git a/Coding_iOS/Util/OC_Category/NSString+Common.m b/Coding_iOS/Util/OC_Category/NSString+Common.m index 4fe81e4be..af65478c5 100755 --- a/Coding_iOS/Util/OC_Category/NSString+Common.m +++ b/Coding_iOS/Util/OC_Category/NSString+Common.m @@ -19,7 +19,9 @@ + (NSString *)userAgentStr{ uname(&systemInfo); NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; NSString *userAgent = [NSString stringWithFormat:@"%@/%@ (%@; iOS %@; Scale/%0.2f)", [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleExecutableKey] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleIdentifierKey], (__bridge id)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey) ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleVersionKey], deviceString, [[UIDevice currentDevice] systemVersion], ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] ? [[UIScreen mainScreen] scale] : 1.0f)]; - return userAgent;//Coding_iOS/4.0.8.201611041630 (x86_64; iOS 10.1; Scale/2.00) + return userAgent; + //Coding_iOS/4.0.8.201611041630 (x86_64; iOS 10.1; Scale/2.00) + //Coding_Enterprise_iOS/4.0.8.201611041630 (x86_64; iOS 10.1; Scale/2.00) } - (NSString *)URLEncoding @@ -100,12 +102,7 @@ - (NSURL *)urlImageWithCodePathResize:(CGFloat)width crop:(BOOL)needCrop{ if (!imageName) { imageName = [self stringByMatching:@"/static/project_icon/([a-zA-Z0-9\\-._]+)$" capture:1]; } - if (imageName && imageName.length > 0) { - urlStr = [NSString stringWithFormat:@"http://coding-net-avatar.qiniudn.com/%@?imageMogr2/auto-orient/thumbnail/!%.0fx%.0fr", imageName, width, width]; - canCrop = YES; - }else{ - urlStr = [NSString stringWithFormat:@"%@%@", [NSObject baseURLStr], [self hasPrefix:@"/"]? [self substringFromIndex:1]: self]; - } + urlStr = [NSString stringWithFormat:@"%@%@", [NSObject baseURLStr], [self hasPrefix:@"/"]? [self substringFromIndex:1]: self]; }else{ urlStr = self; if ([urlStr rangeOfString:@"qbox.me"].location != NSNotFound) { @@ -154,7 +151,8 @@ + (NSString *)handelRef:(NSString *)ref path:(NSString *)path{ if (path.length > 0) { [result appendFormat:@"%@%@", ref.length > 0? @"/": @"", path]; } - return [result URLEncoding]; + return result; +// return [result URLEncoding]; } - (CGSize)getSizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size{ CGSize resultSize = CGSizeZero; @@ -299,6 +297,11 @@ - (NSString *)emotionSpecailName{ return [NSString emotion_specail_dict][self]; } +- (NSString *)emotionMonkeyName{ + return [self emotionSpecailName]; +} + + + (NSString *)sizeDisplayWithByte:(CGFloat)sizeOfByte{ NSString *sizeDisplayStr; if (sizeOfByte < 1024) { diff --git a/Coding_iOS/Util/OC_Category/PHAsset+Common.m b/Coding_iOS/Util/OC_Category/PHAsset+Common.m index 7e69f18c9..9d78b86be 100644 --- a/Coding_iOS/Util/OC_Category/PHAsset+Common.m +++ b/Coding_iOS/Util/OC_Category/PHAsset+Common.m @@ -7,6 +7,7 @@ // #import "PHAsset+Common.h" +#import "YLGIFImage.h" @implementation PHAsset (Common) @@ -82,7 +83,16 @@ - (void)loadImageWithProgressHandler:(PHAssetImageProgressHandler)progressHandle imageOptions.networkAccessAllowed = YES; imageOptions.progressHandler = progressHandler; PHImageManager *imageManager = [PHImageManager defaultManager]; - [imageManager requestImageForAsset:self targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeDefault options:imageOptions resultHandler:resultHandler]; + + [imageManager requestImageDataForAsset:self options:imageOptions resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) { + if (resultHandler) { + resultHandler([YLGIFImage imageWithData:imageData], info); + } + }]; +// gif 图片对应的 mediaSubtypes。有这个值,但是 API 没有这个枚举,有点迷 +// NSUInteger PHAssetMediaSubtypePhotoGif = (1UL << 5); +// if (self.mediaSubtypes & PHAssetMediaSubtypePhotoGif) { +// } } @end diff --git a/Coding_iOS/Util/OC_Category/UIActionSheet+Common.h b/Coding_iOS/Util/OC_Category/UIActionSheet+Common.h deleted file mode 100644 index eaa9cd5c2..000000000 --- a/Coding_iOS/Util/OC_Category/UIActionSheet+Common.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// UIActionSheet+Common.h -// Coding_iOS -// -// Created by Ease on 15/1/14. -// Copyright (c) 2015年 Coding. All rights reserved. -// - -#import - -@interface UIActionSheet (Common) -+ (instancetype)bk_actionSheetCustomWithTitle:(NSString *)title buttonTitles:(NSArray *)buttonTitles destructiveTitle:(NSString *)destructiveTitle cancelTitle:(NSString *)cancelTitle andDidDismissBlock:(void (^)(UIActionSheet *sheet, NSInteger index))block; - -@end diff --git a/Coding_iOS/Util/OC_Category/UIActionSheet+Common.m b/Coding_iOS/Util/OC_Category/UIActionSheet+Common.m deleted file mode 100644 index 4ffce1ea7..000000000 --- a/Coding_iOS/Util/OC_Category/UIActionSheet+Common.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// UIActionSheet+Common.m -// Coding_iOS -// -// Created by Ease on 15/1/14. -// Copyright (c) 2015年 Coding. All rights reserved. -// - -#import "UIActionSheet+Common.h" - -@implementation UIActionSheet (Common) -+ (instancetype)bk_actionSheetCustomWithTitle:(NSString *)title buttonTitles:(NSArray *)buttonTitles destructiveTitle:(NSString *)destructiveTitle cancelTitle:(NSString *)cancelTitle andDidDismissBlock:(void (^)(UIActionSheet *sheet, NSInteger index))block{ - UIActionSheet *actionSheet = [UIActionSheet bk_actionSheetWithTitle:title]; - if (buttonTitles && buttonTitles.count > 0) { - for (NSString *buttonTitle in buttonTitles) { - [actionSheet bk_addButtonWithTitle:buttonTitle handler:nil]; - } - } - if (destructiveTitle) { - [actionSheet bk_setDestructiveButtonWithTitle:destructiveTitle handler:nil]; - } - if (cancelTitle) { - [actionSheet bk_setCancelButtonWithTitle:cancelTitle handler:nil]; - } - [actionSheet bk_setDidDismissBlock:block]; - return actionSheet; -} - -@end diff --git a/Coding_iOS/Util/OC_Category/UIActionSheet+Front.h b/Coding_iOS/Util/OC_Category/UIActionSheet+Front.h deleted file mode 100644 index 483ff9378..000000000 --- a/Coding_iOS/Util/OC_Category/UIActionSheet+Front.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// UIActionSheet+Front.h -// Coding_iOS -// -// Created by Ease on 15/10/13. -// Copyright © 2015年 Coding. All rights reserved. -// - -#import - -@interface UIActionSheet (Front) - -@end - -void swizzleAllActionSheet(); diff --git a/Coding_iOS/Util/OC_Category/UIActionSheet+Front.m b/Coding_iOS/Util/OC_Category/UIActionSheet+Front.m deleted file mode 100644 index 527193319..000000000 --- a/Coding_iOS/Util/OC_Category/UIActionSheet+Front.m +++ /dev/null @@ -1,31 +0,0 @@ -// -// UIActionSheet+Front.m -// Coding_iOS -// -// Created by Ease on 15/10/13. -// Copyright © 2015年 Coding. All rights reserved. -// - -#import "UIActionSheet+Front.h" -#import - -@implementation UIActionSheet (Front) -- (void)customShowInView:(UIView *)view{ - for(UIWindow * tmpWin in [[UIApplication sharedApplication] windows]){ - [tmpWin endEditing:NO]; - } - [self customShowInView:view]; -} -+ (void)load{ - swizzleAllActionSheet(); -} -@end - -void swizzleAllActionSheet(){ - Class c = [UIActionSheet class]; - SEL origSEL = @selector(showInView:); - SEL newSEL = @selector(customShowInView:); - Method origMethod = class_getInstanceMethod(c, origSEL); - Method newMethod = class_getInstanceMethod(c, newSEL); - method_exchangeImplementations(origMethod, newMethod); -} \ No newline at end of file diff --git a/Coding_iOS/Util/OC_Category/UIAlertController+Common.h b/Coding_iOS/Util/OC_Category/UIAlertController+Common.h new file mode 100644 index 000000000..83d1d2636 --- /dev/null +++ b/Coding_iOS/Util/OC_Category/UIAlertController+Common.h @@ -0,0 +1,24 @@ +// +// UIAlertController+Common.h +// Coding_iOS +// +// Created by Easeeeeeeeee on 2018/7/10. +// Copyright © 2018年 Coding. All rights reserved. +// + +#import + +@interface UIAlertController (Common) + +#pragma mark kTipAlert ++ (void)ea_showTipStr:(NSString *)tipStr; + +#pragma mark ActionSheet ++ (instancetype)ea_actionSheetCustomWithTitle:(NSString *)title buttonTitles:(NSArray *)buttonTitles destructiveTitle:(NSString *)destructiveTitle cancelTitle:(NSString *)cancelTitle andDidDismissBlock:(void (^)(UIAlertAction *action, NSInteger index))block; +- (void)showInView:(UIView *)view; + +#pragma mark Alert ++ (instancetype)ea_alertViewWithTitle:(NSString *)title message:(NSString *)message buttonTitles:(NSArray *)buttonTitles destructiveTitle:(NSString *)destructiveTitle cancelTitle:(NSString *)cancelTitle andDidDismissBlock:(void (^)(UIAlertAction *action, NSInteger index))block; +- (void)show; + +@end diff --git a/Coding_iOS/Util/OC_Category/UIAlertController+Common.m b/Coding_iOS/Util/OC_Category/UIAlertController+Common.m new file mode 100644 index 000000000..888c6482c --- /dev/null +++ b/Coding_iOS/Util/OC_Category/UIAlertController+Common.m @@ -0,0 +1,75 @@ +// +// UIAlertController+Common.m +// Coding_iOS +// +// Created by Easeeeeeeeee on 2018/7/10. +// Copyright © 2018年 Coding. All rights reserved. +// + +#import "UIAlertController+Common.h" + +@implementation UIAlertController (Common) + ++ (void)ea_showTipStr:(NSString *)tipStr{ + if (tipStr.length <= 0) { + return; + } + UIAlertController *alertCtrl = [UIAlertController alertControllerWithTitle:@"提示" message:tipStr preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *cancelA = [UIAlertAction actionWithTitle:@"知道了" style:UIAlertActionStyleCancel handler:nil]; + [alertCtrl addAction:cancelA]; + [[BaseViewController presentingVC] presentViewController:alertCtrl animated:YES completion:nil]; +} + ++ (instancetype)ea_actionSheetCustomWithTitle:(NSString *)title buttonTitles:(NSArray *)buttonTitles destructiveTitle:(NSString *)destructiveTitle cancelTitle:(NSString *)cancelTitle andDidDismissBlock:(void (^)(UIAlertAction *action, NSInteger index))block{ + UIAlertController *alertCtrl = [UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleActionSheet]; + void (^handler)(UIAlertAction *) = ^(UIAlertAction *action){ + NSInteger index = [alertCtrl.actions indexOfObject:action]; + if (block) { + block(action, index); + } + }; + if (buttonTitles && buttonTitles.count > 0) { + for (NSString *buttonTitle in buttonTitles) { + [alertCtrl addAction:[UIAlertAction actionWithTitle:buttonTitle style:UIAlertActionStyleDefault handler:handler]]; + } + } + if (destructiveTitle) { + [alertCtrl addAction:[UIAlertAction actionWithTitle:destructiveTitle style:UIAlertActionStyleDestructive handler:handler]]; + } + if (cancelTitle) { + [alertCtrl addAction:[UIAlertAction actionWithTitle:cancelTitle style:UIAlertActionStyleCancel handler:handler]]; + } + return alertCtrl; +} + +- (void)showInView:(UIView *)view{ + [self show]; +} + ++ (instancetype)ea_alertViewWithTitle:(NSString *)title message:(NSString *)message buttonTitles:(NSArray *)buttonTitles destructiveTitle:(NSString *)destructiveTitle cancelTitle:(NSString *)cancelTitle andDidDismissBlock:(void (^)(UIAlertAction *action, NSInteger index))block{ + UIAlertController *alertCtrl = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]; + void (^handler)(UIAlertAction *) = ^(UIAlertAction *action){ + NSInteger index = [alertCtrl.actions indexOfObject:action]; + if (block) { + block(action, index); + } + }; + if (buttonTitles && buttonTitles.count > 0) { + for (NSString *buttonTitle in buttonTitles) { + [alertCtrl addAction:[UIAlertAction actionWithTitle:buttonTitle style:UIAlertActionStyleDefault handler:handler]]; + } + } + if (destructiveTitle) { + [alertCtrl addAction:[UIAlertAction actionWithTitle:destructiveTitle style:UIAlertActionStyleDestructive handler:handler]]; + } + if (cancelTitle) { + [alertCtrl addAction:[UIAlertAction actionWithTitle:cancelTitle style:UIAlertActionStyleCancel handler:handler]]; + } + return alertCtrl; +} + +- (void)show{ + [[BaseViewController presentingVC] presentViewController:self animated:YES completion:nil]; +} + +@end diff --git a/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.h b/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.h index a0a9a1206..934cd8c29 100755 --- a/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.h +++ b/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.h @@ -17,7 +17,6 @@ typedef enum { StrapInfoStyle, StrapWarningStyle, StrapDangerStyle, - StrapBlueStyle } StrapButtonStyle; @interface UIButton (Bootstrap) diff --git a/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.m b/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.m index e49dcf320..fd9874133 100755 --- a/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.m +++ b/Coding_iOS/Util/OC_Category/UIButton+Bootstrap.m @@ -104,7 +104,7 @@ + (UIButton *)buttonWithStyle:(StrapButtonStyle)style andTitle:(NSString *)title UIButton *btn = [[UIButton alloc] initWithFrame:rect]; [btn setTitle:title forState:UIControlStateNormal]; [btn addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside]; - const SEL selArray[] = {@selector(bootstrapStyle), @selector(defaultManager), @selector(primaryStyle), @selector(successStyle), @selector(infoStyle), @selector(warningStyle), @selector(dangerStyle), @selector(blueStyle)}; + const SEL selArray[] = {@selector(bootstrapStyle), @selector(defaultStyle), @selector(primaryStyle), @selector(successStyle), @selector(infoStyle), @selector(warningStyle), @selector(dangerStyle)}; if ([btn respondsToSelector:selArray[style]]) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" diff --git a/Coding_iOS/Util/OC_Category/UIImage+Common.h b/Coding_iOS/Util/OC_Category/UIImage+Common.h index 3299bb51b..b93a49985 100755 --- a/Coding_iOS/Util/OC_Category/UIImage+Common.h +++ b/Coding_iOS/Util/OC_Category/UIImage+Common.h @@ -17,12 +17,12 @@ -(UIImage*)scaledToSize:(CGSize)targetSize; -(UIImage*)scaledToSize:(CGSize)targetSize highQuality:(BOOL)highQuality; -(UIImage*)scaledToMaxSize:(CGSize )size; -+ (UIImage *)fullResolutionImageFromALAsset:(ALAsset *)asset; -+ (UIImage *)fullScreenImageALAsset:(ALAsset *)asset; +//+ (UIImage *)fullResolutionImageFromALAsset:(ALAsset *)asset; +//+ (UIImage *)fullScreenImageALAsset:(ALAsset *)asset; + (UIImage *)imageWithFileType:(NSString *)fileType; + (UIImage *)big_imageWithFileType:(NSString *)fileType; -- (NSData *)dataSmallerThan:(NSUInteger)dataLength; +- (NSData *)dataSmallerThan:(CGFloat)maxLength; - (NSData *)dataForCodingUpload; @end diff --git a/Coding_iOS/Util/OC_Category/UIImage+Common.m b/Coding_iOS/Util/OC_Category/UIImage+Common.m index 4724dbcf5..f3f1870a0 100755 --- a/Coding_iOS/Util/OC_Category/UIImage+Common.m +++ b/Coding_iOS/Util/OC_Category/UIImage+Common.m @@ -7,6 +7,7 @@ // #import "UIImage+Common.h" +#import "AnimatedGIFImageSerialization.h" @implementation UIImage (Common) +(UIImage *)imageWithColor:(UIColor *)aColor{ @@ -89,19 +90,19 @@ -(UIImage *)scaledToMaxSize:(CGSize)size{ return newImage; } -+ (UIImage *)fullResolutionImageFromALAsset:(ALAsset *)asset{ - ALAssetRepresentation *assetRep = [asset defaultRepresentation]; - CGImageRef imgRef = [assetRep fullResolutionImage]; - UIImage *img = [UIImage imageWithCGImage:imgRef scale:assetRep.scale orientation:(UIImageOrientation)assetRep.orientation]; - return img; -} - -+ (UIImage *)fullScreenImageALAsset:(ALAsset *)asset{ - ALAssetRepresentation *assetRep = [asset defaultRepresentation]; - CGImageRef imgRef = [assetRep fullScreenImage];//fullScreenImage已经调整过方向了 - UIImage *img = [UIImage imageWithCGImage:imgRef]; - return img; -} +//+ (UIImage *)fullResolutionImageFromALAsset:(ALAsset *)asset{ +// ALAssetRepresentation *assetRep = [asset defaultRepresentation]; +// CGImageRef imgRef = [assetRep fullResolutionImage]; +// UIImage *img = [UIImage imageWithCGImage:imgRef scale:assetRep.scale orientation:(UIImageOrientation)assetRep.orientation]; +// return img; +//} +// +//+ (UIImage *)fullScreenImageALAsset:(ALAsset *)asset{ +// ALAssetRepresentation *assetRep = [asset defaultRepresentation]; +// CGImageRef imgRef = [assetRep fullScreenImage];//fullScreenImage已经调整过方向了 +// UIImage *img = [UIImage imageWithCGImage:imgRef]; +// return img; +//} +(NSString *)p_iconNameWithFileType:(NSString *)fileType{ fileType = [fileType lowercaseString]; @@ -176,18 +177,82 @@ + (UIImage *)big_imageWithFileType:(NSString *)fileType{ return [UIImage imageNamed:[NSString stringWithFormat:@"%@_big", [self p_iconNameWithFileType:fileType]]]; } -- (NSData *)dataSmallerThan:(NSUInteger)dataLength{ - CGFloat compressionQuality = 1.0; - NSData *data = UIImageJPEGRepresentation(self, compressionQuality); - while (data.length > dataLength) { - CGFloat mSize = data.length / (1024 * 1000.0); - compressionQuality *= pow(0.7, log(mSize)/ log(3));//大概每压缩 0.7,mSize 会缩小为原来的三分之一 - data = UIImageJPEGRepresentation(self, compressionQuality); +- (NSData *)dataSmallerThan:(CGFloat)maxLength{ + NSAssert(maxLength > 0, @"maxLength 必须是个大于零的数"); + if (self.images.count > 0) {//gif 不压缩 + NSData *data = [AnimatedGIFImageSerialization animatedGIFDataWithImage:self error:nil]; + return data; + } + //先调整 compression(图片质量)进行压缩 + //当 compression 减小到一定程度时,再继续减小,data 的值也不会改变了。这也是之前压缩会进到死循环的原因 + //compressionFixed 之后,再调整 ratio(图片尺寸) + //percentInStep 是每步压缩的百分比 + //maxLoopCount 表示调整 compression 或者 ratio 的最大迭代次数。 + //因为有 maxLoopCount,所以这是个不能保证结果正确的方法 + static NSInteger maxLoopCount = 5; + NSInteger loopCount = 0; + CGFloat compression = 1.0; + CGFloat ratio = 1.0; + CGFloat percentInStep = 1.0; + UIImage *tempImage = self; + NSData *data = UIImageJPEGRepresentation(self, compression); + NSUInteger dataLengthBeforeCompression = data.length; + BOOL compressionFixed = NO; + DebugLog(@"\n=============================================dataSmallerThan Start"); + while (data.length > maxLength) { + percentInStep = maxLength / dataLengthBeforeCompression; + percentInStep = percentInStep < .8? MAX(sqrtf(percentInStep), .3): percentInStep; + if (!compressionFixed) { + compression *= percentInStep; + data = UIImageJPEGRepresentation(tempImage, compression); + DebugLog(@"\ncompression:\t%.6f\ + \nloopCount:\t%ld\ + \npreLength:\t%lu\ + \ncurLength:\t%lu\ + \nmaxLength:\t%.f", + compression, + (long)loopCount, + (unsigned long)dataLengthBeforeCompression, + (unsigned long)data.length, + maxLength); + if (data.length / (CGFloat)dataLengthBeforeCompression > .99 + || ++loopCount >= maxLoopCount) { + loopCount = 0; + compressionFixed = YES; + } + dataLengthBeforeCompression = data.length; + }else{ + ratio = percentInStep; + // Use NSUInteger to prevent white blank + CGSize size = CGSizeMake((NSUInteger)(tempImage.size.width * ratio), + (NSUInteger)(tempImage.size.height * ratio)); + UIGraphicsBeginImageContext(size); + [tempImage drawInRect:CGRectMake(0, 0, size.width, size.height)]; + tempImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + data = UIImageJPEGRepresentation(tempImage, compression); + DebugLog(@"\nratio:\t%.6f\ + \nloopCount:\t%ld\ + \npreLength:\t%lu\ + \ncurLength:\t%lu\ + \nmaxLength:\t%.f", + ratio, + (long)loopCount, + (unsigned long)dataLengthBeforeCompression, + (unsigned long)data.length, + maxLength); + if (dataLengthBeforeCompression == data.length + || ++loopCount >= maxLoopCount) { + break; + } + dataLengthBeforeCompression = data.length; + } } + DebugLog(@"\n=============================================dataSmallerThan End"); return data; } - (NSData *)dataForCodingUpload{ - return [self dataSmallerThan:1024 * 1000]; + return [self dataSmallerThan:1024 * 5000]; } diff --git a/Coding_iOS/Util/OC_Category/UILabel+Common.m b/Coding_iOS/Util/OC_Category/UILabel+Common.m index f96235992..75ca801a3 100755 --- a/Coding_iOS/Util/OC_Category/UILabel+Common.m +++ b/Coding_iOS/Util/OC_Category/UILabel+Common.m @@ -100,6 +100,7 @@ - (void)ea_setText:(NSString*)text lineSpacing:(CGFloat)lineSpacing{ self.text = text; return; } + self.numberOfLines = 0; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text]; [attributedString addAttribute:NSFontAttributeName value:self.font range:NSMakeRange(0, [text length])]; diff --git a/Coding_iOS/Util/OC_Category/UINavigationController+FullscreenPopGesture.h b/Coding_iOS/Util/OC_Category/UINavigationController+FullscreenPopGesture.h new file mode 100644 index 000000000..f8942c562 --- /dev/null +++ b/Coding_iOS/Util/OC_Category/UINavigationController+FullscreenPopGesture.h @@ -0,0 +1,14 @@ +// +// UINavigationController+FullscreenPopGesture.h +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/2/24. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import + +@interface UINavigationController (FullscreenPopGesture) +- (void)addFullscreenPopGesture; +- (void)removeFullscreenPopGesture; +@end diff --git a/Coding_iOS/Util/OC_Category/UINavigationController+FullscreenPopGesture.m b/Coding_iOS/Util/OC_Category/UINavigationController+FullscreenPopGesture.m new file mode 100644 index 000000000..0ccc018be --- /dev/null +++ b/Coding_iOS/Util/OC_Category/UINavigationController+FullscreenPopGesture.m @@ -0,0 +1,97 @@ +// +// UINavigationController+FullscreenPopGesture.m +// Coding_Enterprise_iOS +// +// Created by Ease on 2017/2/24. +// Copyright © 2017年 Coding. All rights reserved. +// + +#import "UINavigationController+FullscreenPopGesture.h" + + +@interface _FDFullscreenPopGestureRecognizerDelegate : NSObject + +@property (nonatomic, weak) UINavigationController *navigationController; + +@end + +@implementation _FDFullscreenPopGestureRecognizerDelegate + +- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer +{ + // Ignore when no view controller is pushed into the navigation stack. + if (self.navigationController.viewControllers.count <= 1) { + return NO; + } + + // Ignore pan gesture when the navigation controller is currently in transition. + if ([[self.navigationController valueForKey:@"_isTransitioning"] boolValue]) { + return NO; + } + + // Prevent calling the handler when the gesture begins in an opposite direction. + CGPoint translation = [gestureRecognizer translationInView:gestureRecognizer.view]; + if (translation.x <= 0) { + return NO; + } + + return YES; +} + +@end + +@implementation UINavigationController (FullscreenPopGesture) + +- (void)addFullscreenPopGesture{ + if (![self.interactivePopGestureRecognizer.view.gestureRecognizers containsObject:self.fd_fullscreenPopGestureRecognizer]) { + + // Add our own gesture recognizer to where the onboard screen edge pan gesture recognizer is attached to. + [self.interactivePopGestureRecognizer.view addGestureRecognizer:self.fd_fullscreenPopGestureRecognizer]; + + // Forward the gesture events to the private handler of the onboard gesture recognizer. + NSArray *internalTargets = [self.interactivePopGestureRecognizer valueForKey:@"targets"]; + id internalTarget = [internalTargets.firstObject valueForKey:@"target"]; + SEL internalAction = NSSelectorFromString(@"handleNavigationTransition:"); + self.fd_fullscreenPopGestureRecognizer.delegate = self.fd_popGestureRecognizerDelegate; + [self.fd_fullscreenPopGestureRecognizer addTarget:internalTarget action:internalAction]; + } +} + +- (void)removeFullscreenPopGesture{ + if ([self.interactivePopGestureRecognizer.view.gestureRecognizers containsObject:self.fd_fullscreenPopGestureRecognizer]) { + NSArray *internalTargets = [self.interactivePopGestureRecognizer valueForKey:@"targets"]; + id internalTarget = [internalTargets.firstObject valueForKey:@"target"]; + SEL internalAction = NSSelectorFromString(@"handleNavigationTransition:"); + self.fd_fullscreenPopGestureRecognizer.delegate = nil; + [self.fd_fullscreenPopGestureRecognizer removeTarget:internalTarget action:internalAction]; + + [self.interactivePopGestureRecognizer.view removeGestureRecognizer:self.fd_fullscreenPopGestureRecognizer]; + } +} + +- (_FDFullscreenPopGestureRecognizerDelegate *)fd_popGestureRecognizerDelegate +{ + _FDFullscreenPopGestureRecognizerDelegate *delegate = objc_getAssociatedObject(self, _cmd); + + if (!delegate) { + delegate = [[_FDFullscreenPopGestureRecognizerDelegate alloc] init]; + delegate.navigationController = self; + + objc_setAssociatedObject(self, _cmd, delegate, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + } + return delegate; +} + +- (UIPanGestureRecognizer *)fd_fullscreenPopGestureRecognizer +{ + UIPanGestureRecognizer *panGestureRecognizer = objc_getAssociatedObject(self, _cmd); + + if (!panGestureRecognizer) { + panGestureRecognizer = [[UIPanGestureRecognizer alloc] init]; + panGestureRecognizer.maximumNumberOfTouches = 1; + + objc_setAssociatedObject(self, _cmd, panGestureRecognizer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + } + return panGestureRecognizer; +} +@end diff --git a/Coding_iOS/Util/OC_Category/UIView+Common.m b/Coding_iOS/Util/OC_Category/UIView+Common.m index ece24e578..a9521325e 100755 --- a/Coding_iOS/Util/OC_Category/UIView+Common.m +++ b/Coding_iOS/Util/OC_Category/UIView+Common.m @@ -346,10 +346,14 @@ - (EaseLoadingView *)loadingView{ } - (void)beginLoading{ - for (UIView *aView in [self.blankPageContainer subviews]) { - if ([aView isKindOfClass:[EaseBlankPageView class]] && !aView.hidden) { - return; - } +// 这里处理有点迷啊。。为啥有空白页就不 loading 了 +// for (UIView *aView in [self.blankPageContainer subviews]) { +// if ([aView isKindOfClass:[EaseBlankPageView class]] && !aView.hidden) { +// return; +// } +// } + if (self.blankPageView) { + self.blankPageView.hidden = YES; } if (!self.loadingView) { //初始化LoadingView @@ -357,7 +361,8 @@ - (void)beginLoading{ } [self addSubview:self.loadingView]; [self.loadingView mas_makeConstraints:^(MASConstraintMaker *make) { - make.self.edges.equalTo(self); + make.height.width.centerX.centerY.equalTo(self); +// make.self.edges.equalTo(self);//self 是 scrollView 的时候,貌似会跟 contentSize 扯上关系 }]; [self.loadingView startAnimating]; } @@ -487,7 +492,7 @@ - (void)loadingAnimation{ [self removeFromSuperview]; _loopAngle = 0.0; - _monkeyAlpha = 1,0; + _monkeyAlpha = 1.0; _alphaStep = ABS(_alphaStep); CGAffineTransform loopAngleTransform = CGAffineTransformMakeRotation(_loopAngle * (M_PI / 180.0f)); _loopView.transform = loopAngleTransform; @@ -638,7 +643,7 @@ - (void)configWithType:(EaseBlankPageType)blankPageType hasData:(BOOL)hasData ha case EaseBlankPageTypeProject://项目列表(自己的) { imageName = @"blankpage_image_Project"; - titleStr = @"欢迎来到 Coding"; + titleStr = @"欢迎来到 CODING"; tipStr = @"协作从项目开始,赶快创建项目吧"; } break; @@ -736,7 +741,7 @@ - (void)configWithType:(EaseBlankPageType)blankPageType hasData:(BOOL)hasData ha case EaseBlankPageTypeProject_CREATE: case EaseBlankPageTypeProject_JOIN:{ imageName = @"blankpage_image_Project"; - titleStr = @"欢迎来到 Coding"; + titleStr = @"欢迎来到 CODING"; tipStr = @"协作从项目开始,赶快创建项目吧"; buttonTitle=@"创建项目"; } diff --git a/Coding_iOS/Util/OC_Category/UIViewController+Swizzle.m b/Coding_iOS/Util/OC_Category/UIViewController+Swizzle.m index 22352c509..9a644ad7d 100755 --- a/Coding_iOS/Util/OC_Category/UIViewController+Swizzle.m +++ b/Coding_iOS/Util/OC_Category/UIViewController+Swizzle.m @@ -40,17 +40,17 @@ - (void)customviewWillAppear:(BOOL)animated{ #pragma mark BackBtn M - (UIBarButtonItem *)backButton{ - NSDictionary*textAttributes; - if ([[UIBarButtonItem appearance] respondsToSelector:@selector(setTitleTextAttributes:forState:)]){ - textAttributes = @{ - NSFontAttributeName: [UIFont systemFontOfSize:kBackButtonFontSize], - NSForegroundColorAttributeName: kColorLightBlue, - }; - - [[UIBarButtonItem appearance] setTitleTextAttributes:textAttributes forState:UIControlStateNormal]; - - [[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:kBackButtonFontSize]} forState:UIControlStateDisabled | UIControlStateHighlighted]; - } +// NSDictionary*textAttributes; +// if ([[UIBarButtonItem appearance] respondsToSelector:@selector(setTitleTextAttributes:forState:)]){ +// textAttributes = @{ +// NSFontAttributeName: [UIFont systemFontOfSize:kBackButtonFontSize], +// NSForegroundColorAttributeName: kColorLightBlue, +// }; +// +// [[UIBarButtonItem appearance] setTitleTextAttributes:textAttributes forState:UIControlStateNormal]; +// +// [[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:kBackButtonFontSize]} forState:UIControlStateDisabled | UIControlStateHighlighted]; +// } UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init]; temporaryBarButtonItem.title = @""; temporaryBarButtonItem.target = self; diff --git a/Coding_iOS/Vendor/AMPopTip/AMPopTip.m b/Coding_iOS/Vendor/AMPopTip/AMPopTip.m index 4bc24fc47..bcde0a8cd 100755 --- a/Coding_iOS/Vendor/AMPopTip/AMPopTip.m +++ b/Coding_iOS/Vendor/AMPopTip/AMPopTip.m @@ -145,9 +145,9 @@ - (void)setup { if (self.bubbleOffset > 0 && arrowPosition.x < self.bubbleOffset) { self.bubbleOffset = arrowPosition.x - self.arrowSize.width; - } else if (self.bubbleOffset < 0 && frame.size.width < fabsf(self.bubbleOffset)) { + } else if (self.bubbleOffset < 0 && frame.size.width < fabs(self.bubbleOffset)) { self.bubbleOffset = -(arrowPosition.x - self.arrowSize.width); - } else if (self.bubbleOffset < 0 && (frame.origin.x - arrowPosition.x) < fabsf(self.bubbleOffset)) { + } else if (self.bubbleOffset < 0 && (frame.origin.x - arrowPosition.x) < fabs(self.bubbleOffset)) { self.bubbleOffset = -(self.arrowSize.width + self.edgeMargin); } @@ -155,7 +155,7 @@ - (void)setup { CGFloat leftSpace = frame.origin.x - self.containerView.frame.origin.x; CGFloat rightSpace = self.containerView.frame.size.width - leftSpace - frame.size.width; - if (self.bubbleOffset < 0 && leftSpace < fabsf(self.bubbleOffset)) { + if (self.bubbleOffset < 0 && leftSpace < fabs(self.bubbleOffset)) { self.bubbleOffset = -leftSpace + self.edgeMargin; } else if (self.bubbleOffset > 0 && rightSpace < self.bubbleOffset) { self.bubbleOffset = rightSpace - self.edgeMargin; @@ -189,7 +189,7 @@ - (void)setup { if (self.bubbleOffset > 0 && arrowPosition.y < self.bubbleOffset) { self.bubbleOffset = arrowPosition.y - self.arrowSize.width; - } else if (self.bubbleOffset < 0 && frame.size.height < fabsf(self.bubbleOffset)) { + } else if (self.bubbleOffset < 0 && frame.size.height < fabs(self.bubbleOffset)) { self.bubbleOffset = -(arrowPosition.y - self.arrowSize.height); } @@ -197,7 +197,7 @@ - (void)setup { CGFloat topSpace = frame.origin.y - self.containerView.frame.origin.y; CGFloat bottomSpace = self.containerView.frame.size.height - topSpace - frame.size.height; - if (self.bubbleOffset < 0 && topSpace < fabsf(self.bubbleOffset)) { + if (self.bubbleOffset < 0 && topSpace < fabs(self.bubbleOffset)) { self.bubbleOffset = -topSpace + self.edgeMargin; } else if (self.bubbleOffset > 0 && bottomSpace < self.bubbleOffset) { self.bubbleOffset = bottomSpace - self.edgeMargin; diff --git a/Coding_iOS/Vendor/AnimatedGIFImageSerialization/AnimatedGIFImageSerialization.h b/Coding_iOS/Vendor/AnimatedGIFImageSerialization/AnimatedGIFImageSerialization.h new file mode 100755 index 000000000..af4417b88 --- /dev/null +++ b/Coding_iOS/Vendor/AnimatedGIFImageSerialization/AnimatedGIFImageSerialization.h @@ -0,0 +1,96 @@ +// AnimatedGIFImageSerialization.h +// +// Copyright (c) 2014 Mattt Thompson (http://mattt.me/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import + +#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) + +#import + +/** + + */ +extern __attribute__((overloadable)) UIImage * UIImageWithAnimatedGIFData(NSData *data); + +/** + + */ +extern __attribute__((overloadable)) UIImage * UIImageWithAnimatedGIFData(NSData *data, CGFloat scale, NSTimeInterval duration, NSError * __autoreleasing *error); + +#pragma mark - + +/** + + */ +extern __attribute__((overloadable)) NSData * UIImageAnimatedGIFRepresentation(UIImage *image); + +/** + + */ +extern __attribute__((overloadable)) NSData * UIImageAnimatedGIFRepresentation(UIImage *image, NSTimeInterval duration, NSUInteger loopCount, NSError * __autoreleasing *error); + +#pragma mark - + +/** + + */ +@interface AnimatedGIFImageSerialization : NSObject + +/// @name Creating an Animated GIF + +/** + + */ ++ (UIImage *)imageWithData:(NSData *)data + error:(NSError * __autoreleasing *)error; + +/** + + */ ++ (UIImage *)imageWithData:(NSData *)data + scale:(CGFloat)scale + duration:(NSTimeInterval)duration + error:(NSError * __autoreleasing *)error; + +/// @name Creating Animated Gif Data + +/** + + */ ++ (NSData *)animatedGIFDataWithImage:(UIImage *)image + error:(NSError * __autoreleasing *)error; + +/** + + */ ++ (NSData *)animatedGIFDataWithImage:(UIImage *)image + duration:(NSTimeInterval)duration + loopCount:(NSUInteger)loopCount + error:(NSError * __autoreleasing *)error; + +@end + +/** + + */ +extern NSString * const AnimatedGIFImageErrorDomain; +#endif diff --git a/Coding_iOS/Vendor/AnimatedGIFImageSerialization/AnimatedGIFImageSerialization.m b/Coding_iOS/Vendor/AnimatedGIFImageSerialization/AnimatedGIFImageSerialization.m new file mode 100755 index 000000000..381edee5b --- /dev/null +++ b/Coding_iOS/Vendor/AnimatedGIFImageSerialization/AnimatedGIFImageSerialization.m @@ -0,0 +1,313 @@ +// AnimatedGIFImageSerialization.m +// +// Copyright (c) 2014 Mattt Thompson (http://mattt.me/) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import "AnimatedGIFImageSerialization.h" +#import "YLGIFImage.h" + +#import +#import + +NSString * const AnimatedGIFImageErrorDomain = @"com.compuserve.gif.image.error"; + +__attribute__((overloadable)) UIImage * UIImageWithAnimatedGIFData(NSData *data) { + return UIImageWithAnimatedGIFData(data, [[UIScreen mainScreen] scale], 0.0f, nil); +} + +__attribute__((overloadable)) UIImage * UIImageWithAnimatedGIFData(NSData *data, CGFloat scale, NSTimeInterval duration, NSError * __autoreleasing *error) { + if (!data) { + return nil; + } + + NSDictionary *userInfo = nil; + { + NSMutableDictionary *mutableOptions = [NSMutableDictionary dictionary]; + [mutableOptions setObject:@(YES) forKey:(NSString *)kCGImageSourceShouldCache]; + [mutableOptions setObject:(NSString *)kUTTypeGIF forKey:(NSString *)kCGImageSourceTypeIdentifierHint]; + + CGImageSourceRef imageSource = CGImageSourceCreateWithData((__bridge CFDataRef)data, (__bridge CFDictionaryRef)mutableOptions); + + size_t numberOfFrames = CGImageSourceGetCount(imageSource); + NSMutableArray *mutableImages = [NSMutableArray arrayWithCapacity:numberOfFrames]; + + NSTimeInterval calculatedDuration = 0.0f; + for (size_t idx = 0; idx < numberOfFrames; idx++) { + CGImageRef imageRef = CGImageSourceCreateImageAtIndex(imageSource, idx, (__bridge CFDictionaryRef)mutableOptions); + + NSDictionary *properties = (__bridge_transfer NSDictionary *)CGImageSourceCopyPropertiesAtIndex(imageSource, idx, NULL); + calculatedDuration += [[[properties objectForKey:(__bridge NSString *)kCGImagePropertyGIFDictionary] objectForKey:(__bridge NSString *)kCGImagePropertyGIFDelayTime] doubleValue]; + + [mutableImages addObject:[UIImage imageWithCGImage:imageRef scale:scale orientation:UIImageOrientationUp]]; + + CGImageRelease(imageRef); + } + + CFRelease(imageSource); + + if (numberOfFrames == 1) { + return [mutableImages firstObject]; + } else { + return [UIImage animatedImageWithImages:mutableImages duration:(duration <= 0.0f ? calculatedDuration : duration)]; + } + } + _error: { + if (error) { + *error = [[NSError alloc] initWithDomain:AnimatedGIFImageErrorDomain code:-1 userInfo:userInfo]; + } + + return nil; + } +} + +static BOOL AnimatedGifDataIsValid(NSData *data) { + if (data.length > 4) { + const unsigned char * bytes = [data bytes]; + + return bytes[0] == 0x47 && bytes[1] == 0x49 && bytes[2] == 0x46; + } + + return NO; +} + +__attribute__((overloadable)) NSData * UIImageAnimatedGIFRepresentation(UIImage *image) { + return UIImageAnimatedGIFRepresentation(image, 0.0f, 0, nil); +} + +__attribute__((overloadable)) NSData * UIImageAnimatedGIFRepresentation(UIImage *image, NSTimeInterval duration, NSUInteger loopCount, NSError * __autoreleasing *error) { + if (!image.images) { + return nil; + } + + NSDictionary *userInfo = nil; + { + size_t frameCount = image.images.count; + NSTimeInterval frameDuration = (duration <= 0.0 ? image.duration / frameCount : duration / frameCount); + NSDictionary *frameProperties = @{ + (__bridge NSString *)kCGImagePropertyGIFDictionary: @{ + (__bridge NSString *)kCGImagePropertyGIFDelayTime: @(frameDuration) + } + }; + + NSMutableData *mutableData = [NSMutableData data]; + CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)mutableData, kUTTypeGIF, frameCount, NULL); + + NSDictionary *imageProperties = @{ (__bridge NSString *)kCGImagePropertyGIFDictionary: @{ + (__bridge NSString *)kCGImagePropertyGIFLoopCount: @(loopCount) + } + }; + CGImageDestinationSetProperties(destination, (__bridge CFDictionaryRef)imageProperties); + + if ([image isKindOfClass:YLGIFImage.class]) {//easeeeeeeeee + for (size_t idx = 0; idx < image.images.count; idx++) { + UIImage *frame = [(YLGIFImage *)image getFrameWithIndex:idx]; + + if (image.images.count > 50) { + DebugLog(@"=============== %lu : %@", (unsigned long)idx, frame.class); + } + + if ([frame isKindOfClass:NSNull.class]) { + continue; + } + CGImageDestinationAddImage(destination, frame.CGImage, (__bridge CFDictionaryRef)frameProperties); + } + }else{ + for (size_t idx = 0; idx < image.images.count; idx++) { + CGImageDestinationAddImage(destination, [[image.images objectAtIndex:idx] CGImage], (__bridge CFDictionaryRef)frameProperties); + } + } + + BOOL success = CGImageDestinationFinalize(destination); + CFRelease(destination); + + if (!success) { + userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(@"Could not finalize image destination", nil) + }; + + goto _error; + } + + return [NSData dataWithData:mutableData]; + } + _error: { + if (error) { + *error = [[NSError alloc] initWithDomain:AnimatedGIFImageErrorDomain code:-1 userInfo:userInfo]; + } + + return nil; + } +} + +@implementation AnimatedGIFImageSerialization + ++ (UIImage *)imageWithData:(NSData *)data + error:(NSError * __autoreleasing *)error +{ + return [self imageWithData:data scale:1.0f duration:0.0f error:error]; +} + ++ (UIImage *)imageWithData:(NSData *)data + scale:(CGFloat)scale + duration:(NSTimeInterval)duration + error:(NSError * __autoreleasing *)error +{ + return UIImageWithAnimatedGIFData(data, scale, duration, error); +} + +#pragma mark - + ++ (NSData *)animatedGIFDataWithImage:(UIImage *)image + error:(NSError * __autoreleasing *)error +{ + return [self animatedGIFDataWithImage:image duration:0.0f loopCount:0 error:error]; +} + ++ (NSData *)animatedGIFDataWithImage:(UIImage *)image + duration:(NSTimeInterval)duration + loopCount:(NSUInteger)loopCount + error:(NSError *__autoreleasing *)error +{ + return UIImageAnimatedGIFRepresentation(image, duration, loopCount, error); +} + +@end + +#pragma mark - + +#ifndef ANIMATED_GIF_NO_UIIMAGE_INITIALIZER_SWIZZLING +#import + +static inline void animated_gif_swizzleSelector(Class class, SEL originalSelector, SEL swizzledSelector) { + Method originalMethod = class_getInstanceMethod(class, originalSelector); + Method swizzledMethod = class_getInstanceMethod(class, swizzledSelector); + if (class_addMethod(class, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))) { + class_replaceMethod(class, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); + } else { + method_exchangeImplementations(originalMethod, swizzledMethod); + } +} + +@interface UIImage (_AnimatedGIFImageSerialization) +@end + +@implementation UIImage (_AnimatedGIFImageSerialization) + ++ (void)load { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + @autoreleasepool { + animated_gif_swizzleSelector(object_getClass((id)self), @selector(imageNamed:), @selector(animated_gif_imageNamed:)); + animated_gif_swizzleSelector(object_getClass((id)self), @selector(imageWithData:), @selector(animated_gif_imageWithData:)); + animated_gif_swizzleSelector(object_getClass((id)self), @selector(imageWithData:scale:), @selector(animated_gif_imageWithData:scale:)); + animated_gif_swizzleSelector(object_getClass((id)self), @selector(imageWithContentsOfFile:), @selector(animated_gif_imageWithContentsOfFile:)); + animated_gif_swizzleSelector(self, @selector(initWithContentsOfFile:), @selector(animated_gif_initWithContentsOfFile:)); + animated_gif_swizzleSelector(self, @selector(initWithData:), @selector(animated_gif_initWithData:)); + animated_gif_swizzleSelector(self, @selector(initWithData:scale:), @selector(animated_gif_initWithData:scale:)); + } + }); +} + +#pragma mark - + ++ (UIImage *)animated_gif_imageNamed:(NSString *)name __attribute__((objc_method_family(new))) { + NSString *path = [[NSBundle mainBundle] pathForResource:[name stringByDeletingPathExtension] ofType:[name pathExtension]]; + if (!path) { + path = [[NSBundle mainBundle] pathForResource:[[name stringByDeletingPathExtension] stringByAppendingString:@"@2x"] ofType:[name pathExtension]]; + } + + if (path) { + NSData *data = [NSData dataWithContentsOfFile:path]; + if (AnimatedGifDataIsValid(data)) { + return UIImageWithAnimatedGIFData(data); + } + } + + return [self animated_gif_imageNamed:name]; +} + ++ (UIImage *)animated_gif_imageWithContentsOfFile:(NSString *)path __attribute__((objc_method_family(new))) { + if (path) { + NSData *data = [NSData dataWithContentsOfFile:path]; + if (AnimatedGifDataIsValid(data)) { + if ([[path stringByDeletingPathExtension] hasSuffix:@"@2x"]) { + return UIImageWithAnimatedGIFData(data, 2.0f, 0.0f, nil); + } else { + return UIImageWithAnimatedGIFData(data); + } + } + } + + return [self animated_gif_imageWithContentsOfFile:path]; +} + ++ (UIImage *)animated_gif_imageWithData:(NSData *)data __attribute__((objc_method_family(init))) { + if (AnimatedGifDataIsValid(data)) { + return UIImageWithAnimatedGIFData(data); + } + + return [self animated_gif_imageWithData:data]; +} + ++ (UIImage *)animated_gif_imageWithData:(NSData *)data + scale:(CGFloat)scale __attribute__((objc_method_family(init))) +{ + if (AnimatedGifDataIsValid(data)) { + return UIImageWithAnimatedGIFData(data, scale, 0.0f, nil); + } + + return [self animated_gif_imageWithData:data scale:scale]; +} + +#pragma mark - + +- (id)animated_gif_initWithContentsOfFile:(NSString *)path __attribute__((objc_method_family(init))) { + NSData *data = [NSData dataWithContentsOfFile:path]; + if (AnimatedGifDataIsValid(data)) { + if ([[path stringByDeletingPathExtension] hasSuffix:@"@2x"]) { + return UIImageWithAnimatedGIFData(data, 2.0, 0.0f, nil); + } else { + return UIImageWithAnimatedGIFData(data); + } + } + + return [self animated_gif_initWithContentsOfFile:path]; +} + +- (id)animated_gif_initWithData:(NSData *)data __attribute__((objc_method_family(init))) { + if (AnimatedGifDataIsValid(data)) { + return UIImageWithAnimatedGIFData(data); + } + + return [self animated_gif_initWithData:data]; +} + +- (id)animated_gif_initWithData:(NSData *)data + scale:(CGFloat)scale __attribute__((objc_method_family(init))) +{ + if (AnimatedGifDataIsValid(data)) { + return UIImageWithAnimatedGIFData(data, scale, 0.0f, nil); + } + + return [self animated_gif_initWithData:data scale:scale]; +} + +@end +#endif diff --git a/Coding_iOS/Vendor/JDStatusBarNotification/JDStatusBarNotification.m b/Coding_iOS/Vendor/JDStatusBarNotification/JDStatusBarNotification.m index 34fd2a951..d51f5fce3 100755 --- a/Coding_iOS/Vendor/JDStatusBarNotification/JDStatusBarNotification.m +++ b/Coding_iOS/Vendor/JDStatusBarNotification/JDStatusBarNotification.m @@ -540,9 +540,9 @@ - (UIViewController*)mainController return topController; } -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { - return [[self mainController] shouldAutorotateToInterfaceOrientation:toInterfaceOrientation]; -} +//- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { +// return [[self mainController] shouldAutorotateToInterfaceOrientation:toInterfaceOrientation]; +//} - (BOOL)shouldAutorotate { return [[self mainController] shouldAutorotate]; diff --git a/Coding_iOS/Vendor/KxMenu/KxMenu.h b/Coding_iOS/Vendor/KxMenu/KxMenu.h index 439bc787e..83a3308f8 100755 --- a/Coding_iOS/Vendor/KxMenu/KxMenu.h +++ b/Coding_iOS/Vendor/KxMenu/KxMenu.h @@ -75,4 +75,7 @@ + (UIFont *) titleFont; + (void) setTitleFont: (UIFont *) titleFont; +//yOffset 每次视图显示前调用。单次设置有效,视图消失后还原为 0 ++ (CGFloat) yOffset; ++ (void) setYOffset:(CGFloat) yOffset; @end diff --git a/Coding_iOS/Vendor/KxMenu/KxMenu.m b/Coding_iOS/Vendor/KxMenu/KxMenu.m index 5d07c072f..fdaa67ecd 100755 --- a/Coding_iOS/Vendor/KxMenu/KxMenu.m +++ b/Coding_iOS/Vendor/KxMenu/KxMenu.m @@ -39,7 +39,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE #import "KxMenu.h" #import -const CGFloat kArrowSize = 8.f; +const CGFloat kArrowSize = 5.f; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// @@ -326,8 +326,12 @@ - (void)showMenuInView:(UIView *)view [self addSubview:_contentView]; [self setupFrameInView:view fromRect:rect]; - - KxMenuOverlay *overlay = [[KxMenuOverlay alloc] initWithFrame:view.bounds]; + + CGRect overlayFrame = view.bounds; + overlayFrame.origin.y = [KxMenu yOffset]; + overlayFrame.size.height -= [KxMenu yOffset]; + KxMenuOverlay *overlay = [[KxMenuOverlay alloc] initWithFrame:overlayFrame]; + [overlay addSubview:self]; [view addSubview:overlay]; @@ -371,6 +375,7 @@ - (void)dismissMenu:(BOOL) animated if ([self.superview isKindOfClass:[KxMenuOverlay class]]) [self.superview removeFromSuperview]; [self removeFromSuperview]; + [KxMenu setYOffset:0];//yOffset 每次视图消失后,需要还原为 0 }]; } else { @@ -378,6 +383,7 @@ - (void)dismissMenu:(BOOL) animated if ([self.superview isKindOfClass:[KxMenuOverlay class]]) [self.superview removeFromSuperview]; [self removeFromSuperview]; + [KxMenu setYOffset:0];//yOffset 每次视图消失后,需要还原为 0 } } } @@ -666,13 +672,13 @@ - (void)drawBackground:(CGRect)frame UIBezierPath *arrowPath = [UIBezierPath bezierPath]; // fix the issue with gap of arrow's base if on the edge - const CGFloat kEmbedFix = 3.f; - + const CGFloat kEmbedFix = 0.f; + if (_arrowDirection == KxMenuViewArrowDirectionUp) { const CGFloat arrowXM = _arrowPosition; - const CGFloat arrowX0 = arrowXM - kArrowSize; - const CGFloat arrowX1 = arrowXM + kArrowSize; + const CGFloat arrowX0 = arrowXM - kArrowSize - 1; + const CGFloat arrowX1 = arrowXM + kArrowSize + 1; const CGFloat arrowY0 = Y0; const CGFloat arrowY1 = Y0 + kArrowSize + kEmbedFix; @@ -744,7 +750,7 @@ - (void)drawBackground:(CGRect)frame const CGRect bodyFrame = {X0, Y0, X1 - X0, Y1 - Y0}; UIBezierPath *borderPath = [UIBezierPath bezierPathWithRoundedRect:bodyFrame - cornerRadius:2]; + cornerRadius:4]; const CGFloat locations[] = {0, 1}; const CGFloat components[] = { @@ -790,6 +796,7 @@ - (void)drawBackground:(CGRect)frame static KxMenu *gMenu; static UIColor *gTintColor, *gLineColor, *gOverlayColor; static UIFont *gTitleFont; +static CGFloat gYOffset = 0.0; @implementation KxMenu { @@ -949,4 +956,13 @@ + (void) setTitleFont: (UIFont *) titleFont } } ++ (CGFloat) yOffset{ + return gYOffset; +} ++ (void) setYOffset:(CGFloat) yOffset{ + if (yOffset != gYOffset){ + gYOffset = yOffset; + } +} + @end diff --git a/Coding_iOS/Vendor/NSDate+Helper/NSDate+Helper.m b/Coding_iOS/Vendor/NSDate+Helper/NSDate+Helper.m index 2c46a3ac0..91ab097ae 100755 --- a/Coding_iOS/Vendor/NSDate+Helper/NSDate+Helper.m +++ b/Coding_iOS/Vendor/NSDate+Helper/NSDate+Helper.m @@ -43,6 +43,8 @@ static NSString *kNSDateHelperFormatSQLDateWithTime = @"yyyy-MM-dd HH:mm:ss"; @implementation NSDate (Helper) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" static NSCalendar *_calendar = nil; static NSDateFormatter *_displayFormatter = nil; @@ -329,5 +331,5 @@ + (NSString *)timestampFormatString { + (NSString *)dbFormatString { return [NSDate timestampFormatString]; } - +#pragma clang diagnostic pop @end diff --git a/Coding_iOS/Vendor/RKSwipeBetweenViewControllers/EasePageViewController.m b/Coding_iOS/Vendor/RKSwipeBetweenViewControllers/EasePageViewController.m index 4fa07395c..97723eb07 100644 --- a/Coding_iOS/Vendor/RKSwipeBetweenViewControllers/EasePageViewController.m +++ b/Coding_iOS/Vendor/RKSwipeBetweenViewControllers/EasePageViewController.m @@ -44,7 +44,7 @@ - (void)viewWillDisappear:(BOOL)animated{ #pragma mark - Orientations - (BOOL)shouldAutorotate{ - return UIInterfaceOrientationIsLandscape(self.interfaceOrientation); + return UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication.statusBarOrientation); } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { diff --git a/Coding_iOS/Vendor/RRFPSBar/RRFPSBar.m b/Coding_iOS/Vendor/RRFPSBar/RRFPSBar.m index 7a32843cf..569c34f1e 100755 --- a/Coding_iOS/Vendor/RRFPSBar/RRFPSBar.m +++ b/Coding_iOS/Vendor/RRFPSBar/RRFPSBar.m @@ -59,7 +59,12 @@ - (void)dealloc { - (id)init { - if( (self = [super initWithFrame:[[UIApplication sharedApplication] statusBarFrame]]) ){ + CGRect frame = [[UIApplication sharedApplication] statusBarFrame]; + if (frame.size.width < 1.0) { + frame = [UIScreen mainScreen].bounds; + frame.size.height = 20; + } + if( (self = [super initWithFrame:frame]) ){ _maxHistoryDTLength = (NSInteger)CGRectGetWidth(self.bounds); _historyDT = malloc(sizeof(CFTimeInterval) * _maxHistoryDTLength); @@ -102,7 +107,7 @@ - (id)init { // Chart Layer _chartLayer = [CAShapeLayer layer]; [_chartLayer setFrame: self.bounds]; - [_chartLayer setStrokeColor: [UIColor redColor].CGColor]; + [_chartLayer setStrokeColor: [UIColor yellowColor].CGColor]; [_chartLayer setContentsScale: [UIScreen mainScreen].scale]; [self.layer addSublayer:_chartLayer]; diff --git a/Coding_iOS/Vendor/SDWebImage/UIImageView+WebCache.m b/Coding_iOS/Vendor/SDWebImage/UIImageView+WebCache.m index 51663dd47..66b17531c 100755 --- a/Coding_iOS/Vendor/SDWebImage/UIImageView+WebCache.m +++ b/Coding_iOS/Vendor/SDWebImage/UIImageView+WebCache.m @@ -39,6 +39,13 @@ - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder } - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock { + if (!(options & SDWebImageHandleCookies)) { + options |= SDWebImageHandleCookies; + } + if (!(options & SDWebImageRetryFailed)) { + options |= SDWebImageRetryFailed; + } + [self sd_cancelCurrentImageLoad]; objc_setAssociatedObject(self, &imageURLKey, url, OBJC_ASSOCIATION_RETAIN_NONATOMIC); diff --git a/Coding_iOS/Vendor/SVWebViewController/SVWebViewController.m b/Coding_iOS/Vendor/SVWebViewController/SVWebViewController.m index 2243e7136..4788151bd 100644 --- a/Coding_iOS/Vendor/SVWebViewController/SVWebViewController.m +++ b/Coding_iOS/Vendor/SVWebViewController/SVWebViewController.m @@ -68,15 +68,15 @@ - (void)viewDidLoad { [self updateToolbarItems]; } -- (void)viewDidUnload { - [super viewDidUnload]; - self.webView = nil; - _backBarButtonItem = nil; - _forwardBarButtonItem = nil; - _refreshBarButtonItem = nil; - _stopBarButtonItem = nil; - _actionBarButtonItem = nil; -} +//- (void)viewDidUnload { +// [super viewDidUnload]; +// self.webView = nil; +// _backBarButtonItem = nil; +// _forwardBarButtonItem = nil; +// _refreshBarButtonItem = nil; +// _stopBarButtonItem = nil; +// _actionBarButtonItem = nil; +//} - (void)viewWillAppear:(BOOL)animated { NSAssert(self.navigationController, @"SVWebViewController needs to be contained in a UINavigationController. If you are presenting SVWebViewController modally, use SVModalWebViewController instead."); @@ -104,11 +104,19 @@ - (void)viewDidDisappear:(BOOL)animated { [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; } -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - return YES; - - return toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown; +//- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { +// if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) +// return YES; +// +// return toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown; +//} + +- (BOOL)shouldAutorotate { + return YES; +} + +- (UIInterfaceOrientationMask)supportedInterfaceOrientations { + return UIInterfaceOrientationMaskAllButUpsideDown; } #pragma mark - Getters diff --git a/Coding_iOS/Vendor/XTSegmentControl/XTSegmentControl.m b/Coding_iOS/Vendor/XTSegmentControl/XTSegmentControl.m index 757149395..8f425f311 100755 --- a/Coding_iOS/Vendor/XTSegmentControl/XTSegmentControl.m +++ b/Coding_iOS/Vendor/XTSegmentControl/XTSegmentControl.m @@ -51,7 +51,7 @@ - (id)initWithFrame:(CGRect)frame title:(NSString *)title type:(XTSegmentControl switch (_type) { case XTSegmentControlItemTypeIconUrl: { - _titleIconView = [[UIImageView alloc] initWithFrame:CGRectMake((CGRectGetWidth(self.bounds)-40)/2, (CGRectGetHeight(self.bounds)-40)/2, 40, 40)]; + _titleIconView = [[YLImageView alloc] initWithFrame:CGRectMake((CGRectGetWidth(self.bounds)-40)/2, (CGRectGetHeight(self.bounds)-40)/2, 40, 40)]; [_titleIconView doCircleFrame]; if (title) { [_titleIconView sd_setImageWithURL:[title urlImageWithCodePathResizeToView:_titleIconView] placeholderImage:kPlaceholderMonkeyRoundView(_titleIconView)]; diff --git a/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.h b/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.h index 897ea9b26..3605542fd 100644 --- a/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.h +++ b/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.h @@ -29,7 +29,7 @@ /** Number of loops the image can do before it stops */ -@property (nonatomic, readonly) NSUInteger loopCount; +@property (nonatomic, readwrite) NSUInteger loopCount;//easeeeeeeeee 由 readonly 权限改为 readwrite - (UIImage*)getFrameWithIndex:(NSUInteger)idx; diff --git a/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.m b/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.m index ff3b432e6..c2de1f6bb 100644 --- a/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.m +++ b/Coding_iOS/Vendor/YLGIFImage/YLGIFImage.m @@ -65,7 +65,7 @@ @interface YLGIFImage () @property (nonatomic, readwrite) NSMutableArray *images; @property (nonatomic, readwrite) NSTimeInterval *frameDurations; @property (nonatomic, readwrite) NSTimeInterval totalDuration; -@property (nonatomic, readwrite) NSUInteger loopCount; +//@property (nonatomic, readwrite) NSUInteger loopCount; @property (nonatomic, readwrite) CGImageSourceRef incrementalSource; @end @@ -291,4 +291,4 @@ - (void)dealloc { } } -@end \ No newline at end of file +@end diff --git a/Coding_iOS/Views/CCell/MessageMediaItemCCell.m b/Coding_iOS/Views/CCell/MessageMediaItemCCell.m index 8cb041ff3..ba8dda11b 100755 --- a/Coding_iOS/Views/CCell/MessageMediaItemCCell.m +++ b/Coding_iOS/Views/CCell/MessageMediaItemCCell.m @@ -72,7 +72,7 @@ - (void)setCurObj:(NSObject *)curObj{ } +(CGSize)ccellSizeWithObj:(NSObject *)obj{ - CGSize itemSize; + CGSize itemSize = CGSizeZero; if ([obj isKindOfClass:[UIImage class]]) { itemSize = [[ImageSizeManager shareManager] sizeWithImage:(UIImage *)obj originalWidth:kMessageCell_ContentWidth maxHeight:kScreen_Height/2]; }else if ([obj isKindOfClass:[VoiceMedia class]]) { diff --git a/Coding_iOS/Views/CCell/ShopGoodsCCell.m b/Coding_iOS/Views/CCell/ShopGoodsCCell.m index 175247268..301c1602b 100644 --- a/Coding_iOS/Views/CCell/ShopGoodsCCell.m +++ b/Coding_iOS/Views/CCell/ShopGoodsCCell.m @@ -29,7 +29,7 @@ - (void)setUpContentView{ UIView *superView = self.contentView; - _coverView = [[UIImageView alloc] initWithFrame:CGRectZero]; + _coverView = [[YLImageView alloc] initWithFrame:CGRectZero]; _coverView.backgroundColor = [UIColor colorWithHexString:@"0xe5e5e5"]; _coverView.contentMode = UIViewContentModeScaleAspectFill; _coverView.layer.masksToBounds =YES; diff --git a/Coding_iOS/Views/CCell/TweetLikeUserCCell.m b/Coding_iOS/Views/CCell/TweetLikeUserCCell.m index 5134c9bb2..0c6b667c6 100755 --- a/Coding_iOS/Views/CCell/TweetLikeUserCCell.m +++ b/Coding_iOS/Views/CCell/TweetLikeUserCCell.m @@ -19,7 +19,7 @@ @interface TweetLikeUserCCell () @implementation TweetLikeUserCCell - (void)configWithUser:(User *)user rewarded:(BOOL)rewarded{ if (!self.imgView) { - self.imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kTweetCell_LikeUserCCell_Height, kTweetCell_LikeUserCCell_Height)]; + self.imgView = [[YLImageView alloc] initWithFrame:CGRectMake(0, 0, kTweetCell_LikeUserCCell_Height, kTweetCell_LikeUserCCell_Height)]; self.imgView.layer.masksToBounds = YES; self.imgView.layer.cornerRadius = kTweetCell_LikeUserCCell_Height/2; self.imgView.layer.borderColor = [UIColor colorWithHexString:@"0xFFAE03"].CGColor; diff --git a/Coding_iOS/Views/CCell/TweetMediaItemCCell.m b/Coding_iOS/Views/CCell/TweetMediaItemCCell.m index e0bd87161..ee1ed35df 100755 --- a/Coding_iOS/Views/CCell/TweetMediaItemCCell.m +++ b/Coding_iOS/Views/CCell/TweetMediaItemCCell.m @@ -67,7 +67,7 @@ - (void)layoutSubviews{ [super layoutSubviews]; } +(CGSize)ccellSizeWithObj:(id)obj{ - CGSize itemSize; + CGSize itemSize = CGSizeZero; if ([obj isKindOfClass:[HtmlMediaItem class]]) { itemSize = CGSizeMake(kTweetMediaItemCCell_Width, kTweetMediaItemCCell_Width); } diff --git a/Coding_iOS/Views/CCell/TweetMediaItemSingleCCell.m b/Coding_iOS/Views/CCell/TweetMediaItemSingleCCell.m index 669b0c023..01610594d 100755 --- a/Coding_iOS/Views/CCell/TweetMediaItemSingleCCell.m +++ b/Coding_iOS/Views/CCell/TweetMediaItemSingleCCell.m @@ -82,7 +82,7 @@ - (void)setCurMediaItem:(HtmlMediaItem *)curMediaItem{ } +(CGSize)ccellSizeWithObj:(id)obj{ - CGSize itemSize; + CGSize itemSize = CGSizeZero; if ([obj isKindOfClass:[HtmlMediaItem class]]) { HtmlMediaItem *curMediaItem = (HtmlMediaItem *)obj; if (curMediaItem.type == HtmlMediaItemType_EmotionMonkey) { diff --git a/Coding_iOS/Views/Cell/CommitContentCell.m b/Coding_iOS/Views/Cell/CommitContentCell.m index 335a7ec85..29ac2ef67 100644 --- a/Coding_iOS/Views/Cell/CommitContentCell.m +++ b/Coding_iOS/Views/Cell/CommitContentCell.m @@ -24,7 +24,7 @@ - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reus self.selectionStyle = UITableViewCellSelectionStyleNone; self.backgroundColor = kColorTableBG; if (!_userIconView) { - _userIconView = [[UIImageView alloc] initWithFrame:CGRectMake(kPaddingLeftWidth, 0, 20, 20)]; + _userIconView = [[YLImageView alloc] initWithFrame:CGRectMake(kPaddingLeftWidth, 0, 20, 20)]; [_userIconView doCircleFrame]; [self.contentView addSubview:_userIconView]; } diff --git a/Coding_iOS/Views/Cell/CommitListCell.m b/Coding_iOS/Views/Cell/CommitListCell.m index 133bfc6bc..67420b225 100644 --- a/Coding_iOS/Views/Cell/CommitListCell.m +++ b/Coding_iOS/Views/Cell/CommitListCell.m @@ -24,7 +24,7 @@ - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reus self.accessoryType = UITableViewCellAccessoryDisclosureIndicator; self.backgroundColor = kColorTableBG; if (!_imgView) { - _imgView = [UIImageView new]; + _imgView = [YLImageView new]; [_imgView doBorderWidth:0.5 color:kColorDDD cornerRadius:kCommitListCell_UserWidth/2]; [self.contentView addSubview:_imgView]; [_imgView mas_makeConstraints:^(MASConstraintMaker *make) { diff --git a/Coding_iOS/Views/Cell/ConversationCell.m b/Coding_iOS/Views/Cell/ConversationCell.m index b541421d3..bc42aa306 100755 --- a/Coding_iOS/Views/Cell/ConversationCell.m +++ b/Coding_iOS/Views/Cell/ConversationCell.m @@ -22,7 +22,7 @@ - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reus if (self) { // Initialization code if (!_userIconView) { - _userIconView = [[UIImageView alloc] initWithFrame:CGRectMake(kPaddingLeftWidth, ([ConversationCell cellHeight]-48)/2, 48, 48)]; + _userIconView = [[YLImageView alloc] initWithFrame:CGRectMake(kPaddingLeftWidth, ([ConversationCell cellHeight]-48)/2, 48, 48)]; [_userIconView doCircleFrame]; [self.contentView addSubview:_userIconView]; } diff --git a/Coding_iOS/Views/Cell/EACodeReleaseListCell.m b/Coding_iOS/Views/Cell/EACodeReleaseListCell.m index 586ae368a..1bf909566 100644 --- a/Coding_iOS/Views/Cell/EACodeReleaseListCell.m +++ b/Coding_iOS/Views/Cell/EACodeReleaseListCell.m @@ -14,6 +14,7 @@ @interface EACodeReleaseListCell () @property (weak, nonatomic) IBOutlet UILabel *authorL; @property (weak, nonatomic) IBOutlet UILabel *created_atL; @property (weak, nonatomic) IBOutlet UIView *preV; +@property (weak, nonatomic) IBOutlet NSLayoutConstraint *created_atLeftC; @end @@ -36,6 +37,7 @@ - (void)setCurCodeRelease:(EACodeRelease *)curCodeRelease{ _authorL.text = _curCodeRelease.author.name; _created_atL.text = [_curCodeRelease.created_at stringTimesAgo]; _preV.hidden = !_curCodeRelease.pre.boolValue; + _created_atLeftC.constant = _preV.hidden? 15: 60+ 15; NSMutableArray *rightUtilityButtons = [NSMutableArray new]; [rightUtilityButtons sw_addUtilityButtonWithColor:[UIColor colorWithHexString:@"0xF66262"] icon:[UIImage imageNamed:@"icon_file_cell_delete"]]; diff --git a/Coding_iOS/Views/Cell/EACodeReleaseListCell.xib b/Coding_iOS/Views/Cell/EACodeReleaseListCell.xib index 046054f44..e3351f5af 100644 --- a/Coding_iOS/Views/Cell/EACodeReleaseListCell.xib +++ b/Coding_iOS/Views/Cell/EACodeReleaseListCell.xib @@ -1,11 +1,11 @@ - + - + @@ -45,7 +45,7 @@ diff --git a/Coding_iOS/Views/Cell/EACodeReleaseTopCell.m b/Coding_iOS/Views/Cell/EACodeReleaseTopCell.m index dbd8e7af6..d19170729 100644 --- a/Coding_iOS/Views/Cell/EACodeReleaseTopCell.m +++ b/Coding_iOS/Views/Cell/EACodeReleaseTopCell.m @@ -15,6 +15,7 @@ @interface EACodeReleaseTopCell () @property (weak, nonatomic) IBOutlet UILabel *authorL; @property (weak, nonatomic) IBOutlet UILabel *created_atL; @property (weak, nonatomic) IBOutlet UIView *preV; +@property (weak, nonatomic) IBOutlet NSLayoutConstraint *created_atLeftC; @end @@ -29,6 +30,7 @@ - (void)setCurR:(EACodeRelease *)curR{ _created_atL.text = [_curR.created_at stringTimesAgo]; // _preV.hidden = !_curR.pre.boolValue; _preV.hidden = YES; + _created_atLeftC.constant = _preV.hidden? 15: 60+ 15; } - (IBAction)tagButtonClicked:(id)sender { diff --git a/Coding_iOS/Views/Cell/EACodeReleaseTopCell.xib b/Coding_iOS/Views/Cell/EACodeReleaseTopCell.xib index ceda26acf..0b4fe891c 100644 --- a/Coding_iOS/Views/Cell/EACodeReleaseTopCell.xib +++ b/Coding_iOS/Views/Cell/EACodeReleaseTopCell.xib @@ -1,5 +1,5 @@ - + @@ -55,7 +55,7 @@ -