Bläddra i källkod

Merge branch 'develop' into feature/jeremy

南鑫林 5 år sedan
förälder
incheckning
2c761dc439
97 ändrade filer med 1402 tillägg och 11 borttagningar
  1. 126 11
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/优雅/color.png
  3. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/优雅/config.json
  4. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/优雅/icon.png
  5. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/光圈/config.json
  6. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/光圈/icon.png
  7. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/思念/color.png
  8. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/思念/config.json
  9. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/思念/icon.png
  10. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/朝阳/color.png
  11. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/朝阳/config.json
  12. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/朝阳/icon.png
  13. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/柔柔/color.png
  14. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/柔柔/config.json
  15. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/柔柔/icon.png
  16. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/模糊/config.json
  17. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/模糊/icon.png
  18. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/波普/config.json
  19. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/波普/icon.png
  20. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/浓烈/color.png
  21. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/浓烈/config.json
  22. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/浓烈/icon.png
  23. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海盐/color.png
  24. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海盐/config.json
  25. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海盐/icon.png
  26. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海蓝/color.png
  27. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海蓝/config.json
  28. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海蓝/icon.png
  29. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/灰白/config.json
  30. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/灰白/icon.png
  31. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/炽黄/color.png
  32. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/炽黄/config.json
  33. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/炽黄/icon.png
  34. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/焦黄/config.json
  35. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/焦黄/icon.png
  36. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/粉桃/color.png
  37. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/粉桃/config.json
  38. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/粉桃/icon.png
  39. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/素描/config.json
  40. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/素描/icon.png
  41. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/color.png
  42. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/color2.png
  43. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/config.json
  44. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/icon.png
  45. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color.png
  46. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color2.png
  47. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color3.png
  48. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color4.png
  49. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/config.json
  50. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/icon.png
  51. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/胶片/config.json
  52. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/胶片/icon.png
  53. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/蓝调/config.json
  54. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/蓝调/icon.png
  55. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/迷糊/config.json
  56. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/迷糊/icon.png
  57. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/闪耀/color.png
  58. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/闪耀/config.json
  59. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/闪耀/icon.png
  60. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/阳光/color.png
  61. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/阳光/config.json
  62. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/阳光/icon.png
  63. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/雪梨/config.json
  64. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/雪梨/icon.png
  65. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/雪梨/s3.png
  66. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/马赛克/config.json
  67. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/马赛克/icon.png
  68. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鱼眼/config.json
  69. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鱼眼/icon.png
  70. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/color.png
  71. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/color2.png
  72. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/config.json
  73. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/icon.png
  74. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/麦茶/color.png
  75. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/麦茶/config.json
  76. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/麦茶/icon.png
  77. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/黑白/config.json
  78. 0 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/黑白/icon.png
  79. 67 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/MBProgressHUD+AlivcHelper.h
  80. 84 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/MBProgressHUD+AlivcHelper.m
  81. 91 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/NSString+AlivcHelper.h
  82. 201 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/NSString+AlivcHelper.m
  83. 17 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIButton+AliyunBlock.h
  84. 22 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIButton+AliyunBlock.m
  85. 66 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIColor+AlivcHelper.h
  86. 69 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIColor+AlivcHelper.m
  87. 30 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIView+AlivcHelper.h
  88. 40 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIView+AlivcHelper.m
  89. 46 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcDefine.h
  90. 32 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcDefine.m
  91. 33 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcImage.h
  92. 25 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcImage.m
  93. 111 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcMacro.h
  94. 27 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcUIConfig.h
  95. 40 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcUIConfig.m
  96. 63 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AliyunReachability.h
  97. 212 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AliyunReachability.m

+ 126 - 11
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -487,6 +487,8 @@
 		BD2FCBEA22B267280006D974 /* RecommendNoneCommentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD2FCBE922B267280006D974 /* RecommendNoneCommentCell.swift */; };
 		BD3474F522857B85000908C5 /* CommonPayHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3474F422857B85000908C5 /* CommonPayHeader.swift */; };
 		BD3AA45822AE63EC00EF4F20 /* MessageMainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3AA45722AE63EC00EF4F20 /* MessageMainViewController.swift */; };
+		BD3AA45F22AE6F2500EF4F20 /* MessagePlanetTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3AA45E22AE6F2500EF4F20 /* MessagePlanetTableCell.swift */; };
+		BD477F6322C23D66008BE2CB /* AliyunReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = BD477F6222C23D66008BE2CB /* AliyunReachability.m */; };
 		BD4B50AC22BC7DEA0073B516 /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BD4B50AB22BC7DEA0073B516 /* FilterResource.bundle */; };
 		BD4B50AE22BC815F0073B516 /* PublishFilterCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD4B50AD22BC815F0073B516 /* PublishFilterCollectionCell.swift */; };
 		BD4B50B422BC8AD50073B516 /* AliyunPathManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BD4B50B322BC8AD50073B516 /* AliyunPathManager.m */; };
@@ -521,6 +523,14 @@
 		BDDF3B28228EBB72003A7D16 /* ProductRefundReasonModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDDF3B27228EBB72003A7D16 /* ProductRefundReasonModel.swift */; };
 		BDE3045D22851E4F001D050F /* ProductCartListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE3045C22851E4F001D050F /* ProductCartListModel.swift */; };
 		BDE3045F228554CA001D050F /* ProductCartAmountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDE3045E228554CA001D050F /* ProductCartAmountModel.swift */; };
+		BDE376D722C22A260055E2EA /* MBProgressHUD+AlivcHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376CD22C22A250055E2EA /* MBProgressHUD+AlivcHelper.m */; };
+		BDE376D822C22A260055E2EA /* NSString+AlivcHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376D022C22A250055E2EA /* NSString+AlivcHelper.m */; };
+		BDE376D922C22A260055E2EA /* UIColor+AlivcHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376D222C22A250055E2EA /* UIColor+AlivcHelper.m */; };
+		BDE376DA22C22A260055E2EA /* UIButton+AliyunBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376D422C22A260055E2EA /* UIButton+AliyunBlock.m */; };
+		BDE376DB22C22A260055E2EA /* UIView+AlivcHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376D522C22A260055E2EA /* UIView+AlivcHelper.m */; };
+		BDE376E522C22D2B0055E2EA /* AlivcImage.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376E122C22D2A0055E2EA /* AlivcImage.m */; };
+		BDE376E622C22D2B0055E2EA /* AlivcDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376E222C22D2B0055E2EA /* AlivcDefine.m */; };
+		BDE376E922C22D4E0055E2EA /* AlivcUIConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = BDE376E722C22D4E0055E2EA /* AlivcUIConfig.m */; };
 		BDEF7791228571DC00ED0AC0 /* CommonPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDEF7790228571DC00ED0AC0 /* CommonPayView.swift */; };
 		BDEF7793228575A800ED0AC0 /* CommonPayCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDEF7792228575A800ED0AC0 /* CommonPayCell.swift */; };
 		BDF45F0D228C00B8004E2682 /* DefaultContactInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF45F0C228C00B8004E2682 /* DefaultContactInfoModel.swift */; };
@@ -1065,6 +1075,9 @@
 		BD2FCBE922B267280006D974 /* RecommendNoneCommentCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecommendNoneCommentCell.swift; sourceTree = "<group>"; };
 		BD3474F422857B85000908C5 /* CommonPayHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonPayHeader.swift; sourceTree = "<group>"; };
 		BD3AA45722AE63EC00EF4F20 /* MessageMainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageMainViewController.swift; sourceTree = "<group>"; };
+		BD3AA45E22AE6F2500EF4F20 /* MessagePlanetTableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagePlanetTableCell.swift; sourceTree = "<group>"; };
+		BD477F6122C23D65008BE2CB /* AliyunReachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AliyunReachability.h; sourceTree = "<group>"; };
+		BD477F6222C23D66008BE2CB /* AliyunReachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AliyunReachability.m; sourceTree = "<group>"; };
 		BD4B50AB22BC7DEA0073B516 /* FilterResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = FilterResource.bundle; sourceTree = "<group>"; };
 		BD4B50AD22BC815F0073B516 /* PublishFilterCollectionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublishFilterCollectionCell.swift; sourceTree = "<group>"; };
 		BD4B50B222BC8AD50073B516 /* AliyunPathManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AliyunPathManager.h; sourceTree = "<group>"; };
@@ -1102,6 +1115,23 @@
 		BDDF3B27228EBB72003A7D16 /* ProductRefundReasonModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductRefundReasonModel.swift; sourceTree = "<group>"; };
 		BDE3045C22851E4F001D050F /* ProductCartListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductCartListModel.swift; sourceTree = "<group>"; };
 		BDE3045E228554CA001D050F /* ProductCartAmountModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductCartAmountModel.swift; sourceTree = "<group>"; };
+		BDE376CD22C22A250055E2EA /* MBProgressHUD+AlivcHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MBProgressHUD+AlivcHelper.m"; sourceTree = "<group>"; };
+		BDE376CE22C22A250055E2EA /* UIButton+AliyunBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+AliyunBlock.h"; sourceTree = "<group>"; };
+		BDE376CF22C22A250055E2EA /* NSString+AlivcHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+AlivcHelper.h"; sourceTree = "<group>"; };
+		BDE376D022C22A250055E2EA /* NSString+AlivcHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+AlivcHelper.m"; sourceTree = "<group>"; };
+		BDE376D122C22A250055E2EA /* UIColor+AlivcHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+AlivcHelper.h"; sourceTree = "<group>"; };
+		BDE376D222C22A250055E2EA /* UIColor+AlivcHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+AlivcHelper.m"; sourceTree = "<group>"; };
+		BDE376D322C22A260055E2EA /* UIView+AlivcHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+AlivcHelper.h"; sourceTree = "<group>"; };
+		BDE376D422C22A260055E2EA /* UIButton+AliyunBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+AliyunBlock.m"; sourceTree = "<group>"; };
+		BDE376D522C22A260055E2EA /* UIView+AlivcHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+AlivcHelper.m"; sourceTree = "<group>"; };
+		BDE376D622C22A260055E2EA /* MBProgressHUD+AlivcHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MBProgressHUD+AlivcHelper.h"; sourceTree = "<group>"; };
+		BDE376E022C22CE20055E2EA /* AlivcMacro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlivcMacro.h; sourceTree = "<group>"; };
+		BDE376E122C22D2A0055E2EA /* AlivcImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlivcImage.m; sourceTree = "<group>"; };
+		BDE376E222C22D2B0055E2EA /* AlivcDefine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlivcDefine.m; sourceTree = "<group>"; };
+		BDE376E322C22D2B0055E2EA /* AlivcImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlivcImage.h; sourceTree = "<group>"; };
+		BDE376E422C22D2B0055E2EA /* AlivcDefine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlivcDefine.h; sourceTree = "<group>"; };
+		BDE376E722C22D4E0055E2EA /* AlivcUIConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlivcUIConfig.m; sourceTree = "<group>"; };
+		BDE376E822C22D4E0055E2EA /* AlivcUIConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlivcUIConfig.h; sourceTree = "<group>"; };
 		BDEF7790228571DC00ED0AC0 /* CommonPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonPayView.swift; sourceTree = "<group>"; };
 		BDEF7792228575A800ED0AC0 /* CommonPayCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommonPayCell.swift; sourceTree = "<group>"; };
 		BDF45F0C228C00B8004E2682 /* DefaultContactInfoModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultContactInfoModel.swift; sourceTree = "<group>"; };
@@ -1913,7 +1943,6 @@
 		A72A725322321A6900B21995 /* Lib */ = {
 			isa = PBXGroup;
 			children = (
-				BD4B50AA22BC7DE00073B516 /* AliyunVideoSDK */,
 				A7778C8E22438F5C00C7C47A /* AlipaySDK */,
 				A7778C9122438F5D00C7C47A /* WeChatSDK */,
 			);
@@ -3986,6 +4015,7 @@
 			isa = PBXGroup;
 			children = (
 				BD929CCD22B904A30098C139 /* PublishViewController.swift */,
+				BDE376C922C1B5350055E2EA /* AliyunVideo */,
 				BD12B67222B4E99800AEB10B /* PublishMediaPicker */,
 				BD01B1FC22BC677900CE9F36 /* PublishTakeVideo */,
 				BD01B1F722BC673900CE9F36 /* PublishTakePhoto */,
@@ -4330,14 +4360,6 @@
 			path = View;
 			sourceTree = "<group>";
 		};
-		BD4B50AA22BC7DE00073B516 /* AliyunVideoSDK */ = {
-			isa = PBXGroup;
-			children = (
-				BD4B50AB22BC7DEA0073B516 /* FilterResource.bundle */,
-			);
-			path = AliyunVideoSDK;
-			sourceTree = "<group>";
-		};
 		BD77BE18228D8C2E0060E23C /* OrderComment */ = {
 			isa = PBXGroup;
 			children = (
@@ -4396,6 +4418,89 @@
 			path = AllCommentCell;
 			sourceTree = "<group>";
 		};
+		BDD547B622C2FF4D005BBE19 /* ShortVideoCommonFile */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = ShortVideoCommonFile;
+			sourceTree = "<group>";
+		};
+		BDD547B722C2FF66005BBE19 /* ShortVideoFile */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = ShortVideoFile;
+			sourceTree = "<group>";
+		};
+		BDD547B822C2FF82005BBE19 /* ShortVideoResource */ = {
+			isa = PBXGroup;
+			children = (
+				BD4B50AB22BC7DEA0073B516 /* FilterResource.bundle */,
+			);
+			path = ShortVideoResource;
+			sourceTree = "<group>";
+		};
+		BDE376C922C1B5350055E2EA /* AliyunVideo */ = {
+			isa = PBXGroup;
+			children = (
+				BDE376CB22C2284C0055E2EA /* AlivcShortVideo */,
+				BDE376CA22C228470055E2EA /* AlivcBeaitufySettingsPanel */,
+				BDE376CC22C2289E0055E2EA /* Categories */,
+				BDE376DC22C22ADC0055E2EA /* Config */,
+			);
+			path = AliyunVideo;
+			sourceTree = "<group>";
+		};
+		BDE376CA22C228470055E2EA /* AlivcBeaitufySettingsPanel */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = AlivcBeaitufySettingsPanel;
+			sourceTree = "<group>";
+		};
+		BDE376CB22C2284C0055E2EA /* AlivcShortVideo */ = {
+			isa = PBXGroup;
+			children = (
+				BDD547B622C2FF4D005BBE19 /* ShortVideoCommonFile */,
+				BDD547B722C2FF66005BBE19 /* ShortVideoFile */,
+				BDD547B822C2FF82005BBE19 /* ShortVideoResource */,
+			);
+			path = AlivcShortVideo;
+			sourceTree = "<group>";
+		};
+		BDE376CC22C2289E0055E2EA /* Categories */ = {
+			isa = PBXGroup;
+			children = (
+				BDE376D622C22A260055E2EA /* MBProgressHUD+AlivcHelper.h */,
+				BDE376CD22C22A250055E2EA /* MBProgressHUD+AlivcHelper.m */,
+				BDE376CF22C22A250055E2EA /* NSString+AlivcHelper.h */,
+				BDE376D022C22A250055E2EA /* NSString+AlivcHelper.m */,
+				BDE376CE22C22A250055E2EA /* UIButton+AliyunBlock.h */,
+				BDE376D422C22A260055E2EA /* UIButton+AliyunBlock.m */,
+				BDE376D122C22A250055E2EA /* UIColor+AlivcHelper.h */,
+				BDE376D222C22A250055E2EA /* UIColor+AlivcHelper.m */,
+				BDE376D322C22A260055E2EA /* UIView+AlivcHelper.h */,
+				BDE376D522C22A260055E2EA /* UIView+AlivcHelper.m */,
+			);
+			path = Categories;
+			sourceTree = "<group>";
+		};
+		BDE376DC22C22ADC0055E2EA /* Config */ = {
+			isa = PBXGroup;
+			children = (
+				BDE376E022C22CE20055E2EA /* AlivcMacro.h */,
+				BDE376E322C22D2B0055E2EA /* AlivcImage.h */,
+				BDE376E122C22D2A0055E2EA /* AlivcImage.m */,
+				BDE376E422C22D2B0055E2EA /* AlivcDefine.h */,
+				BDE376E222C22D2B0055E2EA /* AlivcDefine.m */,
+				BDE376E822C22D4E0055E2EA /* AlivcUIConfig.h */,
+				BDE376E722C22D4E0055E2EA /* AlivcUIConfig.m */,
+				BD477F6122C23D65008BE2CB /* AliyunReachability.h */,
+				BD477F6222C23D66008BE2CB /* AliyunReachability.m */,
+			);
+			path = Config;
+			sourceTree = "<group>";
+		};
 		BDEF778F228571C200ED0AC0 /* PayManagerView */ = {
 			isa = PBXGroup;
 			children = (
@@ -4761,6 +4866,7 @@
 				BD1FC1A822B1075F00D55081 /* LXTextView.m in Sources */,
 				BDAA40FB228E9CC300CF841D /* OrderApplyRefundNoteInfoCell.swift in Sources */,
 				A7DF50D622A4E8B400998908 /* OrderDetailProductTableViewCell.swift in Sources */,
+				BDE376D722C22A260055E2EA /* MBProgressHUD+AlivcHelper.m in Sources */,
 				A74322A422B8E7F60017C367 /* MyFollowAndFanHeaderView.swift in Sources */,
 				A73911AD229CD62F0033177E /* AlamofireReachabilityManager.swift in Sources */,
 				A7BB684F2268DCEC00AB07A2 /* SelfRecommendationViewController.swift in Sources */,
@@ -4784,6 +4890,8 @@
 				BD01B20022BC677900CE9F36 /* PublishVideoRecorderController.swift in Sources */,
 				BDF862AC228E5112000DEF84 /* OrderCommentAddImgCollectionCell.swift in Sources */,
 				A7931E0222AF827600297D0A /* ESTabBarItem.swift in Sources */,
+				BDE376DB22C22A260055E2EA /* UIView+AlivcHelper.m in Sources */,
+				A7CC74D4226FF1AA003C4F38 /* MineView.swift in Sources */,
 				A71AA5152272160A008FF1A5 /* ExpressAddressListTableViewCell.swift in Sources */,
 				A72A72B722321DE000B21995 /* Extension+NSMutableAttributedString.swift in Sources */,
 				A7931E0D22AF874600297D0A /* GenderSelectionViewController.swift in Sources */,
@@ -4796,6 +4904,7 @@
 				BDE3045D22851E4F001D050F /* ProductCartListModel.swift in Sources */,
 				BD12B68822B4F28F00AEB10B /* KSExtension.swift in Sources */,
 				A7A98DFF227E8501005306E9 /* SwiftMoyaNetWorkServiceProduct.swift in Sources */,
+				BDE376D922C22A260055E2EA /* UIColor+AlivcHelper.m in Sources */,
 				BDDF3B28228EBB72003A7D16 /* ProductRefundReasonModel.swift in Sources */,
 				BDD4FB1222840597006FE833 /* ShoppingCartPayOrderController.swift in Sources */,
 				BD12203A22AF80AD0051C7C2 /* MessageActivityTableCell.swift in Sources */,
@@ -4861,6 +4970,7 @@
 				A70B2C292286D77200B2449F /* ProductDetailProductInfoTableViewCell.swift in Sources */,
 				A74322A922B900180017C367 /* CommunityFindFriendsViewController.swift in Sources */,
 				BD13B6E222BA03BC008BB323 /* PublishTopicTypeCell.swift in Sources */,
+				BDE376D822C22A260055E2EA /* NSString+AlivcHelper.m in Sources */,
 				BD1FC1A922B1075F00D55081 /* LXKeyBoard.m in Sources */,
 				A72A726822321DBD00B21995 /* UMManager.swift in Sources */,
 				A70B2C042283D06B00B2449F /* ProductFloorFullLeftHeaderCollectionReusableView.swift in Sources */,
@@ -4872,6 +4982,7 @@
 				BD12B67822B4ED9200AEB10B /* KSMediaPickerOutputModel.swift in Sources */,
 				A7CC74E62270628B003C4F38 /* DeliveryMethodTypeModel.swift in Sources */,
 				BD12B68322B4EFF000AEB10B /* KSMediaPickerView.swift in Sources */,
+				BDE376E522C22D2B0055E2EA /* AlivcImage.m in Sources */,
 				A743229B22B8C1510017C367 /* AppStoreReview.swift in Sources */,
 				BDAF83A222B330540004BCC3 /* RecommendSimilarCell.swift in Sources */,
 				BDAA40FD228E9CD600CF841D /* OrderApplyRefundPhoneCell.swift in Sources */,
@@ -5178,6 +5289,7 @@
 				BD13B6DC22BA03BC008BB323 /* SearchAddrNavigationbarView.swift in Sources */,
 				A757849D22C1CBF400D4DB61 /* SwiftMoyaNetWorkH5Manager.swift in Sources */,
 				A7A98E4322804851005306E9 /* ShoppingMallSepcialFlowLayout.swift in Sources */,
+				BDE376E622C22D2B0055E2EA /* AlivcDefine.m in Sources */,
 				BD12B69422B4F68400AEB10B /* KSMediaPickerCollectionView.m in Sources */,
 				BD12204122AF8E320051C7C2 /* MessagePlanetNotiTableCell.swift in Sources */,
 				A79057062276EA3D0037F823 /* OpenCityListModel.swift in Sources */,
@@ -5201,6 +5313,7 @@
 				BDAA40F9228E9ADA00CF841D /* OrderApplyRefundReasonCell.swift in Sources */,
 				A7274C59228EE636000E3A07 /* LBXScanNetAnimation.swift in Sources */,
 				BD13B6E422BA0546008BB323 /* PublishAddressPOICell.swift in Sources */,
+				BDE376E922C22D4E0055E2EA /* AlivcUIConfig.m in Sources */,
 				BD10CD0A22BFC5E40040796E /* PublishMusicHeader.swift in Sources */,
 				A7541502224C5ECB002480B5 /* BaiduMapManager.swift in Sources */,
 				A773D02F229FDC3B007A5751 /* DIYEmptyView.swift in Sources */,
@@ -5217,6 +5330,7 @@
 				A70B2C492288416F00B2449F /* ProductDetailHotSellCollectionViewCell.swift in Sources */,
 				A71901692275464000104A50 /* ProvinceCityAreaView.swift in Sources */,
 				BD12204422AF996E0051C7C2 /* MessageCommentController.swift in Sources */,
+				BD477F6322C23D66008BE2CB /* AliyunReachability.m in Sources */,
 				A7778CDD2246121500C7C47A /* PhoneCountryAreaListMdoel.swift in Sources */,
 				A72A733522325A4B00B21995 /* AppDelegate+HandleOpen.swift in Sources */,
 				A7FF156E228C6EAE00A85748 /* OrderDeliveryModeTableViewCell.swift in Sources */,
@@ -5226,6 +5340,7 @@
 				A72A72CF22321E2700B21995 /* NotificationCenterMacro.swift in Sources */,
 				A72A72BF22321DE000B21995 /* Extension+UIButton.swift in Sources */,
 				BDD4FB1722840DD3006FE833 /* OrderPayAcountView.swift in Sources */,
+				BDE376DA22C22A260055E2EA /* UIButton+AliyunBlock.m in Sources */,
 				A7D07CBF22B73EE600186014 /* UserPersonalCenterViewController.swift in Sources */,
 				A7CC753C2271C177003C4F38 /* AddressManagerSelfMentionTableViewCell.swift in Sources */,
 				A7FF1587228C851100A85748 /* OrderDetailInfoTableViewCell.swift in Sources */,
@@ -5409,7 +5524,7 @@
 					"$(PROJECT_DIR)/RainbowPlanet/Lib/AlipaySDK",
 				);
 				GCC_ENABLE_CPP_EXCEPTIONS = NO;
-				GCC_ENABLE_OBJC_EXCEPTIONS = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
 				HEADER_SEARCH_PATHS = (
 					"$(inherited)",
 					"\"${PODS_ROOT}/Headers/Public\"",
@@ -5656,7 +5771,7 @@
 					"$(PROJECT_DIR)/RainbowPlanet/Lib/AlipaySDK",
 				);
 				GCC_ENABLE_CPP_EXCEPTIONS = NO;
-				GCC_ENABLE_OBJC_EXCEPTIONS = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
 				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
 				HEADER_SEARCH_PATHS = (
 					"$(inherited)",

RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/优雅/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/优雅/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/优雅/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/光圈/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/光圈/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/光圈/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/光圈/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/思念/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/思念/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/思念/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/朝阳/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/朝阳/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/朝阳/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/柔柔/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/柔柔/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/柔柔/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/模糊/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/模糊/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/模糊/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/模糊/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/波普/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/波普/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/波普/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/波普/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/浓烈/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/浓烈/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/浓烈/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海盐/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海盐/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海盐/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海蓝/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海蓝/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/海蓝/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/灰白/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/灰白/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/灰白/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/灰白/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/炽黄/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/炽黄/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/炽黄/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/焦黄/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/焦黄/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/焦黄/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/焦黄/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/粉桃/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/粉桃/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/粉桃/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/素描/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/素描/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/素描/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/素描/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/color2.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/color2.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/红润/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color2.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color2.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color3.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color3.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color4.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/color4.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/经典/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/胶片/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/胶片/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/胶片/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/胶片/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/蓝调/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/蓝调/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/蓝调/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/蓝调/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/迷糊/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/迷糊/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/迷糊/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/迷糊/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/闪耀/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/闪耀/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/闪耀/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/阳光/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/阳光/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/阳光/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/雪梨/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/雪梨/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/s3.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/雪梨/s3.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/马赛克/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/马赛克/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/马赛克/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/马赛克/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鱼眼/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鱼眼/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鱼眼/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鱼眼/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/color2.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/color2.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/鲜果/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/color.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/麦茶/color.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/麦茶/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/麦茶/icon.png


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/黑白/config.json → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/黑白/config.json


RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/黑白/icon.png → RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/AlivcShortVideo/ShortVideoResource/FilterResource.bundle/黑白/icon.png


+ 67 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/MBProgressHUD+AlivcHelper.h

@@ -0,0 +1,67 @@
+//
+//  MBProgressHUD+AlivcHelper.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/4/12.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <MBProgressHUD/MBProgressHUD.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MBProgressHUD (AlivcHelper)
+
+///**
+// 警告图片
+//
+// @return 警告图片
+// */
+//+ (UIImage *)warningImage;
+//
+//
+///**
+// 成功图片
+//
+// @return 成功图片
+// */
+//+ (UIImage *)sucessImage;
+
+
+/**
+ 展示成功的信息
+ 
+ @param message 要展示的字
+ @param view 展示view所在的视图
+ */
++ (void)showSucessMessage:(NSString *)message inView:(UIView *)view;
+
+
+/**
+ 展示警告的信息
+
+ @param message 展示的文字
+ @param view 展示view所在的视图
+ */
++ (void)showWarningMessage:(NSString *)message inView:(UIView *)view;
+
+
+/**
+ 展示信息
+
+ @param message 信息
+ @param view 展示view所在的视图
+ */
++ (void)showMessage:(NSString *)message inView:(UIView *)view;
+
+/**
+ 一直展示信息
+ 
+ @param message 信息
+ @param view 展示view所在的视图
+ */
++ (MBProgressHUD *)showMessage:(NSString *)message alwaysInView:(UIView *)view;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 84 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/MBProgressHUD+AlivcHelper.m

@@ -0,0 +1,84 @@
+//
+//  MBProgressHUD+AlivcHelper.m
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/4/12.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "MBProgressHUD+AlivcHelper.h"
+
+static CGFloat secondPerText = 0.16;
+
+@implementation MBProgressHUD (AlivcHelper)
+
++ (UIImage *)warningImage{
+    return [UIImage imageNamed:@"avcPromptWarning"];
+}
+
++ (UIImage *)sucessImage{
+    return [UIImage imageNamed:@"avcPromptSuccess"];
+}
+
++ (void)showMessage:(NSString *)message image:(UIImage *)image inView:(UIView *)view{
+    
+    MBProgressHUD  *hud =[MBProgressHUD showHUDAddedTo:view animated:true];
+    hud.mode = MBProgressHUDModeCustomView;
+    hud.customView = [[UIImageView alloc]initWithImage:image];
+    hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+    hud.bezelView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.8];
+    hud.contentColor = [UIColor whiteColor];
+    hud.label.numberOfLines = 5;
+    hud.label.text = message;
+    [hud hideAnimated:true afterDelay:[MBProgressHUD showTimeWithMessage:message]];
+}
+
++ (CGFloat )showTimeWithMessage:(NSString *)message{
+    if (message) {
+        CGFloat time = message.length * secondPerText;
+        if (time > 5) {
+            time = 5;
+        }
+        return time;
+    }
+    return 0;
+}
+
++ (void)showSucessMessage:(NSString *)message inView:(UIView *)view{
+    [self showMessage:message image:[self sucessImage] inView:view];
+}
+
++ (void)showWarningMessage:(NSString *)message inView:(UIView *)view{
+    [self showMessage:message image:[self warningImage] inView:view];
+}
+
++ (void)showMessage:(NSString *)message inView:(UIView *)view{
+    if (view) {
+        MBProgressHUD  *hud =[MBProgressHUD showHUDAddedTo:view animated:true];
+        hud.mode = MBProgressHUDModeText;
+        hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+        hud.bezelView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.8];
+        hud.contentColor = [UIColor whiteColor];
+        hud.label.numberOfLines = 10;
+        hud.label.text = message;
+        [hud hideAnimated:true afterDelay:[MBProgressHUD showTimeWithMessage:message]];
+    } 
+}
+
++ (MBProgressHUD *)showMessage:(NSString *)message alwaysInView:(UIView *)view{
+    MBProgressHUD  *hud =[MBProgressHUD showHUDAddedTo:view animated:true];
+    hud.mode = MBProgressHUDModeIndeterminate;
+    hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;
+    hud.bezelView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.8];
+    hud.contentColor = [UIColor whiteColor];
+    hud.label.numberOfLines = 10;
+    hud.label.text = message;
+    return hud;
+}
+
+//- (void)setDefaultMotionEffectsEnabled:(BOOL)defaultMotionEffectsEnabled
+
+- (BOOL)areDefaultMotionEffectsEnabled {
+    return NO;
+}
+@end

+ 91 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/NSString+AlivcHelper.h

@@ -0,0 +1,91 @@
+//
+//  NSString+AlivcHelper.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/3/22.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (AlivcHelper)
+
+/**
+ 语言国际化
+ 
+ @return 本地化的语言
+ */
+- (NSString *)localString;
+
+
+/**
+ nil, @"", @"  ", @"\n" will Returns NO; otherwise Returns YES.
+ 
+ @discussion 可用于判断用户名或者密码是否为空
+ */
+- (BOOL)isNotEmpty;
+
+/*
+ * 功能 : 检查字符串是否是nil/null,返回判断后的字符串
+ * 参数 : inputString : 输入字符串
+ * return : 返回判断后的字符串
+ */
++ (NSString *)aliyun_checkString:(NSString *)inputString;
++ (BOOL)aliyun_checkStringIsEmpty:(NSString *)inputString;
+
+/*
+ * 功能 : MD5
+ * 参数 : inputString : 输入字符串
+ * return : 返回MD5后的字符串
+ */
++ (NSString *)aliyun_MD5:(NSString *) inputString;
+
+/*
+ * 功能 : 编码
+ * 参数 : inputString : 输入字符串
+ * return : 返回编码后的字符串
+ */
++ (NSString *)aliyun_encodeToPercentEscapeString: (NSString *) inputString;
+
+/*
+ * 功能 : 解码
+ * 参数 : inputString : 输入字符串
+ * return : 返回解码后的字符串
+ */
++ (NSString *)aliyun_decodeFromPercentEscapeString: (NSString *) inputString;
+
+/*
+ * 功能 : 获取UUID
+ * return : 返回UUID的字符串
+ */
++ (NSString*)aliyun_generateUUID;
+
+/*
+ * 功能 : 获取UTC时间
+ * return : 返回UTC时间的字符串
+ */
++ (NSString *)aliyun_getDateUTCTime;
+
+/*
+ * 功能 : HmacSHA1加密;
+ * return : 返回加密后的字符串
+ */
++(NSString *)HmacSha1:(NSString *)key input:(NSString *)input;
+
+
+//密码加密方式:SHA1
++(NSString *)EncriptPassword_SHA1:(NSString *)password;
+
+
+/**
+ 返回一个字符串的字符长度
+
+ @param strtemp 字符串
+ @return 字符长度
+ */
++ (NSInteger)charLengthWith:(NSString *)strtemp;
+NS_ASSUME_NONNULL_END
+
+@end

+ 201 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/NSString+AlivcHelper.m

@@ -0,0 +1,201 @@
+//
+//  NSString+AlivcHelper.m
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/3/22.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "NSString+AlivcHelper.h"
+#import <CommonCrypto/CommonDigest.h>
+#import <CommonCrypto/CommonHMAC.h>
+
+@implementation NSString (AlivcHelper)
+
+- (NSString *)localString{
+    return NSLocalizedString(self, nil);
+}
+
+/**
+ Because of nil cannot response message,
+ `isEmpty` method fail to return `YES` when string is nil.
+ */
+- (BOOL)isNotEmpty {
+    if (!self) return YES;
+    NSCharacterSet *blank = [NSCharacterSet whitespaceAndNewlineCharacterSet];
+    for (NSInteger i = 0; i < self.length; ++i) {
+        unichar c = [self characterAtIndex:i];
+        if (![blank characterIsMember:c]) {
+            return YES;
+        }
+    }
+    return NO;
+}
+
+/*
+ * 功能 : 检查字符串是否是nil/null,返回判断后的字符串
+ * 参数 : inputString : 输入字符串
+ * return : 返回判断后的字符串
+ */
++ (NSString *)aliyun_checkString:(NSString *)inputString {
+    NSString *string = inputString;
+    if([string isKindOfClass:[NSNull class]]){
+        return @"";
+    }
+    if (string == nil) {
+        return @"";
+    }
+    if ([string isEqualToString:@"(null)"]) {
+        return @"";
+    }
+    NSString *text = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+    if ([text length] == 0) {
+        return @"";
+    }
+    return string;
+}
+
+
++ (BOOL)aliyun_checkStringIsEmpty:(NSString *)inputString {
+    NSString *string = inputString;
+    if([string isKindOfClass:[NSNull class]]){
+        return YES;
+    }
+    if (string == nil) {
+        return YES;
+    }
+    if ([string isEqualToString:@"(null)"]) {
+        return YES;
+    }
+    NSString *text = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
+    if ([text length] == 0) {
+        return YES;
+    }
+    return NO;
+}
+
+/*
+ * 功能 : MD5
+ * 参数 : inputString : 输入字符串
+ * return : 返回MD5后的字符串
+ */
++ (NSString *)aliyun_MD5:(NSString *) inputString{
+    const char *cStr = [inputString UTF8String];
+    unsigned char digest[CC_MD5_DIGEST_LENGTH];
+    CC_MD5( cStr, (CC_LONG)strlen(cStr), digest ); // This is the md5 call
+    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
+    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
+        [output appendFormat:@"%02x", digest[i]];
+    return  output;
+}
+
+/*
+ * 功能 : 编码
+ * 参数 : inputString : 输入字符串
+ * return : 返回编码后的字符串
+ */
++ (NSString *)aliyun_encodeToPercentEscapeString: (NSString *) inputString{
+    CFStringRef cfString = CFURLCreateStringByAddingPercentEscapes(
+                                                                   NULL, /* allocator */
+                                                                   (__bridge CFStringRef)inputString,
+                                                                   NULL, /* charactersToLeaveUnescaped */
+                                                                   (CFStringRef)@"!*'();:@&=+$,/?%#[]",
+                                                                   kCFStringEncodingUTF8);
+    NSString *outputStr = [NSString stringWithString:(__bridge NSString *)cfString];
+    CFRelease(cfString);
+    return outputStr;
+}
+
+/*
+ * 功能 : 解码
+ * 参数 : inputString : 输入字符串
+ * return : 返回解码后的字符串
+ */
++ (NSString *)aliyun_decodeFromPercentEscapeString: (NSString *) inputString{
+    NSMutableString *outputStr = [NSMutableString stringWithString:inputString];
+    [outputStr replaceOccurrencesOfString:@"+"
+                               withString:@""
+                                  options:NSLiteralSearch
+                                    range:NSMakeRange(0,[outputStr length])];
+    return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+}
+
+/*
+ * 功能 : 获取UUID
+ * return : 返回UUID的字符串
+ */
++ (NSString*)aliyun_generateUUID{
+    CFUUIDRef  uuidObj = CFUUIDCreate(nil);
+    NSString  *uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(nil, uuidObj);
+    CFRelease(uuidObj);
+    return uuidString;
+}
+
+/*
+ * 功能 : 获取UTC时间
+ * return : 返回UTC时间的字符串
+ */
++ (NSString *)aliyun_getDateUTCTime{
+    char date_str[21] = {0};
+    time_t t = time(NULL)-28800;  // UTC秒数
+    struct tm *tp = localtime(&t);
+    sprintf(date_str, "%04d", tp->tm_year+1900);
+    sprintf(date_str+4, "%s", "-");
+    sprintf(date_str+5, "%02d", tp->tm_mon+1);
+    sprintf(date_str+7, "%s", "-");
+    sprintf(date_str+8, "%02d", tp->tm_mday);
+    sprintf(date_str+10, "%s", "T");
+    sprintf(date_str+11, "%02d", tp->tm_hour);
+    sprintf(date_str+13, "%s", ":");
+    sprintf(date_str+14, "%02d", tp->tm_min);
+    sprintf(date_str+16, "%s", ":");
+    sprintf(date_str+17, "%02d", tp->tm_sec);
+    sprintf(date_str+19, "%s", "Z");
+    NSString *output = [NSString stringWithFormat:@"%s",date_str];
+    return output;
+}
+
+
+//HmacSHA1加密;
++(NSString *)HmacSha1:(NSString *)key input:(NSString *)input
+{
+    const char *cKey  = [key cStringUsingEncoding:NSASCIIStringEncoding];
+    const char *cData = [input cStringUsingEncoding:NSASCIIStringEncoding];
+    //Sha256:
+    // unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
+    //CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
+    
+    //sha1
+    unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH];
+    CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
+    
+    NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC
+                                          length:sizeof(cHMAC)];
+    
+    NSString *hash = [HMAC base64EncodedStringWithOptions:0];//将加密结果进行一次BASE64编码。
+    return hash;
+}
+
+//密码加密方式:SHA1
++(NSString *)EncriptPassword_SHA1:(NSString *)password{
+    const char *cstr = [password cStringUsingEncoding:NSUTF8StringEncoding];
+    NSData *data = [NSData dataWithBytes:cstr length:password.length];
+    uint8_t digest[CC_SHA1_DIGEST_LENGTH];
+    CC_SHA1(data.bytes, (CC_LONG)data.length, digest);
+    
+    NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH *2];
+    
+    for(int i =0; i < CC_SHA1_DIGEST_LENGTH; i++) {
+        [result appendFormat:@"%02x", digest[i]];
+    }
+    return [result uppercaseString];
+}
+
++ (NSInteger)charLengthWith:(NSString*)strtemp
+{
+    NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
+    NSData* da = [strtemp dataUsingEncoding:enc];
+    return [da length];
+}
+
+@end

+ 17 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIButton+AliyunBlock.h

@@ -0,0 +1,17 @@
+//
+//  UIButton+AliyunBlock.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by wanghao on 2018/10/10.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <Foundation/Foundation.h>
+
+typedef void (^OnClickBlock)(void);
+@interface UIButton (AliyunBlock)
+
+-(void)aliyunOnClickBlock:(OnClickBlock)action;
+
+@end

+ 22 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIButton+AliyunBlock.m

@@ -0,0 +1,22 @@
+//
+//  UIButton+AliyunBlock.m
+//  AliyunVideoClient_Entrance
+//
+//  Created by wanghao on 2018/10/10.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "UIButton+AliyunBlock.h"
+#import <objc/runtime.h>
+static char overviewKey;
+@implementation UIButton (AliyunBlock)
+-(void)aliyunOnClickBlock:(OnClickBlock)action{
+    objc_setAssociatedObject(self, &overviewKey, action, OBJC_ASSOCIATION_COPY_NONATOMIC);
+    [self addTarget:self action:@selector(callActionBlock:) forControlEvents:UIControlEventTouchUpInside];
+}
+- (void)callActionBlock:(id)sender {
+    OnClickBlock block = (OnClickBlock)objc_getAssociatedObject(self, &overviewKey);
+    if (block) {block();}
+}
+
+@end

+ 66 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIColor+AlivcHelper.h

@@ -0,0 +1,66 @@
+//
+//  UIColor+AlivcHelper.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/4/8.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*
+ Create UIColor with a hex string.
+ Example: UIColorHex(0xF0F), UIColorHex(66ccff), UIColorHex(#66CCFF88)
+ 
+ Valid format: #RGB #RGBA #RRGGBB #RRGGBBAA 0xRGB ...
+ The `#` or "0x" sign is not required.
+ */
+#ifndef UIColorHex
+#define UIColorHex(_hex_)   [UIColor dl_colorWithHexString:((__bridge NSString *)CFSTR(#_hex_))]
+#endif
+
+@interface UIColor (AlivcHelper)
+
+/**
+ Creates and returns a color object from hex string.
+ 
+ @discussion:
+ Valid format: #RGB #RGBA #RRGGBB #RRGGBBAA 0xRGB ...
+ The `#` or "0x" sign is not required.
+ The alpha will be set to 1.0 if there is no alpha component.
+ It will return nil when an error occurs in parsing.
+ 
+ Example: @"0xF0F", @"66ccff", @"#66CCFF88"
+ 
+ @param hexStr  The hex string value for the new color.
+ 
+ @return        An UIColor object from string, or nil if an error occurs.
+ */
++ (nullable UIColor *)colorWithHexString:(NSString *)hexStr;
+
+/**
+ Creates and returns a color object from hex string.
+ 
+ @discussion:
+ Valid format: #RGB #RGBA #RRGGBB #RRGGBBAA 0xRGB ...
+ The `#` or "0x" sign is not required.
+ The alpha will be set to 1.0 if there is no alpha component.
+ It will return nil when an error occurs in parsing.
+ 
+ Example: @"0xF0F", @"66ccff", @"#66CCFF88"
+ 
+ @param hexStr  The hex string value for the new color.
+ 
+ @param alpha the alpha of the color
+ 
+ @return        An UIColor object from string, or nil if an error occurs.
+ */
++ (nullable UIColor *)colorWithHexString:(NSString *)hexStr alpha:(CGFloat)alpha;
+
+
+@end
+
+
+NS_ASSUME_NONNULL_END

+ 69 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIColor+AlivcHelper.m

@@ -0,0 +1,69 @@
+//
+//  UIColor+AlivcHelper.m
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/4/8.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "UIColor+AlivcHelper.h"
+
+@implementation UIColor (AlivcHelper)
+
++ (instancetype)colorWithHexString:(NSString *)hexStr {
+    CGFloat r, g, b, a;
+    if (hexStrToRGBA(hexStr, &r, &g, &b, &a)) {
+        return [UIColor colorWithRed:r green:g blue:b alpha:a];
+    }
+    return nil;
+}
+
++ (instancetype)colorWithHexString:(NSString *)hexStr alpha:(CGFloat)alpha{
+    CGFloat r, g, b, a;
+    if (hexStrToRGBA(hexStr, &r, &g, &b, &a)) {
+        a = alpha;
+        return [UIColor colorWithRed:r green:g blue:b alpha:a];
+    }
+    return nil;
+}
+
+static BOOL hexStrToRGBA(NSString *str,
+                         CGFloat *r, CGFloat *g, CGFloat *b, CGFloat *a) {
+    NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet];
+    str = [[str stringByTrimmingCharactersInSet:set] uppercaseString];
+    if ([str hasPrefix:@"#"]) {
+        str = [str substringFromIndex:1];
+    } else if ([str hasPrefix:@"0X"]) {
+        str = [str substringFromIndex:2];
+    }
+    
+    NSUInteger length = [str length];
+    //         RGB            RGBA          RRGGBB        RRGGBBAA
+    if (length != 3 && length != 4 && length != 6 && length != 8) {
+        return NO;
+    }
+    
+    //RGB,RGBA,RRGGBB,RRGGBBAA
+    if (length < 5) {
+        *r = hexStrToInt([str substringWithRange:NSMakeRange(0, 1)]) / 255.0f;
+        *g = hexStrToInt([str substringWithRange:NSMakeRange(1, 1)]) / 255.0f;
+        *b = hexStrToInt([str substringWithRange:NSMakeRange(2, 1)]) / 255.0f;
+        if (length == 4)  *a = hexStrToInt([str substringWithRange:NSMakeRange(3, 1)]) / 255.0f;
+        else *a = 1;
+    } else {
+        *r = hexStrToInt([str substringWithRange:NSMakeRange(0, 2)]) / 255.0f;
+        *g = hexStrToInt([str substringWithRange:NSMakeRange(2, 2)]) / 255.0f;
+        *b = hexStrToInt([str substringWithRange:NSMakeRange(4, 2)]) / 255.0f;
+        if (length == 8) *a = hexStrToInt([str substringWithRange:NSMakeRange(6, 2)]) / 255.0f;
+        else *a = 1;
+    }
+    return YES;
+}
+
+static inline NSUInteger hexStrToInt(NSString *str) {
+    uint32_t result = 0;
+    sscanf([str UTF8String], "%X", &result);
+    return result;
+}
+
+@end

+ 30 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIView+AlivcHelper.h

@@ -0,0 +1,30 @@
+//
+//  UIView+AlivcHelper.h
+//  MaoBoli
+//
+//  Created by Zejian Cai on 2018/7/19.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface UIView (AlivcHelper)
+/**
+ 为当前的view添加模糊效果
+ */
+- (void)addVisualEffect;
+
+
+/**
+ 为当前的view添加模糊效果
+
+ @param frame 需要增加的区域
+ */
+- (void)addVisualEffectWithFrame:(CGRect)frame;
+
+/**
+ 移除当前view的毛玻璃效果
+ */
+-(void)removeVisualEffectView;
+
+@end

+ 40 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Categories/UIView+AlivcHelper.m

@@ -0,0 +1,40 @@
+//
+//  UIView+AlivcHelper.m
+//  MaoBoli
+//
+//  Created by Zejian Cai on 2018/7/19.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "UIView+AlivcHelper.h"
+
+@implementation UIView (AlivcHelper)
+
+- (void)addVisualEffect{
+    self.backgroundColor = [UIColor clearColor];
+    UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
+    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffect];
+    visualEffectView.frame =CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
+    [self addSubview:visualEffectView];
+    [self sendSubviewToBack:visualEffectView];
+}
+
+-(void)addVisualEffectWithFrame:(CGRect)frame{
+    self.backgroundColor = [UIColor clearColor];
+    UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
+    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffect];
+    visualEffectView.frame =frame;
+    [self addSubview:visualEffectView];
+    [self sendSubviewToBack:visualEffectView];
+}
+
+-(void)removeVisualEffectView{
+    for (id effectView in self.subviews) {
+        if ([effectView isKindOfClass:[UIVisualEffectView class]]) {
+            [effectView removeFromSuperview];
+        }
+    }
+}
+
+
+@end

+ 46 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcDefine.h

@@ -0,0 +1,46 @@
+//
+//  AlivcDefine.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/5/9.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+/**
+ 阿里云视频云工具包对外输出产品定义
+
+ - AlivcOutputProductTypeSmartVideo: 趣视频
+ - AlivcOutputProductTypeShortVideo: 短视频
+ - AlivcOutputProductTypePlayVideo: 播放器
+ - AlivcOutputProductTypeAll: 全量包
+ */
+typedef NS_ENUM(NSInteger,AlivcOutputProductType){
+    AlivcOutputProductTypeSmartVideo,
+    AlivcOutputProductTypeShortVideo,
+    AlivcOutputProductTypePlayVideo,
+    AlivcOutputProductTypeAll
+};
+
+
+//资源删除通知
+extern NSString * const AliyunEffectResourceDeleteNotification;
+//系统字体名称
+extern NSString * const AlivcSystemFontName;
+//用户token本地存储字符串
+extern NSString * const AlivcUserLocalPath;
+//视频开始发布的通知
+extern NSString * const AlivcNotificationVideoStartPublish;
+//视频发布成功的通知
+extern NSString * const AlivcNotificationVideoPublishSuccess;
+//随机用户成功的通知
+extern NSString * const AlivcNotificationRandomUserSuccess;
+//发布流程结束的通知
+extern NSString * const AlivcNotificationPublishFlowEnd;
+
+//趣视频的服务地址
+extern NSString * const kAlivcQuUrlString;
+
+@interface AlivcDefine : NSObject
+@end

+ 32 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcDefine.m

@@ -0,0 +1,32 @@
+//
+//  AlivcDefine.m
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/5/9.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "AlivcDefine.h"
+
+
+//资源删除通知
+NSString * const AliyunEffectResourceDeleteNotification = @"AliyunEffectResourceDeleteNotification";
+//系统字体名称
+NSString * const AlivcSystemFontName = @"PingFangSC-Regular";
+//用户token本地存储字符串
+NSString * const AlivcUserLocalPath = @"AlivcUserLocalPath";
+
+NSString * const AlivcNotificationVideoPublishSuccess = @"AlivcNotificationVideoPublishSuccess";
+
+NSString * const AlivcNotificationVideoStartPublish = @"AlivcNotificationVideoStartPublish";
+
+NSString * const AlivcNotificationRandomUserSuccess = @"AlivcNotificationRandomUserSuccess";
+
+NSString * const AlivcNotificationPublishFlowEnd = @"AlivcNotificationPublishFlowEnd";
+
+NSString * const kAlivcQuUrlString =  @"https://alivc-demo.aliyuncs.com";
+//NSString * const kAlivcQuUrlString = @"http://47.102.219.109:8080/swagger-ui.html#/demo-controller";
+@implementation AlivcDefine
+
+@end
+

+ 33 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcImage.h

@@ -0,0 +1,33 @@
+//
+//  AlivcImage.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/10/10.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AlivcImage: NSObject
+
+/**
+ 更改默认的bundle名称,默认为各模块Alivc+XXX+Image
+ 请谨慎使用,确保你传入的参数,工程中有这个资源,保持bundle中的图片命名一致
+ @param bundleName 要变更的bundle名称
+ */
++ (void)setImageBundleName:(NSString *)bundleName;
+
+/**
+ 根据名称返回图片
+ 
+ @param imageName 图片的名称
+ @return 返回一个图片名称对应的图片实例
+ */
++ (UIImage *__nullable)imageNamed:(NSString *)imageName;
+
+
+@end
+NS_ASSUME_NONNULL_END

+ 25 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcImage.m

@@ -0,0 +1,25 @@
+//
+//  AlivcImage.m
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/10/10.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "AlivcImage.h"
+
+static NSString *theBundleName = @"Null";
+
+@implementation AlivcImage
+
++ (void)setImageBundleName:(NSString *)bundleName{
+    theBundleName = bundleName;
+}
+
++ (UIImage *)imageNamed:(NSString *)imageName{
+    NSString *path = [NSString stringWithFormat:@"%@.bundle/%@",theBundleName,imageName];
+    UIImage *image = [UIImage imageNamed:path];
+    return image;
+}
+
+@end

+ 111 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcMacro.h

@@ -0,0 +1,111 @@
+//
+//  AlivcMacro.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/10/17.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#ifndef AlivcMacro_h
+#define AlivcMacro_h
+
+ 
+#define kAlivcProductType AlivcOutputProductTypeSmartVideo 
+ 
+
+
+// Include any system framework and library headers here that should be included in all compilation units.
+// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
+#define ScreenWidth  [UIScreen mainScreen].bounds.size.width
+#define ScreenHeight  [UIScreen mainScreen].bounds.size.height
+#define SizeWidth(W) (W *CGRectGetWidth([[UIScreen mainScreen] bounds])/320)
+#define SizeHeight(H) (H *(ScreenHeight)/568)
+#define RGBToColor(R,G,B)  [UIColor colorWithRed:(R * 1.0) / 255.0 green:(G * 1.0) / 255.0 blue:(B * 1.0) / 255.0 alpha:1.0]
+#define rgba(R,G,B,A)  [UIColor colorWithRed:(R * 1.0) / 255.0 green:(G * 1.0) / 255.0 blue:(B * 1.0) / 255.0 alpha:A]
+
+
+#define BundleID [[NSBundle mainBundle] bundleIdentifier]
+//#define BundleID @"com.aliyun.apsaravideo"
+
+//#define BundleID @"com.aliyun.aliyunvideosdkpro"
+// 注释为Release版
+//#define kQPEnableDevNetwork
+
+#ifdef kQPEnableDevNetwork
+#define kQPResourceHostUrl @"https://alivc-demo.aliyuncs.com"
+#else
+#define kQPResourceHostUrl @"https://alivc-demo.aliyuncs.com"
+#endif
+
+#define kIntroduceUrl @"https://alivc-demo.aliyuncs.com/td.html"
+
+#define IS_IPHONEX (([[UIScreen mainScreen] bounds].size.height<812)?NO:YES)
+#define SafeTop (([[UIScreen mainScreen] bounds].size.height<812) ? 20 : 44)
+#define SafeBottom (([[UIScreen mainScreen] bounds].size.height<812) ? 0 : 34)
+#define SafeBeautyBottom (([[UIScreen mainScreen] bounds].size.height<812) ? 0 : 12)
+#define StatusBarHeight (([[UIScreen mainScreen] bounds].size.height<812) ? 20 : 44)
+#define NoStatusBarSafeTop (IS_IPHONEX ? 44 : 0)
+
+#define KquTabBarHeight  (IS_IPHONEX ? 100 : 0)
+
+//#define SafeAreaTop \
+//^double(){\
+//    if (@available(iOS 11.0, *)) { \
+//        return [UIApplication sharedApplication].keyWindow.safeAreaInsets.top; \
+//    } else { \
+//        return 20.0; \
+//    } \
+//}()\
+
+#define SafeAreaBottom \
+^double(){\
+    if (@available(iOS 11.0, *)) { \
+        return [UIApplication sharedApplication].keyWindow.safeAreaInsets.bottom; \
+    } else { \
+        return 0.0; \
+    } \
+}()\
+
+
+#endif
+
+// pushflow
+#define AlivcScreenWidth  [UIScreen mainScreen].bounds.size.width
+#define AlivcScreenHeight  [UIScreen mainScreen].bounds.size.height
+#define AlivcSizeWidth(W) (W*(AlivcScreenWidth)/320)
+#define AlivcSizeHeight(H) (H*(AlivcScreenHeight)/568)
+
+/* 获取系统版本号 */
+#define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
+
+#define IOS_iOS10 IOS_VERSION >= 10.0 ? YES:NO
+
+#define IOS_iOS9 IOS_VERSION >= 9.0 ? YES:NO
+
+#define IOS_iOS8 IOS_VERSION >= 8.0 ? YES:NO
+
+#define IPHONEX (([[UIScreen mainScreen] bounds].size.height<812)?NO:YES)
+
+#define AlivcRGB(R,G,B)  [UIColor colorWithRed:(R * 1.0) / 255.0 green:(G * 1.0) / 255.0 blue:(B * 1.0) / 255.0 alpha:1.0]
+#define AlivcRGBA(R,G,B,A)  [UIColor colorWithRed:(R * 1.0) / 255.0 green:(G * 1.0) / 255.0 blue:(B * 1.0) / 255.0 alpha:A]
+
+#define AlivcOxRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
+
+#define AlivcOxRGBA(rgbValue,A) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:A]
+
+
+#define AlivcUserDefaultsIndentifierFirst @"AlivcUserDefaultsIndentifierFirst"
+
+
+//不同设备的屏幕比例
+#define SizeScale ((AlivcScreenHeight > 568) ? AlivcScreenHeight/568 : 1)
+//字幕模块文字大小根据屏幕分辨率适配
+#define PasterInputViewFontSize 18.0*SizeScale
+
+
+//互动白板
+#define kAppID @"sh-hrjbxns6"
+#define kUserID @"wangxingge"
+
+
+/* AlivcMacro_h */

+ 27 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcUIConfig.h

@@ -0,0 +1,27 @@
+//
+//  AlivcUIConfig.h
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/4/8.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AlivcUIConfig : NSObject
+
++ (instancetype)shared;
+
+/**
+ 背景颜色
+ */
+@property (strong, nonatomic, readonly) UIColor *kAVCBackgroundColor;
+
+
+/**
+ 系统色
+ */
+@property (strong, nonatomic, readonly) UIColor *kAVCThemeColor;
+
+
+@end

+ 40 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AlivcUIConfig.m

@@ -0,0 +1,40 @@
+//
+//  AlivcUIConfig.m
+//  AliyunVideoClient_Entrance
+//
+//  Created by Zejian Cai on 2018/4/8.
+//  Copyright © 2018年 Alibaba. All rights reserved.
+//
+
+#import "AlivcUIConfig.h"
+#import "UIColor+AlivcHelper.h"
+
+static AlivcUIConfig *sharedIns = nil;
+
+@implementation AlivcUIConfig
+
++ (instancetype)shared{
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        if (!sharedIns) {
+            sharedIns = [[AlivcUIConfig alloc]_init];
+        }
+    });
+    return sharedIns;
+}
+
+- (instancetype)init{
+    @throw [NSException exceptionWithName:@"AlivcUIConfig init error" reason:@"'shared' to get instance." userInfo:nil];
+    return [super init];
+}
+
+- (instancetype)_init {
+    self = [super init];
+    if (self) {
+        _kAVCBackgroundColor = [UIColor colorWithHexString:@"1e222d"];
+        _kAVCThemeColor = [UIColor colorWithHexString:@"00c1de"];
+    }
+    return self;
+}
+
+@end

+ 63 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AliyunReachability.h

@@ -0,0 +1,63 @@
+/*
+ Copyright (C) 2016 Apple Inc. All Rights Reserved.
+ See LICENSE.txt for this sample’s licensing information
+ 
+ Abstract:
+ Basic demonstration of how to use the SystemConfiguration Reachablity APIs.
+ */
+// 检测网络环境
+
+#import <Foundation/Foundation.h>
+#import <SystemConfiguration/SystemConfiguration.h>
+#import <netinet/in.h>
+
+#pragma mark IPv6 Support
+//Reachability fully support IPv6.  For full details, see ReadMe.md.
+
+typedef NS_ENUM(int, AliyunPVNetworkStatus) {
+    AliyunPVNetworkStatusNotReachable = 0,
+    AliyunPVNetworkStatusReachableViaWiFi,
+    AliyunPVNetworkStatusReachableViaWWAN
+};
+
+extern NSString *AliyunPVReachabilityChangedNotification;
+
+
+@interface AliyunReachability : NSObject
+
+/*!
+ * Use to check the reachability of a given host name.
+ */
++ (instancetype)reachabilityWithHostName:(NSString *)hostName;
+
+/*!
+ * Use to check the reachability of a given IP address.
+ */
++ (instancetype)reachabilityWithAddress:(const struct sockaddr *)hostAddress;
+
+/*!
+ * Checks whether the default route is available. Should be used by applications that do not connect to a particular host.
+ */
++ (instancetype)reachabilityForInternetConnection;
+
+
+#pragma mark reachabilityForLocalWiFi
+//reachabilityForLocalWiFi has been removed from the sample.  See ReadMe.md for more information.
+//+ (instancetype)reachabilityForLocalWiFi;
+
+/*!
+ * Start listening for reachability notifications on the current run loop.
+ */
+- (BOOL)startNotifier;
+- (void)stopNotifier;
+
+- (AliyunPVNetworkStatus)currentReachabilityStatus;
+
+/*!
+ * WWAN may be available, but not active until a connection has been established. WiFi may require a connection for VPN on Demand.
+ */
+- (BOOL)connectionRequired;
+
+@end
+
+

+ 212 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/AliyunVideo/Config/AliyunReachability.m

@@ -0,0 +1,212 @@
+/*
+ Copyright (C) 2016 Apple Inc. All Rights Reserved.
+ See LICENSE.txt for this sample’s licensing information
+ 
+ Abstract:
+ Basic demonstration of how to use the SystemConfiguration Reachablity APIs.
+ */
+
+#import <arpa/inet.h>
+#import <ifaddrs.h>
+#import <netdb.h>
+#import <sys/socket.h>
+#import <netinet/in.h>
+
+#import <CoreFoundation/CoreFoundation.h>
+
+#import "AliyunReachability.h"
+#pragma mark IPv6 Support
+//Reachability fully support IPv6.  For full details, see ReadMe.md.
+
+
+NSString *AliyunPVReachabilityChangedNotification = @"kNetworkReachabilityChangedNotification";
+
+
+#pragma mark - Supporting functions
+
+#define kShouldPrintReachabilityFlags 0
+
+static void ALPVPrintReachabilityFlags(SCNetworkReachabilityFlags flags, const char* comment) {
+#if kShouldPrintReachabilityFlags
+
+    NSLog(@"AliyunPVReachability Flag Status: %c%c %c%c%c%c%c%c%c %s\n",
+          (flags & kSCNetworkReachabilityFlagsIsWWAN)				? 'W' : '-',
+          (flags & kSCNetworkReachabilityFlagsReachable)            ? 'R' : '-',
+
+          (flags & kSCNetworkReachabilityFlagsTransientConnection)  ? 't' : '-',
+          (flags & kSCNetworkReachabilityFlagsConnectionRequired)   ? 'c' : '-',
+          (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic)  ? 'C' : '-',
+          (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-',
+          (flags & kSCNetworkReachabilityFlagsConnectionOnDemand)   ? 'D' : '-',
+          (flags & kSCNetworkReachabilityFlagsIsLocalAddress)       ? 'l' : '-',
+          (flags & kSCNetworkReachabilityFlagsIsDirect)             ? 'd' : '-',
+          comment
+          );
+#endif
+}
+
+
+static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info) {
+#pragma unused (target, flags)
+	NSCAssert(info != NULL, @"info was NULL in ReachabilityCallback");
+	NSCAssert([(__bridge NSObject*) info isKindOfClass: [AliyunReachability class]], @"info was wrong class in ReachabilityCallback");
+
+    AliyunReachability* noteObject = (__bridge AliyunReachability *)info;
+    // Post a notification to notify the client that the network reachability changed.
+    [[NSNotificationCenter defaultCenter] postNotificationName: AliyunPVReachabilityChangedNotification object: noteObject];
+}
+
+
+#pragma mark - Reachability implementation
+
+@implementation AliyunReachability {
+	SCNetworkReachabilityRef _reachabilityRef;
+}
+
++ (instancetype)reachabilityWithHostName:(NSString *)hostName {
+	AliyunReachability* returnValue = NULL;
+	SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, [hostName UTF8String]);
+	if (reachability != NULL) {
+		returnValue= [[self alloc] init];
+		if (returnValue != NULL) {
+			returnValue->_reachabilityRef = reachability;
+		} else {
+            CFRelease(reachability);
+        }
+	}
+	return returnValue;
+}
+
+
++ (instancetype)reachabilityWithAddress:(const struct sockaddr *)hostAddress {
+	SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, hostAddress);
+
+	AliyunReachability* returnValue = NULL;
+
+	if (reachability != NULL) {
+		returnValue = [[self alloc] init];
+		if (returnValue != NULL) {
+			returnValue->_reachabilityRef = reachability;
+		} else {
+            CFRelease(reachability);
+        }
+	}
+	return returnValue;
+}
+
+
++ (instancetype)reachabilityForInternetConnection {
+	struct sockaddr_in zeroAddress;
+	bzero(&zeroAddress, sizeof(zeroAddress));
+	zeroAddress.sin_len = sizeof(zeroAddress);
+	zeroAddress.sin_family = AF_INET;
+    
+    return [self reachabilityWithAddress: (const struct sockaddr *) &zeroAddress];
+}
+
+#pragma mark reachabilityForLocalWiFi
+//reachabilityForLocalWiFi has been removed from the sample.  See ReadMe.md for more information.
+//+ (instancetype)reachabilityForLocalWiFi
+
+
+
+#pragma mark - Start and stop notifier
+
+- (BOOL)startNotifier {
+	BOOL returnValue = NO;
+	SCNetworkReachabilityContext context = {0, (__bridge void *)(self), NULL, NULL, NULL};
+
+	if (SCNetworkReachabilitySetCallback(_reachabilityRef, ReachabilityCallback, &context)) {
+		if (SCNetworkReachabilityScheduleWithRunLoop(_reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)) {
+			returnValue = YES;
+		}
+	}
+    
+	return returnValue;
+}
+
+
+- (void)stopNotifier {
+	if (_reachabilityRef != NULL) {
+		SCNetworkReachabilityUnscheduleFromRunLoop(_reachabilityRef, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
+	}
+}
+
+
+- (void)dealloc {
+	[self stopNotifier];
+	if (_reachabilityRef != NULL) {
+		CFRelease(_reachabilityRef);
+	}
+}
+
+
+#pragma mark - Network Flag Handling
+
+- (AliyunPVNetworkStatus)networkStatusForFlags:(SCNetworkReachabilityFlags)flags {
+	ALPVPrintReachabilityFlags(flags, "networkStatusForFlags");
+	if ((flags & kSCNetworkReachabilityFlagsReachable) == 0) {
+		// The target host is not reachable.
+		return AliyunPVNetworkStatusNotReachable;
+	}
+
+    AliyunPVNetworkStatus returnValue = AliyunPVNetworkStatusNotReachable;
+
+	if ((flags & kSCNetworkReachabilityFlagsConnectionRequired) == 0) {
+		/*
+         If the target host is reachable and no connection is required then we'll assume (for now) that you're on Wi-Fi...
+         */
+		returnValue = AliyunPVNetworkStatusReachableViaWiFi;
+	}
+
+	if ((((flags & kSCNetworkReachabilityFlagsConnectionOnDemand ) != 0) ||
+        (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) != 0)) {
+        /*
+         ... and the connection is on-demand (or on-traffic) if the calling application is using the CFSocketStream or higher APIs...
+         */
+
+        if ((flags & kSCNetworkReachabilityFlagsInterventionRequired) == 0) {
+            /*
+             ... and no [user] intervention is needed...
+             */
+            returnValue = AliyunPVNetworkStatusReachableViaWiFi;
+        }
+    }
+
+	if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN) {
+		/*
+         ... but WWAN connections are OK if the calling application is using the CFNetwork APIs.
+         */
+		returnValue = AliyunPVNetworkStatusReachableViaWWAN;
+	}
+    
+	return returnValue;
+}
+
+
+- (BOOL)connectionRequired {
+	NSAssert(_reachabilityRef != NULL, @"connectionRequired called with NULL reachabilityRef");
+	SCNetworkReachabilityFlags flags;
+
+	if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags)) {
+		return (flags & kSCNetworkReachabilityFlagsConnectionRequired);
+	}
+
+    return NO;
+}
+
+
+- (AliyunPVNetworkStatus)currentReachabilityStatus {
+	NSAssert(_reachabilityRef != NULL, @"currentNetworkStatus called with NULL SCNetworkReachabilityRef");
+	AliyunPVNetworkStatus returnValue = AliyunPVNetworkStatusNotReachable;
+	SCNetworkReachabilityFlags flags;
+    
+	if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags)) {
+        returnValue = [self networkStatusForFlags:flags];
+	}
+    
+	return returnValue;
+}
+
+
+@end