master
孔德腾 4 years ago
commit 53088f3c76
  1. 1
      app/.gitignore
  2. 223
      app/app.iml
  3. 269
      app/build.gradle
  4. BIN
      app/libs/AlivcPlayer-3.4.9.aar
  5. BIN
      app/libs/AlivcPlayer.aar
  6. BIN
      app/libs/AlivcReporter-1.2.aar
  7. BIN
      app/libs/AlivcReporter.aar
  8. BIN
      app/libs/AliyunVodPlayer-3.4.9.aar
  9. BIN
      app/libs/WbCloudFaceLiveSdk-v3.1.7-677a4796.aar
  10. BIN
      app/libs/WbCloudNormal-v4.0.10-1e5e27e.aar
  11. BIN
      app/libs/WbCloudNormal-v4.0.4-22f2b1b.aar
  12. BIN
      app/libs/WbCloudOcrSdk-pro-release-v2.3.43.aar
  13. BIN
      app/libs/alivc-core-pusher.aar
  14. BIN
      app/libs/arm64-v8a/libAliEffectModule.so
  15. BIN
      app/libs/arm64-v8a/libAliFaceAlignmentModule.so
  16. BIN
      app/libs/arm64-v8a/libalivc_audio.so
  17. BIN
      app/libs/arm64-v8a/libbdpush_V2_9.so
  18. BIN
      app/libs/arm64-v8a/liblive-beauty.so
  19. BIN
      app/libs/arm64-v8a/liblive-face.so
  20. BIN
      app/libs/arm64-v8a/liblive-fdkaac.so
  21. BIN
      app/libs/arm64-v8a/liblive-openh264.so
  22. BIN
      app/libs/arm64-v8a/liblive-pusher.so
  23. BIN
      app/libs/arm64-v8a/liblive-rtmp.so
  24. BIN
      app/libs/armeabi-v7a/libAliEffectModule.so
  25. BIN
      app/libs/armeabi-v7a/libAliFaceAlignmentModule.so
  26. BIN
      app/libs/armeabi-v7a/libalivc_audio.so
  27. BIN
      app/libs/armeabi-v7a/libbdpush_V2_9.so
  28. BIN
      app/libs/armeabi-v7a/liblive-beauty.so
  29. BIN
      app/libs/armeabi-v7a/liblive-face.so
  30. BIN
      app/libs/armeabi-v7a/liblive-fdkaac.so
  31. BIN
      app/libs/armeabi-v7a/liblive-openh264.so
  32. BIN
      app/libs/armeabi-v7a/liblive-pusher.so
  33. BIN
      app/libs/armeabi-v7a/liblive-rtmp.so
  34. BIN
      app/libs/armeabi/libbdpush_V2_9.so
  35. BIN
      app/libs/live-beauty-3.3.5.jar
  36. BIN
      app/libs/live-face-3.3.5.jar
  37. BIN
      app/libs/live-pusher-3.3.5.jar
  38. BIN
      app/libs/live-pusher-resources-3.3.5.aar
  39. BIN
      app/libs/mips/libbdpush_V2_9.so
  40. BIN
      app/libs/mips64/libbdpush_V2_9.so
  41. BIN
      app/libs/pushservice-6.5.0.75.jar
  42. BIN
      app/libs/x86/libbdpush_V2_9.so
  43. BIN
      app/libs/x86_64/libbdpush_V2_9.so
  44. 49
      app/proguard-rules.pro
  45. 861
      app/src/main/AndroidManifest.xml
  46. 34853
      app/src/main/assets/address.json
  47. BIN
      app/src/main/assets/card_bg/card_num.png
  48. BIN
      app/src/main/assets/card_bg/card_stored.png
  49. BIN
      app/src/main/assets/card_bg/card_time.png
  50. BIN
      app/src/main/assets/font/source.OTF
  51. 6
      app/src/main/assets/img_style.css
  52. 14
      app/src/main/assets/my_editor.html
  53. 413
      app/src/main/assets/my_normalize.css
  54. 366
      app/src/main/assets/my_rich_editor.js
  55. 49
      app/src/main/assets/my_style.css
  56. 102
      app/src/main/assets/pdf.html
  57. 24624
      app/src/main/assets/pdf/pdf.js
  58. 56199
      app/src/main/assets/pdf/pdf.worker.js
  59. 5354
      app/src/main/assets/province.json
  60. 34858
      app/src/main/assets/shopAddress.json
  61. BIN
      app/src/main/assets/vc_resource/background_push.png
  62. BIN
      app/src/main/assets/vc_resource/background_push_land.jpg
  63. BIN
      app/src/main/assets/vc_resource/background_push_land.png
  64. BIN
      app/src/main/assets/vc_resource/poor_network.png
  65. BIN
      app/src/main/assets/vc_resource/poor_network_land.jpg
  66. BIN
      app/src/main/assets/vc_resource/poor_network_land.png
  67. BIN
      app/src/main/assets/vc_resource/watermark.png
  68. 86
      app/src/main/java/com/zhilian/live/adapter/GoodsRecommendAdapter.java
  69. 51
      app/src/main/java/com/zhilian/live/adapter/HomePageAdapter.java
  70. 140
      app/src/main/java/com/zhilian/live/adapter/LiveMsgAdapter.java
  71. 35
      app/src/main/java/com/zhilian/live/adapter/PopContextMenuAdapter.java
  72. 43
      app/src/main/java/com/zhilian/live/adapter/VideoCourseChildAddTutorAdapter.java
  73. 42
      app/src/main/java/com/zhilian/live/adapter/VideoCourseDetailAdapter.java
  74. 54
      app/src/main/java/com/zhilian/live/adapter/VideoCourseHistorySearchAdapter.java
  75. 62
      app/src/main/java/com/zhilian/live/adapter/VideoCourseListAdapter.java
  76. 101
      app/src/main/java/com/zhilian/live/adapter/VideoCourseSpecAdapter.java
  77. 37
      app/src/main/java/com/zhilian/live/adapter/VideoCourseUploadItemAdapter.java
  78. 77
      app/src/main/java/com/zhilian/live/adapter/VideoCourseUploadListAdapter.java
  79. 154
      app/src/main/java/com/zhilian/live/adapter/VideoPickerAdapter.java
  80. 121
      app/src/main/java/com/zhilian/live/adapter/base/GCBaseExpandableListAdapter.java
  81. 218
      app/src/main/java/com/zhilian/live/adapter/base/ViewHolder.java
  82. 246
      app/src/main/java/com/zhilian/live/api/LiveApiConstants.java
  83. 110
      app/src/main/java/com/zhilian/live/bean/AgreementBean.java
  84. 127
      app/src/main/java/com/zhilian/live/bean/BillBean.java
  85. 168
      app/src/main/java/com/zhilian/live/bean/EditLiveCourseBean.java
  86. 253
      app/src/main/java/com/zhilian/live/bean/EditSeriesCourseBean.java
  87. 68
      app/src/main/java/com/zhilian/live/bean/EditVideoCourseBean.java
  88. 188
      app/src/main/java/com/zhilian/live/bean/IncomeStatisticsBean.java
  89. 127
      app/src/main/java/com/zhilian/live/bean/LiveMsgBean.java
  90. 133
      app/src/main/java/com/zhilian/live/bean/LivePusherConfigBean.java
  91. 64
      app/src/main/java/com/zhilian/live/bean/PopMenuBean.java
  92. 64
      app/src/main/java/com/zhilian/live/bean/ResultBean.java
  93. 79
      app/src/main/java/com/zhilian/live/bean/SecurityTokenBean.java
  94. 203
      app/src/main/java/com/zhilian/live/bean/SeriesCourseBean.java
  95. 178
      app/src/main/java/com/zhilian/live/bean/SeriesCourseDetailBean.java
  96. 197
      app/src/main/java/com/zhilian/live/bean/SeriesCourseManagerBean.java
  97. 375
      app/src/main/java/com/zhilian/live/bean/SeriesCourseSelectBean.java
  98. 116
      app/src/main/java/com/zhilian/live/bean/TabClassBean.java
  99. 48
      app/src/main/java/com/zhilian/live/bean/TutorApplyStateBean.java
  100. 282
      app/src/main/java/com/zhilian/live/bean/TutorCenterBean.java
  101. Some files were not shown because too many files have changed in this diff Show More

1
app/.gitignore vendored

@ -0,0 +1 @@
/build

@ -0,0 +1,223 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":app" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.2.1" />
<option name="LAST_KNOWN_AGP_VERSION" value="3.2.1" />
</configuration>
</facet>
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<afterSyncTasks>
<task>generateDebugSources</task>
</afterSyncTasks>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/build/generated/res/rs/debug;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
<option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<output url="file://$MODULE_DIR$/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="jdk" jdkName="Android API 28 Platform (2)" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:2.2.2@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support:multidex-instrumentation:1.0.2@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules:0.5@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:0.5@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:2.2.2@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish:0.5@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support:multidex:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\project\xlj4.0\app\libs\live-beauty-3.3.5.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\project\xlj4.0\app\libs\live-face-3.3.5.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\project\xlj4.0\app\libs\live-pusher-3.3.5.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:D.\project\xlj4.0\app\libs\pushservice-6.5.0.75.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.6@jar" level="project" />
<orderEntry type="library" name="Gradle: com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.4.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.alibaba:fastjson:1.1.34.android@jar" level="project" />
<orderEntry type="library" name="Gradle: de.greenrobot:eventbus:2.4.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.nostra13.universalimageloader:universal-image-loader:1.9.3@jar" level="project" />
<orderEntry type="library" name="Gradle: com.aliyun.video.android:upload:1.5.5@jar" level="project" />
<orderEntry type="library" name="Gradle: com.jakewharton:butterknife-annotations:8.8.1@jar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1@jar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.0.2@jar" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxjava:2.0.5@jar" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex:rxjava:1.2.3@jar" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.11.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.promeg:tinypinyin:1.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.8.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:annotations:4.8.0@jar" level="project" />
<orderEntry type="library" name="Gradle: androidx.annotation:annotation:1.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.14.0@jar" level="project" />
<orderEntry type="library" name="Gradle: org.reactivestreams:reactive-streams:1.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.prolificinteractive:material-calendarview:1.4.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.alibaba.android:vlayout:1.2.8@aar" level="project" />
<orderEntry type="library" name="Gradle: cn.yipianfengye.android:zxing-library:2.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.jph.takephoto:takephoto_library:4.0.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.soundcloud.android.crop:lib_crop:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: me.shaohui.advancedluban:library:1.3.5@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-v4:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:design:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.jude:swipebackhelper:3.1.2@aar" level="project" />
<orderEntry type="library" name="Gradle: vip.devkit:common.widget:2.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: vip.devkit:common.util:1.0.9@aar" level="project" />
<orderEntry type="library" name="Gradle: vip.devkit:common.share:1.1.3@aar" level="project" />
<orderEntry type="library" name="Gradle: pub.devrel:easypermissions:0.2.0@aar" level="project" />
<orderEntry type="library" name="Gradle: me.weyye.hipermission:library:1.0.7@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.Hitomis:CrazyShadow:v1.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.QuadFlask:colorpicker:0.0.13@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.paradoxie:AutoVerticalTextview:0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: vip.devkit.common:imagepicker:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: vip.devkit.widget:layout-state:2.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: cn.yc:YCVideoPlayerLib:2.6.6@aar" level="project" />
<orderEntry type="library" name="Gradle: com.darsh.multipleimageselect:multipleimageselect:1.0.4@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:cardview-v7:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.yanzhenjie:recyclerview-swipe:1.1.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.makeramen:roundedimageview:2.3.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.contrarywind:Android-PickerView:4.1.9@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30@aar" level="project" />
<orderEntry type="library" name="Gradle: com.blankj:utilcode:1.15.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-22@aar" level="project" />
<orderEntry type="library" name="Gradle: com.hyman:flowlayout-lib:1.1.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.jakewharton.rxbinding2:rxbinding:2.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.dmytrodanylyk.shadow-layout:library:1.0.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.lygttpod:SuperTextView:2.1.7@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:multidex:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.zcweng:switch-button:0.0.3@aar" level="project" />
<orderEntry type="library" name="Gradle: top.zibin:Luban:1.1.8@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide:4.8.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.PhilJay:MPAndroidChart:v3.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: :AlivcPlayer-3.4.9:@aar" level="project" />
<orderEntry type="library" name="Gradle: :AlivcReporter-1.2:@aar" level="project" />
<orderEntry type="library" name="Gradle: :AliyunVodPlayer-3.4.9:@aar" level="project" />
<orderEntry type="library" name="Gradle: :live-pusher-resources-3.3.5:@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.lzyzsd:jsbridge:1.0.4@aar" level="project" />
<orderEntry type="library" name="Gradle: com.jakewharton:butterknife:8.8.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:transition:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:drawerlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-media-compat:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.contrarywind:wheelview:4.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.8.0@aar" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid:2.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.yanzhenjie:loading:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex:rxandroid:1.2.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.aliyun.dpa:oss-android-sdk:2.9.3@aar" level="project" />
<orderEntry type="library" name="Gradle: com.hjq:xxpermissions:5.2@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.chrisbanes.photoview:library:1.2.4@aar" level="project" />
<orderEntry type="library" name="Gradle: tv.danmaku.ijk.media:ijkplayer-java:0.8.8@aar" level="project" />
<orderEntry type="library" name="Gradle: tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.4@aar" level="project" />
<orderEntry type="module" module-name="datepicker" />
<orderEntry type="module" module-name="indexlib" />
<orderEntry type="module" module-name="marqueelibrary" />
<orderEntry type="module" module-name="comm" />
<orderEntry type="module" module-name="netlib" />
<orderEntry type="module" module-name="richeditor" />
</component>
</module>

@ -0,0 +1,269 @@
apply plugin: 'com.android.application'
android {
signingConfigs {
config {
keyAlias 'YogaKey'
keyPassword 'Yoga@xianlian123'
storeFile file('../appInfo/yoga.jks')
storePassword 'Yoga@xianlian123'
}
}
compileSdkVersion 28
defaultConfig {
applicationId "com.zhilian.s8"
minSdkVersion 19
targetSdkVersion 28
versionCode 62
versionName "v_4.2.0"
signingConfig signingConfigs.config
ndk {
abiFilters 'armeabi', 'x86', 'armeabi-v7a', 'arm64-v8a'// 'x86_64', 'arm64-v8a'
}
manifestPlaceholders = [
qq_id: "1107730555" // QQ APP ID
]
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
//apk重命名
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "小蓝鲸健康_${variant.name}_${variant.versionName}_${new Date().format("yyyyMMddHHmm")}.apk"
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.config
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.config
}
}
/*allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}*/
lintOptions {
checkReleaseBuilds false
abortOnError false
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/notice.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INFTICE.txt'
exclude 'META-INF/maven/data.domybox.com/data.sdk/pom.properties'
exclude 'META-INF/maven/data.domybox.com/data.sdk/pom.xml'
exclude 'META-INF/rxjava.properties'
exclude 'META-INF/proguard/androidx-annotations.pro'
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
// res.srcDirs = ['src/main/res', 'src/main/res_im', 'src/main/res-rp'] //
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
buildscript {
repositories {
flatDir {
dirs 'libs', projectDir.getPath() + "/libs"
}
jcenter()
mavenCentral()
}
}
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
androidTestApi('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testApi 'junit:junit:4.12'
api 'com.android.support:support-v4:28.0.0'
api 'com.android.support:appcompat-v7:28.0.0'
api 'com.android.support:design:28.0.0'
api 'com.android.support:cardview-v7:28.0.0'
api 'com.android.support:recyclerview-v7:28.0.0'
api 'com.android.support.constraint:constraint-layout:1.0.2'
api 'com.prolificinteractive:material-calendarview:1.4.3'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
api 'com.google.code.gson:gson:2.8.0'
api 'com.jude:swipebackhelper:3.1.2'
api 'com.jph.takephoto:takephoto_library:4.0.3'
api 'me.shaohui.advancedluban:library:1.3.5'
api 'com.makeramen:roundedimageview:2.3.0'
api 'com.contrarywind:Android-PickerView:4.1.9'
api 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
api 'com.alibaba:fastjson:1.1.34.android'
api 'vip.devkit:common.widget:2.0.2'
api 'vip.devkit:common.util:1.0.9'
api 'de.greenrobot:eventbus:2.4.0'
api('com.alibaba.android:vlayout:1.2.8@aar') {
transitive = true
}
api 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
api 'com.yanzhenjie:recyclerview-swipe:1.1.2'
api project(':datepicker')
// compile 'com.android.support:design:24.1.1'
api('cn.yipianfengye.android:zxing-library:2.2') {
exclude module: 'support-v4'
exclude group: 'com.android.support'
}
api 'com.blankj:utilcode:1.15.1'
api 'vip.devkit:common.share:1.1.3'
//
api 'pub.devrel:easypermissions:0.2.0'
//
api 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-22'
//
api 'cn.yipianfengye.android:zxing-library:2.2'
//
api 'me.weyye.hipermission:library:1.0.7'
//flowLayout
api 'com.hyman:flowlayout-lib:1.1.2'
//tablayout
api 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar'
//rxbinding
api 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
//
api project(':indexlib')
//layout
api 'com.github.dmytrodanylyk.shadow-layout:library:1.0.3'
//cardView
//rxtool
// compile('com.github.vondear:RxTools:v1.7.3.4') {
// exclude group: 'com.google.code.gson'
// exclude group: 'com.tencent.mm.opensdk'
// }// Application中初始化 RxUtils.init(this);
//supertextview
api 'com.github.lygttpod:SuperTextView:2.1.7'
//
api 'com.android.support:multidex:1.0.0'
//ios switch
api 'com.github.zcweng:switch-button:0.0.3@aar'
api 'com.github.Hitomis:CrazyShadow:v1.0.1'
// debugCompile 'me.ele:uetool:1.0.15'
// releaseCompile 'me.ele:uet/ool-no-op:1.0.15'
// api 'com.squareup.leakcanary:leakcanary-android:1.5.4'
//
api 'top.zibin:Luban:1.1.8'
//
// api 'jp.wasabeef:richeditor-android:1.2.2'
//
api 'com.github.QuadFlask:colorpicker:0.0.13'
//textview
api 'com.github.paradoxie:AutoVerticalTextview:0.1'
// compile 'com.gongwen:marqueelibrary:1.1.3'
//compile 'com.sunfusheng:marqueeview:1.3.3'
//
api 'com.jph.takephoto:takephoto_library:4.0.0'
//rxjava
// api 'io.reactivex.rxjava2:rxjava:2.0.0'
// api 'org.reactivestreams:reactive-streams:1.0.0'
//
api 'com.github.bumptech.glide:glide:4.8.0'
api 'com.github.PhilJay:MPAndroidChart:v3.1.0'
api project(':comm')
api project(':marqueelibrary')
api project(':datepicker')
api project(':comm')
api project(':netlib')
api files('libs/pushservice-6.5.0.75.jar')
// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-alpha-1'
// api 'com.squareup.leakcanary:leakcanary-android:1.6.3'
//// releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3'
// // Optional, if you use support library fragments:
// api 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.3'
//js与java互调
compile('com.github.lzyzsd:jsbridge:1.0.4') {
exclude group: 'com.android.support' //exclude lib冲突的问题
}
implementation project(path: ':richeditor')
api 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
//url转为二维码
//compile 'com.google.zxing:core:3.3.0 '
implementation project(path: ':richeditor')
api(name: 'AlivcPlayer-3.4.9', ext: 'aar')
api(name: 'AlivcReporter-1.2', ext: 'aar')
api(name: 'AliyunVodPlayer-3.4.9', ext: 'aar')
api(name: 'live-pusher-resources-3.3.5', ext: 'aar') {
exclude group: 'com.android.support' //exclude lib冲突的问题
}
api files('libs/live-face-3.3.5.jar')
api files('libs/live-beauty-3.3.5.jar')
api files('libs/live-pusher-3.3.5.jar')
implementation 'com.aliyun.video.android:upload:1.5.5'
api(name: 'WbCloudOcrSdk-pro-release-v2.3.43', ext: 'aar')
// compile(name: 'WbCloudNormal-v4.0.4-22f2b1b', ext: 'aar')
//1. SDK
api(name: 'WbCloudFaceLiveSdk-v3.1.7-677a4796', ext: 'aar')
//2. common SDK
api(name: 'WbCloudNormal-v4.0.10-1e5e27e', ext: 'aar')
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,49 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/xianlian/Library/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-include webank-cloud-ocr-rules.pro
-include webank-cloud-normal-rules.pro
-include webank-cloud-face-sdk-rules.pro
-dontwarn okio.**
# aliyun live
-keep class com.alibaba.livecloud.** { *;}
-keep class com.alivc.** { *;}
# permissions
-dontwarn com.hjq.permissions.**
########云产品依赖的第三方库 混淆规则-BEGIN############
## support:appcompat-v7
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }
-keep public class * extends android.support.v4.view.ActionProvider {
public <init>(android.content.Context);
}
#########云产品依赖的第三方库 混淆规则-END#############

@ -0,0 +1,861 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.zhilian.s8">
<!-- Push service 运行需要的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<!-- 富媒体需要声明的权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 适配Android N系统必需的ContentProvider写权限声明,写权限包含应用包名 -->
<uses-permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.zhilian.s8" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<permission
android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.zhilian.s8"
android:protectionLevel="normal" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Optional. Required for location feature -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- bugly所需权限 -->
<uses-permission android:name="android.permission.READ_LOGS" />
<!-- 控制手机音量 -->
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<uses-permission android:name="android.permission.SEND_SMS" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<application
android:name="com.zhilian.s8.globle.AppContext"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/MainTheme"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:theme, android:allowBackup" >
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<activity
android:name="com.zhilian.s8.SplashActivity"
android:screenOrientation="portrait"
android:theme="@style/ThemeSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 引导页 -->
<activity android:name="com.zhilian.s8.Activity.GuideActivity" />
<!-- 主页 -->
<activity
android:name="com.zhilian.s8.MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity android:name="com.zhilian.s8.Activity.user.YogaBaseActivity" />
<!-- 登录 -->
<!-- 教师 -->
<activity
android:name="com.zhilian.s8.Activity.teacher.TeacherActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 新增修改教师 -->
<activity
android:name="com.zhilian.s8.Activity.teacher.AddTeacherActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 查看教师 -->
<activity
android:name="com.zhilian.s8.Activity.teacher.TeacherInfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 教室列表 -->
<activity
android:name="com.zhilian.s8.Activity.classroom.ClassroomListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 新增修改教室 -->
<activity
android:name="com.zhilian.s8.Activity.classroom.AddClassroomActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 课程名称列表 -->
<activity
android:name="com.zhilian.s8.Activity.coursename.CourseNameListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 新增修改课程名称 -->
<activity
android:name="com.zhilian.s8.Activity.coursename.AddCourseNameActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 会员卡列表 -->
<activity
android:name="com.zhilian.s8.Activity.usercard.UserCardListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 新增会员卡 -->
<activity
android:name="com.zhilian.s8.Activity.usercard.AddUserCardActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 查看会员卡 -->
<activity
android:name="com.zhilian.s8.Activity.usercard.UserCardInfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 工作人员列表 -->
<activity
android:name="com.zhilian.s8.Activity.workuser.WorkUserListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 新增修改工作人员 -->
<activity
android:name="com.zhilian.s8.Activity.workuser.AddWorkUserActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 查看工作人员 -->
<activity
android:name="com.zhilian.s8.Activity.workuser.WorkUserInfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 会员列表 -->
<activity
android:name="com.zhilian.s8.Activity.user.UserListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" />
<!-- 会员(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.MemberManagerActivity"
android:screenOrientation="portrait" />
<!-- 游客列表(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.VisitorListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhilian.s8.ui.activity.member.SearchMembership2Activity"
android:screenOrientation="portrait" />
<!-- 客户详情(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.CustomerDetailsActivity"
android:screenOrientation="portrait" />
<!-- 编辑客户信息(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.CustomerInfoEditActivity"
android:screenOrientation="portrait" />
<!-- 开通会员卡(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.ApplyMembershipCardActivity"
android:screenOrientation="portrait" />
<!-- 选择会员卡(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.MembershipCardChooseActivity"
android:screenOrientation="portrait" />
<!-- 客户动向(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.trends.CustomerTrendsActivity"
android:screenOrientation="portrait" />
<!-- 交易(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.trade.CustomerBusinessActivity"
android:screenOrientation="portrait" />
<!-- 约课(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.appointment_class.AppointmentClassActivity"
android:screenOrientation="portrait" />
<!-- 约课记录(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.appointment_class.AppointmentClassHistoryActivity"
android:screenOrientation="portrait" />
<!-- 会员卡(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.membership_card.MemberCardListActivity"
android:screenOrientation="portrait" />
<!-- 会员卡延期(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.membership_card.MemberCardPostponeActivity"
android:screenOrientation="portrait" />
<!-- 会员卡充值(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.membership_card.MemberCardRechargeActivity"
android:screenOrientation="portrait" />
<!-- 会员卡详情(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.membership_card.MemberCardDetailActivity"
android:screenOrientation="portrait" />
<!-- 会员卡详情->适用门店列表(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.membership_card.MembershipShopListActivity"
android:screenOrientation="portrait" />
<!-- 跟进(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.follow_up.CustomerFollowUpActivity"
android:screenOrientation="portrait" />
<!-- 订单记录(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.trade.OrderHistoryActivity"
android:screenOrientation="portrait" />
<!-- 跟进详情(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.follow_up.FollowUpDetailsActivity"
android:screenOrientation="portrait" />
<!-- 编辑跟进详情(新版) -->
<activity
android:name="com.zhilian.s8.ui.activity.member.follow_up.FollowUpAddHtmlContentActivity"
android:screenOrientation="portrait" />
<!-- 健康档案详情 -->
<activity
android:name="com.zhilian.s8.ui.activity.member.physical_fitness.PhysicalFitnessFormDetailActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<!-- 编辑健康档案 -->
<activity
android:name="com.zhilian.s8.ui.activity.member.physical_fitness.EditPhysicalFitnessFormActivity"
android:screenOrientation="portrait" />
<!-- 新增修改会员 -->
<activity
android:name="com.zhilian.s8.Activity.user.AddUserActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 查看会员 -->
<activity
android:name="com.zhilian.s8.Activity.user.UserInfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize|adjustUnspecified|stateHidden" />
<!-- 课程详情 -->
<activity
android:name="com.zhilian.s8.Activity.CourseDetails.CourseDetailsActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 套餐 -->
<activity
android:name="com.zhilian.s8.Activity.Package.PackageAcitivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 套餐详情 -->
<activity
android:name="com.zhilian.s8.Activity.Package.PackageDetailActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 私教课程详情 -->
<activity
android:name="com.zhilian.s8.Activity.privatecourse.PrivateCourseDetailActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 课程列表 -->
<activity
android:name="com.zhilian.s8.Activity.course.CourseActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- yoga Web -->
<activity android:name="com.zhilian.s8.Activity.web.YogaWebActivity" />
<activity android:name="com.zhilian.s8.Activity.web.WebActivity" />
<!-- 添加团课 -->
<activity
android:name="com.zhilian.s8.Activity.course.AddCourseActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<!-- 会员 -->
<activity android:name="com.zhilian.s8.Activity.user.UserActivity" />
<!-- 会员卡详情 -->
<activity android:name="com.zhilian.s8.Activity.usercard.UserCardDetailsActivity" />
<!-- 添加课程标签 -->
<activity
android:name="com.zhilian.s8.Activity.coursename.CourseTagListActivity"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 创建地址 -->
<activity android:name="com.zhilian.s8.Activity.address.AddressAddActivity" />
<!-- 地址列表 -->
<activity android:name="com.zhilian.s8.Activity.address.AddressListActivity" />
<activity
android:name="com.zhilian.s8.Activity.course.CourseAddActivity"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.zhilian.s8.Activity.course.TeamCourseAddActivity"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.zhilian.s8.Activity.course.UpdatePrivateCourseActivity"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- <activity-->
<!-- android:name="com.zhilian.s8.Activity.course.UpdateTeamCourseActivity"-->
<!-- android:windowSoftInputMode="adjustPan|stateHidden" />-->
<!-- <activity android:name="com.zhilian.s8.Activity.settting.AboutActivity" />-->
<!-- 微信支付 -->
<activity
android:name="com.zhilian.s8.wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop" />
<activity android:name="com.zhilian.s8.Activity.reportRecord.CardOrderActivity" />
<activity android:name="com.zhilian.s8.Activity.reportRecord.CourseOrderActivity" />
<activity android:name="com.zhilian.s8.Activity.reportRecord.TeamCourseActivity" />
<activity android:name="com.zhilian.s8.Activity.reportRecord.PrivateCourseActivity" />
<activity android:name="com.zhilian.s8.Activity.membership.MembershipDetails" />
<activity android:name="com.zhilian.s8.Activity.membership.CreatCardActivity" />
<activity android:name="com.zhilian.s8.Activity.membership.ChangeMembershipInfo" />
<activity android:name="com.zhilian.s8.Activity.membership.ChangeSideBodyInfoActivitiy" />
<activity
android:name="com.zhilian.s8.Activity.appointmentcourse.AppointmetCourseDetails"
android:launchMode="singleTask" />
<activity android:name="com.zhilian.s8.Activity.appointmentcourse.HelpAppointmentActivity" />
<activity android:name="com.zhilian.s8.Activity.membership.CreatShopMembershipCard" />
<activity android:name="com.zhilian.s8.Activity.membership.ChioceLimitNumberActivity" />
<activity android:name="com.zhilian.s8.Activity.TestActivity" />
<activity android:name="com.zhilian.s8.Activity.share.ShareActivity" />
<activity android:name="com.zhilian.s8.Activity.membership.ChangeShopMembershipCardActivity" />
<activity android:name="com.zhilian.s8.Activity.membership.ChioceChangeLimitNumberActivity" />
<activity android:name="com.zhilian.s8.Activity.qrc.SaoErWeiMaActivity" />
<activity android:name="com.zhilian.s8.Activity.qrc.ScanResultActivity" />
<activity android:name="com.zhilian.s8.Activity.share.ShareWeekCourseActivity" />
<activity android:name="com.zhilian.s8.Activity.coursename.CourseManagementDetailsActivity" />
<activity android:name="com.zhilian.s8.Activity.coursename.AddShopCourseActivity" />
<activity android:name="com.zhilian.s8.Activity.teacher.TeacherDetailsActivity" />
<activity android:name="com.zhilian.s8.Activity.workuser.WokerUserDetilsActivity" />
<activity android:name="com.zhilian.s8.Activity.membership.ChangeMembershipCardLimitActivity" />
<activity android:name="com.zhilian.s8.Activity.user.AddMembershipActvitiy" />
<activity android:name="com.zhilian.s8.Activity.membership.SearchMembershipActivity" />
<activity android:name="com.zhilian.s8.Activity.appointmentcourse.AppointmentCourseDetailsActivity1" />
<!-- shop -->
<activity android:name="com.zhilian.s8.Activity.shop.ShopInfoActivity" />
<activity android:name="com.zhilian.s8.Activity.shop.ShopAuthenticationActivity" />
<activity android:name="com.zhilian.s8.Activity.reports.ReportsActivity" />
<activity android:name="com.zhilian.s8.Activity.reports.ReportsListActivity" />
<activity android:name="com.zhilian.s8.Activity.reports.ReportsTeamCourseListActivity" />
<activity android:name="com.zhilian.s8.Activity.reports.ReportsPrivateCourseListActivity" />
<activity android:name="com.zhilian.s8.Activity.reports.ReportsMembershipListActivity" />
<activity android:name="com.zhilian.s8.Activity.creditCard.AuthHintActivity" />
<activity android:name="com.zhilian.s8.Activity.creditCard.AuthFinishHintActivity" />
<activity android:name="com.zhilian.s8.Activity.creditCard.CreditMainActivity" />
<activity android:name="com.zhilian.s8.Activity.creditCard.SettlementStatementActivity" />
<activity android:name="com.zhilian.s8.Activity.creditCard.IncomeRecordActivity" />
<activity android:name="com.zhilian.s8.Activity.CoordinatorTestActivity" />
<activity android:name="com.zhilian.s8.Activity.photoWall.PhotoWallActivity" />
<activity android:name="com.zhilian.s8.Activity.photoWall.ImageDetailsActivity" />
<activity android:name="com.zhilian.s8.Activity.photoWall.AddWallPhotoActivity" />
<activity android:name="com.zhilian.s8.Activity.activityNotice.AcitivityNoticeActivity" />
<activity android:name="com.zhilian.s8.Activity.activityNotice.AddActivityNoticeActivity" />
<activity android:name="com.zhilian.s8.Activity.shop.CreatShopActivity" />
<!-- seckill -->
<activity android:name="com.zhilian.s8.Activity.seckill.SecKillActivity" />
<activity android:name="com.zhilian.s8.Activity.seckill.AddSecKillActivity" />
<activity android:name="com.zhilian.s8.Activity.seckill.SecKillDetailsActivity" />
<activity android:name="com.zhilian.s8.Activity.seckill.EditAllSecKillActivity" />
<activity android:name="com.zhilian.s8.Activity.seckill.EditPartSecKillActivity" />
<activity android:name="com.zhilian.s8.Activity.seckill.ChooseGoodsTypeActivity" />
<activity android:name="com.zhilian.s8.Activity.seckill.ChooseCourseGoodsActivity" />
<activity android:name="com.zhilian.s8.Activity.seckill.SecKillDetailsActivity1" />
<activity android:name="com.zhilian.s8.Activity.seckill.AddSecKillActivity1" />
<!-- collage -->
<activity android:name="com.zhilian.s8.Activity.collage.AddCollageActivity" />
<activity android:name="com.zhilian.s8.Activity.collage.CollageActivity" />
<activity android:name="com.zhilian.s8.Activity.collage.CollageDetailsActivity" />
<activity android:name="com.zhilian.s8.Activity.collage.EditDetailsActivity" />
<activity android:name="com.zhilian.s8.Activity.collage.AddCollageActivity1" />
<activity android:name="com.zhilian.s8.Activity.collage.ChooseGoodsActivity" />
<activity android:name="com.zhilian.s8.Activity.collage.CollageOrderDetailsActivity" />
<activity android:name="com.zhilian.s8.Activity.collage.AddCourseCollageActivity" />
<!-- help -->
<activity android:name="com.zhilian.s8.floatwindow.FloatActivity" />
<!-- poster -->
<activity android:name="com.zhilian.s8.Activity.poster.AddPosterActivity" />
<activity android:name="com.zhilian.s8.Activity.poster.PosterTemplateActivity" />
<activity android:name="com.zhilian.s8.Activity.poster.PosterPreviewActivity" />
<activity android:name="com.zhilian.s8.Activity.poster.PosterPreviewActivity2" />
<activity android:name="com.zhilian.s8.Activity.integral.GiveRecordActivity" />
<activity android:name="com.zhilian.s8.Activity.integral.IntegralGiveActivity" />
<activity android:name="com.zhilian.s8.Activity.integral.RechargeRecordActivity" />
<activity android:name="com.zhilian.s8.Activity.integral.IntegralRechargeActivity" />
<!-- # -->
<activity android:name="com.zhilian.s8.Activity.withdraw.BalanceActivity" />
<activity android:name="com.zhilian.s8.Activity.withdraw.WithdrawApplyActivity" />
<activity android:name="com.zhilian.s8.Activity.withdraw.WithdrawRecordActivity" />
<activity android:name="com.zhilian.s8.Activity.withdraw.WithdrawTipsActivity" />
<activity android:name=".ui.activity.shop.GuideShopAuthActivity" />
<activity android:name=".ui.activity.tutor.AddTutorForTagActivity" />
<activity android:name=".ui.activity.tutor.AddTutorForCourseActivity" />
<!-- share -->
<activity android:name="vip.devkit.common.share._ShareActivity" />
<activity-alias
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:targetActivity="vip.devkit.common.share._ShareActivity" />
<!-- push service start -->
<!-- 用于接收系统消息以保证PushService正常运行 -->
<receiver
android:name="com.baidu.android.pushservice.PushServiceReceiver"
android:process=":push_v1">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="com.baidu.android.pushservice.action.notification.SHOW" />
<action android:name="com.baidu.android.pushservice.action.media.CLICK" />
<!-- 以下四项为可选的action声明,可大大提高service存活率和消息到达速度 -->
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
<!-- Push服务接收客户端发送的各种请求 -->
<receiver
android:name="com.baidu.android.pushservice.RegistrationReceiver"
android:process=":push_v1">
<intent-filter>
<action android:name="com.baidu.android.pushservice.action.METHOD" />
<action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<receiver android:name="com.zhilian.s8.push.YogaPushMessageReceiver">
<intent-filter>
<!-- 接收push消息 -->
<action android:name="com.baidu.android.pushservice.action.MESSAGE" />
<!-- 接收bind、setTags等method的返回结果 -->
<action android:name="com.baidu.android.pushservice.action.RECEIVE" />
<!-- 接收通知点击事件,和通知自定义内容 -->
<action android:name="com.baidu.android.pushservice.action.notification.CLICK" />
</intent-filter>
</receiver>
<service
android:name="com.baidu.android.pushservice.PushService"
android:exported="true"
android:process=":push_v1">
<intent-filter>
<action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
</intent-filter>
</service>
<!-- 4.4版本新增的CommandService声明,提升小米和魅族手机上的实际推送到达率 -->
<service
android:name="com.baidu.android.pushservice.CommandService"
android:exported="true" />
<!-- 适配Android N系统必需的ContentProvider声明,写权限包含应用包名 -->
<provider
android:name="com.baidu.android.pushservice.PushInfoProvider"
android:authorities="${applicationId}.bdpush"
android:exported="true"
android:protectionLevel="signature"
android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.zhilian.s8" />
<meta-data
android:name="api_key"
android:value="aTL3kNMCsM17MCTTCtGRz4guYuUas1ej" />
<activity android:name="com.zhilian.s8.Activity.TagListActivity" />
<activity android:name="com.zhilian.s8.Activity.TablayoutTestActivity" />
<activity
android:name="com.zhilian.s8.ScrollingActivity"
android:label="@string/title_activity_scrolling"
android:theme="@style/MainTheme" />
<!-- 自定义会员卡样式 -->
<activity android:name="com.zhilian.s8.Activity.membership.AddTemActivity" />
<activity android:name="com.zhilian.s8.Activity.appointmentcourse.SelectPosterActivity" />
<activity android:name="com.zhilian.s8.Activity.appointmentcourse.CustomPosterActivity" />
<activity android:name="com.zhilian.s8.Activity.MeIntegralActivity" />
<activity android:name="com.zhilian.s8.Activity.ValidateMsmActivity" />
<activity android:name="com.zhilian.s8.Activity.user.RewardActivity" />
<activity android:name="com.zhilian.s8.Activity.shop.OperateTimeActivity" />
<activity android:name="com.zhilian.s8.ui.activity.member.VisitRecordActivity" />
<activity android:name="com.zhilian.s8.ui.activity.member.AddVisitActivity" />
<!-- USER -->
<activity android:name="com.zhilian.s8.ui.activity.user.LoginActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.RegisterActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.ResetPasswordActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.ChangePwActivity" />
<activity android:name="com.zhilian.s8.ui.activity.tutor.CoursePlanAndStudentActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.SelectIdentityActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.SwitchRoleActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.BindPhoneActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.GuideActivity" />
<activity android:name="com.zhilian.s8.ui.activity.user.GuideVeriftActivity" />
<activity android:name="com.zhilian.s8.ui.fragment.user.TeacherInfoActivity" />
<!-- card -->
<activity android:name="com.zhilian.s8.ui.activity.card.CardAddActivity" />
<activity android:name="com.zhilian.s8.ui.activity.card.CardEditActivity" />
<activity android:name="com.zhilian.s8.ui.activity.card.CardClassCheckActivity" />
<activity android:name="com.zhilian.s8.ui.activity.card.CardShopLimitActivity" />
<activity android:name="com.zhilian.s8.ui.activity.card.CardCourseLimitActivity" />
<activity android:name="com.zhilian.s8.ui.activity.card.CardEditInfoActivity" />
<activity android:name="com.zhilian.s8.ui.activity.card.CardListActivity" />
<activity android:name="com.zhilian.s8.ui.activity.card.CardDetailsActivity" />
<!-- goods -->
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsManagerActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsClassifyActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsAddClassifyActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsAddActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsEditActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsDetailActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsVideoPickerActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsSelectActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsCategoryClassifySelectActivity" />
<activity android:name="com.zhilian.s8.ui.activity.mall.GoodsAddHtmlContentActivity" />
<activity android:name=".ui.activity.mall.GoodsSearchActivity" />
<activity android:name=".ui.activity.mall.specs.GoodsAddSpecsItemActivity" />
<activity android:name=".ui.activity.mall.specs.GoodsSpecsListActivity" />
<activity android:name=".ui.activity.mall.specs.GoodsSpecsValueListActivity" />
<activity android:name=".ui.activity.mall.specs.GoodsAddSpecsValueActivity" />
<activity android:name=".ui.activity.mall.specs.GoodsSpecsSettingActivity" />
<activity android:name=".ui.activity.mall.specs.GoodsSpecsDetailActivity" />
<activity android:name=".ui.activity.mall.specs.GoodsSpecsBatchSettingActivity" />
<activity android:name=".ui.activity.mall.GoodsExpressTypeActivity" />
<!-- coupon -->
<activity android:name="com.zhilian.s8.ui.activity.coupon.CouponManagerActivity" />
<activity android:name="com.zhilian.s8.ui.activity.coupon.CouponAddActivity" />
<activity android:name="com.zhilian.s8.ui.activity.coupon.CouponEditActivity" />
<activity android:name="com.zhilian.s8.ui.activity.coupon.CouponCActivity" />
<!-- course -->
<activity android:name="com.zhilian.s8.ui.activity.course.AddTeamCoursePlanActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.AddPrivateCoursePlanActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.CopyCoursePlanActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.CourseTimeTableShareActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.CourseTimeTableSettingActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.TeamReserveDetailActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.PrivateReserveDetailActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.SubstituteSignInActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.SubstituteReserveActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.UpdatePrivateCoursePlanActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.UpdateTeamCoursePlanActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.PrivateCourseSubstituteReserveActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.PrivateCourseSubstituteSignInActivity" />
<activity android:name="com.zhilian.s8.ui.activity.member.SearchMemberActivity" />
<activity android:name="com.zhilian.s8.ui.activity.shop.SwitchShopActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.ClassRoomSelectActivity" />
<activity android:name=".ui.activity.course.CourseAddHtmlContentActivity" />
<!-- setting -->
<activity android:name="com.zhilian.s8.ui.activity.setting.SettingActivity" />
<activity android:name="com.zhilian.s8.ui.activity.setting.AboutActivity" />
<activity android:name="com.zhilian.s8.ui.activity.setting.FeedbackActivity" />
<!-- help -->
<activity android:name="com.zhilian.s8.ui.activity.help.HelpGuideActivity" />
<activity android:name="com.zhilian.s8.ui.activity.help.HelpFaqActivity" />
<!-- test -->
<activity android:name="com.zhilian.s8.test.EditActivity" />
<activity android:name="com.zhilian.s8.test.TestBaseLayoutActivity" />
<!-- course -->
<activity android:name="com.zhilian.s8.ui.activity.course.CourseTypeActivity" />
<!-- 秒杀 -->
<activity android:name="com.zhilian.s8.ui.activity.seckill.CreateSecKillActivity" />
<activity android:name="com.zhilian.s8.ui.activity.seckill.SettingGoodsPriceActivity" />
<!-- 团购 -->
<activity android:name="com.zhilian.s8.ui.activity.team_buy.CreateTeamBuyActivity" />
<activity android:name="com.zhilian.s8.ui.activity.team_buy.TeamBuyGoodsActivity" />
<!--销售订单-->
<activity android:name="com.zhilian.s8.ui.activity.sale.SaleManagerActivity" />
<activity android:name="com.zhilian.s8.ui.activity.sale.SaleOrderSearchActivity" />
<activity android:name="com.zhilian.s8.ui.activity.sale.SaleSelectParActivity" />
<activity android:name="com.zhilian.s8.ui.activity.sale.SaleDetilActivity" />
<activity android:name="com.zhilian.s8.ui.activity.sale.UpdateInvoiceInfoActivity" />
<activity android:name="com.zhilian.s8.ui.activity.sale.DeliveryActivity" />
<activity android:name="com.zhilian.s8.ui.activity.sale.UpdateAddressActivity" />
<activity android:name="com.zhilian.s8.ui.activity.member.TeacherMemberActivity" />
<activity android:name="com.zhilian.s8.ui.activity.integral.RewardActivity" />
<activity android:name="com.zhilian.s8.ui.activity.integral.MeIntegralActivity" />
<activity android:name="com.zhilian.s8.ui.activity.wallet.MineWalletActivity" />
<activity android:name="com.zhilian.s8.ui.activity.wallet.WxCashActivity" />
<activity android:name="com.zhilian.s8.ui.activity.course.TeacherCourseActivity" />
<activity android:name="com.zhilian.s8.ui.activity.seckill.SeckillDetailActivity" />
<!--钱包-->
<activity android:name="com.zhilian.s8.ui.activity.wallet.WxCashDetailActivity" />
<activity android:name="com.zhilian.s8.ui.activity.wallet.SelectTimeActivity" />
<activity android:name="com.zhilian.s8.ui.activity.wallet.CashStateDetailActivity" />
<activity android:name="com.zhilian.s8.ui.activity.wallet.FollowWxActivity" />
<activity android:name="com.zhilian.s8.ui.activity.wallet.RelationOrderActivity" />
<!--钱包管理-->
<activity android:name="com.zhilian.s8.ui.activity.walletManager.ManagerHomeActivity" />
<activity android:name="com.zhilian.s8.ui.activity.walletManager.CashCheckDetailsActivity" />
<activity android:name="com.zhilian.s8.ui.activity.distribution.CashRuleActivity" />
<activity android:name="com.zhilian.s8.ui.activity.distribution.CashCheckActivity" />
<activity android:name="com.zhilian.s8.ui.activity.distribution.CashNoticeActivity" />
<activity android:name="com.zhilian.s8.ui.activity.walletManager.CashManagerSearchActivity" />
<activity android:name="com.zhilian.s8.ui.activity.walletManager.AddCashUserActivity" />
<!--分销-->
<activity android:name="com.zhilian.s8.ui.activity.distribution.DistributionHomeActivity" />
<activity android:name="com.zhilian.s8.ui.activity.distribution.DistributorDetailsActivity" />
<activity android:name="com.zhilian.s8.ui.activity.distribution.SearchDistributorActivity" />
<activity android:name="com.zhilian.s8.ui.activity.distribution.SearchDistriOrderActivity" />
<activity android:name="com.zhilian.s8.ui.activity.distribution.DistributorRelationOrderActivity" />
<!-- A-->
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentManageActivity" />
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentReviewActivity" />
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentLevelActivity" />
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentUrlValidTimeActivity" />
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentConditionActivity" />
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentOrderTimeFilterActivity" />
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentOrderSearchActivity" />
<activity android:name="com.zhilian.s8.ui.activity.agent.AgentOrderBatchReviewActivity" />
<activity android:name=".ui.activity.agent.AgentGoodsSelectActivity" />
<!--after sale-->
<activity android:name="com.zhilian.s8.ui.activity.after_sale.AfterSaleListActivity" />
<activity android:name="com.zhilian.s8.ui.activity.after_sale.AfterConditionActivity" />
<activity android:name="com.zhilian.s8.ui.activity.after_sale.AfterSaleSearchActivity" />
<activity android:name="com.zhilian.s8.ui.activity.after_sale.AfterSaleDetailActivity" />
<activity android:name="com.zhilian.s8.ui.activity.after_sale.AfterSaleCheckActivity" />
<!-- <activity android:name="com.zhilian.s8.ui.activity.after_sale.AfterSaleRefundActivity" />-->
<activity android:name="com.zhilian.s8.ui.activity.after_sale.AfterSaleDeliveryActivity" />
<activity android:name="com.zhilian.s8.ui.activity.after_sale.DisplayImageActivity" />
<activity android:name="com.zhilian.s8.Shopping2LevelActivity" />
<!-- webview -->
<!-- <activity android:name="com.zhilian.s8.ui.activity.webview.LogisticsTrackingActivity" />-->
<!--设置密码-->
<activity android:name="com.zhilian.s8.ui.activity.user.SettingPwdActivity" />
<activity android:name=".ui.activity.shop.PurchasingCenterActivity" />
<activity android:name=".Shopping2PurchasingActivity" />
<activity android:name=".ui.activity.shop.ShopBusinessSettingActivity" />
<activity android:name=".ui.activity.shop.ShopIntegralSettingActivity" />
<activity android:name=".ui.activity.shop.ShopSettingActivity" />
<activity android:name=".ui.activity.member.AddVisitorRecordActivity" />
<activity android:name=".ui.activity.member.UserAddCardActivity" />
<activity android:name=".ui.activity.tutor.EditTutorInfoActivity" />
<activity android:name=".ui.activity.worker.EditWorkUserActivity" />
<activity android:name=".ui.activity.course.EditCourseInfoActivity" />
<activity android:name=".ui.activity.shop.BranchShopInfoEditActivity" />
<activity android:name=".ui.activity.shop.BanchShopInfoEdit2Activity" />
<activity android:name=".ui.activity.shop.BranchShopManagerActivity" />
<provider
android:name="com.zhilian.s8.provide.IntegralProivde"
android:authorities="com.zhilian.s8.provide.IntegralProivde"
android:enabled="true"
android:exported="false" />
<!-- # tutor -->
<activity android:name="com.zhilian.live.ui.anchor.AgreementActivity" />
<activity android:name="com.zhilian.live.ui.anchor.ContractSignActivity" />
<activity android:name="com.zhilian.live.ui.anchor.TutorApplyActivity" />
<activity android:name="com.zhilian.live.ui.anchor.TutorApplyStateActivity" />
<activity android:name="com.zhilian.live.ui.course.AddVideoFileActivity" />
<activity android:name="com.zhilian.live.ui.live.LivePusherConfigActivity" />
<activity
android:name="com.zhilian.live.ui.live.LivePusherActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:launchMode="singleTask" />
<!-- video live -->
<activity android:name="com.zhilian.live.ui.video.VideoMangerActivity" />
<activity android:name="com.zhilian.live.ui.video.VideoCourseUploadActivity" />
<activity android:name="com.zhilian.live.ui.video.VideoCourseDetailActivity" />
<activity android:name="com.zhilian.live.ui.video.VideoCourseEditActivity" />
<activity android:name="com.zhilian.live.ui.video.VideoCourseAddActivity" />
<activity android:name="com.zhilian.live.ui.video.VideoCourseEditRichTextActivity" />
<activity android:name="com.zhilian.live.ui.video.VideoCourseSearchActivity" />
<!-- 健康体测 -->
<!-- 健康体测 列表-->
<activity
android:name="com.zhilian.s8.ui.activity.health.HealthTestListActivity"
android:screenOrientation="portrait" />
<!-- 健康体测 编辑表单-->
<activity
android:name="com.zhilian.s8.ui.activity.health.EditHealthTestFormActivity"
android:screenOrientation="portrait" />
<!-- 健康体测 选择体测项-->
<activity
android:name="com.zhilian.s8.ui.activity.health.FormItemChooseActivity"
android:screenOrientation="portrait" />
<!-- 用户协议-->
<activity
android:name="com.zhilian.s8.ui.activity.agreement.UserAgreementActivity"
android:screenOrientation="portrait" />
<!-- 隐私协议-->
<activity
android:name="com.zhilian.s8.ui.activity.agreement.PrivacyAgreementActivity"
android:screenOrientation="portrait" />
<!-- 8s服务-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.RoleSelectionActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.BriefIntroductionHtmlActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.ServiceIntroductionActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.ContractSigningActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.ContractDetailPDFActivity"
android:screenOrientation="portrait" />
<!-- 查看8S服务介绍合同-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.ServiceContractPDFActivity"
android:screenOrientation="portrait" />
<!-- 实名认证前置界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.CertificationPreposeActivity"
android:screenOrientation="portrait" />
<!-- 实名认证(活体验证)前置界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.VivoVerificationActivity"
android:screenOrientation="portrait" />
<!-- 完成活体验证后置界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.VivoVerificationSuccessActivity"
android:screenOrientation="portrait" />
<!-- 商家资料填写-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.MallDataFillInActivity"
android:screenOrientation="portrait" />
<!-- 支付成功提示界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.PaymentResultActivity"
android:screenOrientation="portrait" />
<!-- 支付成功提示界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.ServiceAndAuthenticationInfoActivity"
android:screenOrientation="portrait" />
<!-- 信息未通过提示界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.InfoRejectedActivity"
android:screenOrientation="portrait" />
<!-- 企业资料详情界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.EnterpriseInfoActivity"
android:screenOrientation="portrait" />
<!-- 商家实名信息界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.EnterpriseCertificationInfoActivity"
android:screenOrientation="portrait" />
<!-- 合同列表界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.AlreadySignedContractActivity"
android:screenOrientation="portrait" />
<!-- 获取合同详情界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.UserContentDetailPDFActivity"
android:screenOrientation="portrait" />
<!-- 未开通8S服务提示界面-->
<activity
android:name="com.zhilian.s8.ui.activity.pay_settlement.No8sServiceNoticeActivity"
android:screenOrientation="portrait" />
</application>
</manifest>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

@ -0,0 +1,6 @@
img {
display: inline;
height: auto;
width: 100%;
max-width: 100%;
}

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="user-scalable=no">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="my_normalize.css">
<link rel="stylesheet" type="text/css" href="my_style.css">
</head>
<body>
<div id="editor" contenteditable="true"></div>
<script type="text/javascript" src="my_rich_editor.js"></script>
</body>
</html>

@ -0,0 +1,413 @@
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}

@ -0,0 +1,366 @@
/**
* Copyright (C) 2017 Wasabeef
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var RE = {};
RE.currentSelection = {
"startContainer": 0,
"startOffset": 0,
"endContainer": 0,
"endOffset": 0};
RE.editor = document.getElementById('editor');
document.addEventListener("selectionchange", function() { RE.backuprange(); });
// Initializations
RE.callback = function() {
window.location.href = "re-callback://" + encodeURI(RE.getHtml());
}
RE.setHtml = function(contents) {
RE.editor.innerHTML = decodeURIComponent(contents.replace(/\+/g, '%20'));
var textarea = document.querySelectorAll("textarea");
textarea.forEach(function(item){
item.innerHTML = item.value;
item.removeAttribute("readonly");
})
}
RE.getHtml = function() {
var textarea = document.querySelectorAll("textarea");
textarea.forEach(function(item){
item.innerHTML = item.value;
})
return RE.editor.innerHTML;
}
RE.getText = function() {
return RE.editor.innerText;
}
RE.setBaseTextColor = function(color) {
RE.editor.style.color = color;
}
RE.setBaseFontSize = function(size) {
RE.editor.style.fontSize = size;
}
RE.setPadding = function(left, top, right, bottom) {
RE.editor.style.paddingLeft = left;
RE.editor.style.paddingTop = top;
RE.editor.style.paddingRight = right;
RE.editor.style.paddingBottom = bottom;
}
RE.setBackgroundColor = function(color) {
document.body.style.backgroundColor = color;
}
RE.setBackgroundImage = function(image) {
RE.editor.style.backgroundImage = image;
}
RE.setWidth = function(size) {
RE.editor.style.minWidth = size;
}
RE.setHeight = function(size) {
RE.editor.style.height = size;
}
RE.setTextAlign = function(align) {
RE.editor.style.textAlign = align;
}
RE.setVerticalAlign = function(align) {
RE.editor.style.verticalAlign = align;
}
RE.setPlaceholder = function(placeholder) {
RE.editor.setAttribute("placeholder", placeholder);
}
RE.setInputEnabled = function(inputEnabled) {
RE.editor.contentEditable = String(inputEnabled);
}
RE.undo = function() {
document.execCommand('undo', false, null);
}
RE.redo = function() {
document.execCommand('redo', false, null);
}
RE.setBold = function() {
if(!document.queryCommandState('bold')){
document.execCommand('bold', false, null);
}
}
RE.setNoBold = function() {
if(document.queryCommandState('bold')){
document.execCommand('bold', false, null);
}
}
RE.setItalic = function() {
document.execCommand('italic', false, null);
}
RE.setSubscript = function() {
document.execCommand('subscript', false, null);
}
RE.setSuperscript = function() {
document.execCommand('superscript', false, null);
}
RE.setStrikeThrough = function() {
document.execCommand('strikeThrough', false, null);
}
RE.setUnderline = function() {
document.execCommand('underline', false, null);
}
RE.setBullets = function() {
document.execCommand('insertUnorderedList', false, null);
}
RE.setNumbers = function() {
document.execCommand('insertOrderedList', false, null);
}
RE.setTextColor = function(color) {
RE.restorerange();
document.execCommand("styleWithCSS", null, true);
document.execCommand('foreColor', false, color);
document.execCommand("styleWithCSS", null, false);
}
RE.setTextBackgroundColor = function(color) {
RE.restorerange();
document.execCommand("styleWithCSS", null, true);
document.execCommand('hiliteColor', false, color);
document.execCommand("styleWithCSS", null, false);
}
RE.setFontSize = function(fontSize){
document.execCommand("fontSize", false, fontSize);
}
RE.setHeading = function(heading) {
document.execCommand('formatBlock', false, '<h'+heading+'>');
}
RE.setIndent = function() {
document.execCommand('indent', false, null);
}
RE.setOutdent = function() {
document.execCommand('outdent', false, null);
}
RE.setJustifyLeft = function() {
document.execCommand('justifyLeft', false, null);
}
RE.setJustifyCenter = function() {
document.execCommand('justifyCenter', false, null);
}
RE.setJustifyRight = function() {
document.execCommand('justifyRight', false, null);
}
RE.setBlockquote = function() {
document.execCommand('formatBlock', false, '<blockquote>');
}
RE.setDoubleQuotation = function() {
var html = '“”';
document.execCommand('insertHTML', false, html);
}
RE.insertImage = function(url, alt) {
var html = '<img src="' + url + '" alt="' + alt + '" />';
RE.insertHTML(html);
}
RE.insertHTML = function(html) {
console.log(RE.editor.innerHTML);
RE.restorerange();
document.execCommand('insertHTML', false, html);
}
RE.insertLink = function(url, title) {
RE.restorerange();
var sel = document.getSelection();
if (sel.toString().length == 0) {
document.execCommand("insertHTML",false,"<a href='"+url+"'>"+title+"</a>");
} else if (sel.rangeCount) {
var el = document.createElement("a");
el.setAttribute("href", url);
el.setAttribute("title", title);
var range = sel.getRangeAt(0).cloneRange();
range.surroundContents(el);
sel.removeAllRanges();
sel.addRange(range);
}
RE.callback();
}
RE.setTodo = function(text) {
var html = '<input type="checkbox" name="'+ text +'" value="'+ text +'"/> &nbsp;';
document.execCommand('insertHTML', false, html);
}
RE.prepareInsert = function() {
RE.backuprange();
}
RE.backuprange = function(){
var selection = window.getSelection();
if (selection.rangeCount > 0) {
var range = selection.getRangeAt(0);
RE.currentSelection = {
"startContainer": range.startContainer,
"startOffset": range.startOffset,
"endContainer": range.endContainer,
"endOffset": range.endOffset};
}
}
RE.restorerange = function(){
var selection = window.getSelection();
selection.removeAllRanges();
var range = document.createRange();
range.setStart(RE.currentSelection.startContainer, RE.currentSelection.startOffset);
range.setEnd(RE.currentSelection.endContainer, RE.currentSelection.endOffset);
selection.addRange(range);
}
RE.enabledEditingItems = function(e) {
var items = [];
if (document.queryCommandState('bold')) {
items.push('bold');
}
if (document.queryCommandState('italic')) {
items.push('italic');
}
if (document.queryCommandState('subscript')) {
items.push('subscript');
}
if (document.queryCommandState('superscript')) {
items.push('superscript');
}
if (document.queryCommandState('strikeThrough')) {
items.push('strikeThrough');
}
if (document.queryCommandState('underline')) {
items.push('underline');
}
if (document.queryCommandState('insertOrderedList')) {
items.push('orderedList');
}
if (document.queryCommandState('insertUnorderedList')) {
items.push('unorderedList');
}
if (document.queryCommandState('justifyCenter')) {
items.push('justifyCenter');
}
if (document.queryCommandState('justifyFull')) {
items.push('justifyFull');
}
if (document.queryCommandState('justifyLeft')) {
items.push('justifyLeft');
}
if (document.queryCommandState('justifyRight')) {
items.push('justifyRight');
}
if (document.queryCommandState('insertHorizontalRule')) {
items.push('horizontalRule');
}
var formatBlock = document.queryCommandValue('formatBlock');
if (formatBlock.length > 0) {
items.push(formatBlock);
}
window.location.href = "re-state://" + encodeURI(items.join(','));
}
RE.focus = function() {
var range = document.createRange();
range.selectNodeContents(RE.editor);
range.collapse(false);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
RE.editor.focus();
}
RE.blurFocus = function() {
RE.editor.blur();
}
RE.removeFormat = function() {
document.execCommand('removeFormat', false, null);
}
// Event Listeners
RE.editor.addEventListener("input", RE.callback);
RE.editor.addEventListener("keyup", function(e) {
var KEY_LEFT = 37, KEY_RIGHT = 39;
if (e.which == KEY_LEFT || e.which == KEY_RIGHT) {
RE.enabledEditingItems(e);
}
});
RE.editor.addEventListener("click", RE.enabledEditingItems);
function clickToDelete(el){
RE.editor.blur();
window.android.pictureDivClick(el.dataset.id);
}
RE.deleteDiv = function(divId) {
document.getElementById(divId).remove();
window.android.returnHtml(RE.editor.innerHTML);
}
RE.callToGetHtmlString = function() {
var textarea = document.querySelectorAll("textarea");
textarea.forEach(function(item){
item.innerHTML = item.value;
item.setAttribute("readonly",true);
})
window.android.returnHtmlForSync(RE.editor.innerHTML);
}
function textareaInput(el) {
el.style.height = 'auto';
el.style.height = (el.scrollHeight) + 'px';
}
function textareaFocus(el) {
el.setAttribute("placeholder","")
}
function textareaBlur(el) {
el.setAttribute("placeholder","添加描述")
}

@ -0,0 +1,49 @@
/**
* Copyright (C) 2017 Wasabeef
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
@charset "UTF-8";
html {
height: 100%;
}
body {
overflow: scroll;
display: table;
table-layout: fixed;
width: 100%;
min-height:100%;
}
#editor {
display: table-cell;
outline: 0px solid transparent;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
}
#editor[placeholder]:empty:not(:focus):before {
content: attr(placeholder);
opacity: .5;
}}
/*.main{}
.main>.img{width:100%;box-sizing: border-box;font-size: 0;}
.main>.img>img{width:100%;box-sizing: border-box;}
.main>.desc{width: 100%;box-sizing: border-box;position: relative;padding: 0.5rem;background-color: #E8E8E8;}
.main>.desc>.text{width: 100%;box-sizing: border-box;font-size: 0.85rem;background-color:#E8E8E8;text-align: center;color:#8E8E8E;border:none;resize:none;outline:none;overflow-y:hidden;}*/

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=4.0,user-scalable=yes" />
<style type="text/css">
canvas {
width: 100%;
height: 100%;
border: 1px solid black;
}
</style>
<script src="./pdf/pdf.js"></script>
<script src="./pdf/pdf.worker.js"></script>
<script>
//创建 canavs
function createPage() {
var div = document.createElement("canvas");
document.body.appendChild(div);
return div;
}
function renderPage(num,pdf) {
pdf.getPage(num).then(function(page) {
var viewport = page.getViewport(2.0);
var canvas = createPage();
var ctx = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({
canvasContext: ctx,
viewport: viewport
});
});
}
var pdfDoc = null;
//获取 PDF URL
var url = location.search.substring(1);
// If absolute URL from the remote server is provided, configure the CORS
// header on that server.
// Loaded via <script> tag, create shortcut to access PDF.js exports.
var pdfjsLib = window['pdfjs-dist/build/pdf'];
// The workerSrc property shall be specified.
pdfjsLib.GlobalWorkerOptions.workerSrc = './pdf/pdf.worker.js';
// Asynchronous download of PDF
var loadingTask = pdfjsLib.getDocument(url);
loadingTask.promise.then(function(pdf) {
console.log('PDF loaded');
pdfDoc = pdf;
for (var i = 1; i <= pdfDoc.numPages; i++) {
renderPage(i,pdf)
}
// Fetch the first page
// var pageNumber = 1;
// pdf.getPage(pageNumber).then(function(page) {
// console.log('Page loaded');
//
// var scale = 1.5;
// var viewport = page.getViewport(2.0);
//
// // Prepare canvas using PDF page dimensions
// var canvas = createPage();
// var context = canvas.getContext('2d');
// canvas.height = viewport.height;
// canvas.width = viewport.width;
//
// // Render PDF page into canvas context
// var renderContext = {
// canvasContext: context,
// viewport: viewport
// };
// var renderTask = page.render(renderContext);
}, function(reason) {
// PDF loading error
console.error(reason);
});
</script>
</head>
<body>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,86 @@
package com.zhilian.live.adapter;
import android.graphics.Color;
import android.support.annotation.Nullable;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhilian.live.bean.TutorGoodsBean;
import com.zhilian.live.util.ResUtil;
import com.zhilian.s8.R;
import com.zhilian.s8.util.GlideLoadUtil;
import java.util.List;
/**
* Package Name: com.zhilian.live.adapter
* File Name: GoodsRecommendAdapter.java
* Create Date: 2019/9/20 14:16
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class GoodsRecommendAdapter extends BaseQuickAdapter<TutorGoodsBean, BaseViewHolder> {
public int selectPosition = -1;
public GoodsRecommendAdapter(int layoutResId, @Nullable List<TutorGoodsBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, TutorGoodsBean item) {
TutorGoodsBean bean = (TutorGoodsBean) item;
ImageView imageView = helper.getView(R.id.iv_img);
LinearLayout linearLayout = helper.getView(R.id.ll_img_layout);
Object tag = linearLayout.getTag();
if (helper.getAdapterPosition() == 0) {
helper.setText(R.id.tv_title, "")
.setText(R.id.tv_price, "");
if (tag == null || !tag.equals(R.drawable.icon_select_goods_n)) {
GlideLoadUtil.with(mContext).loadItemImg(R.drawable.icon_select_goods_n, imageView, 8);
linearLayout.setTag(R.drawable.icon_select_goods_n);
}
} else {
String price = ResUtil.getString(R.string.price_unit,item.getPrice());
helper.setText(R.id.tv_title, bean.getTitle())
.setText(R.id.tv_price, price);
if (tag == null || !tag.equals(bean.getImage())) {
GlideLoadUtil.with(mContext).load(bean.getImage(), imageView, 8);
linearLayout.setTag(bean.getImage());
}
}
if (selectPosition == helper.getAdapterPosition()) {
helper.getView(R.id.item_layout).setBackgroundResource(R.drawable.bg_live_goods_select_s);
helper.setVisible(R.id.iv_select,true);
} else {
helper.getView(R.id.item_layout).setBackgroundColor(Color.parseColor("#ffffff"));
helper.setVisible(R.id.iv_select,false);
}
}
public int getSelectPosition() {
return selectPosition;
}
public void setSelectItem(int position) {
if (selectPosition == position) {
selectPosition = -1;
} else {
selectPosition = position;
}
}
@Override
public long getItemId(int position) {
return position;
}
}

@ -0,0 +1,51 @@
package com.zhilian.live.adapter;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
import java.util.List;
import vip.devkit.library.ListUtil;
/**
* Package Name: com.zhilian.live.adapter
* File Name: HomePageAdapter.java
* Create Date: 2019/9/20 15:57
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class HomePageAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments = new ArrayList<>();
private List<String> mTitle = new ArrayList<>();
public HomePageAdapter(FragmentManager fm, List<Fragment> fragments, List<String> mTitles) {
super(fm);
this.fragments = fragments;
this.mTitle = mTitles;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return ListUtil.isEmpty(mTitle) ? "" : mTitle.get(position);
}
}

@ -0,0 +1,140 @@
package com.zhilian.live.adapter;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.text.SpannableStringBuilder;
import android.view.ViewTreeObserver;
import android.widget.TextView;
import com.zhilian.live.bean.LiveMsgBean;
import com.zhilian.s8.R;
import com.zhilian.s8.adapter.base.CommonAdapter;
import com.zhilian.s8.adapter.base.ViewHolder;
import com.zhilian.s8.util.SpannableHelper;
import com.zhilian.s8.util.ViewUtil;
import java.util.List;
/**
* @PackageName : com.zhilian.live.adapter
* @File : LiveMsgAdapter.java
* @Date : 2019/9/23 13:55
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
* @CodeUpdate :K - 2019/9/23 13:55
* @UpdateDescribe
*/
public class LiveMsgAdapter extends CommonAdapter<LiveMsgBean> {
boolean type;
/**
* @param context
* @param mBeanList
* @param layoutId
*/
public LiveMsgAdapter(Context context, List<LiveMsgBean> mBeanList, int layoutId) {
super(context,mBeanList,layoutId);
}
public LiveMsgAdapter(Context context,List<LiveMsgBean> mBeanList, int layoutId, boolean b) {
super(context,mBeanList,layoutId);
this.type = b;
}
@Override
public void convert(ViewHolder holder, LiveMsgBean bean, int position) {
//0 系统 1 主播 2 用户 3 进入直播间 4 提示
int c0 = Color.parseColor("#2DC76D");//0 系统
int c1 = Color.parseColor("#FF093D");//进入直播间
int c2 = Color.parseColor("#FE83FF");//主播发言
int c3 = Color.parseColor("#FD8959"); //用户发言
int c4 = Color.parseColor("#D96F15");
int c5 = Color.parseColor("#ffffff");
if (type) {
c5 = Color.parseColor("#333333");
}
String userName = bean.getUsername();
final TextView textView = holder.getView(R.id.tv_msg);
SpannableStringBuilder helper = null;
if (bean.getType().equals("say")) {//用户发言
helper = SpannableHelper.Builder(mContext, "")
.append(userName + ":").setForegroundColor(c3)
.append(bean.getContent()).setForegroundColor(c5)
.create();
} else if (bean.getType().equals("anchor")) {
Drawable drawable = mContext.getResources().getDrawable(R.mipmap.icon_anchor);
drawable.setBounds(0, 0, ViewUtil.dp2px(mContext, 35), ViewUtil.dp2px(mContext, 16));
helper = SpannableHelper.Builder(mContext, "")
.append("1")
.setDrawable(drawable)
.append(" " +userName + ":").setForegroundColor(c2)
.append(bean.getContent()).setForegroundColor(c2)
.create();
} else if (bean.getType().equals("loginSuccess")) {
helper = SpannableHelper.Builder(mContext, "")
.append(userName+ ":" + bean.getContent()).setForegroundColor(c1)
.create();
// if (LoginUserUtil.isLogin(mContext)){
// if (bean.getUser_name().equals(LoginUserUtil.getLoginUserBean(mContext).getUsername())){
//
// }
// }
} else if (bean.getType().equals("system")) {
helper = SpannableHelper.Builder(mContext, "")
.append(userName+ "" + bean.getContent()).setForegroundColor(c0)
.create();
}
textView.setText(helper == null ? "系统提示" : helper);
if (!type) {
ViewTreeObserver treeObserver = textView.getViewTreeObserver();
treeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewTreeObserver observer = textView.getViewTreeObserver();
observer.removeOnGlobalLayoutListener(this);//这里防止重复调用;需移除;
if (textView.getLineCount() > 1) {
textView.setBackgroundResource(R.drawable.bg_live_msg_2);
} else {
textView.setBackgroundResource(R.drawable.bg_live_msg_1);
}
}
});
}
}
public void addBean(LiveMsgBean bean) {
mBeanList.add(bean);
notifyDataSetChanged();
}
public void setType(boolean type) {
this.type = type;
notifyDataSetChanged();
}
/**
* 将本地资源图片大小缩放
*
* @param resId
* @param w
* @param h
* @return
*/
public Drawable zoomImage(int resId, int w, int h) {
Resources res = mContext.getResources();
Bitmap oldBmp = BitmapFactory.decodeResource(res, resId);
Bitmap newBmp = Bitmap.createScaledBitmap(oldBmp, w, h, true);
Drawable drawable = new BitmapDrawable(res, newBmp);
return drawable;
}
}

@ -0,0 +1,35 @@
package com.zhilian.live.adapter;
import android.content.Context;
import com.zhilian.live.bean.PopMenuBean;
import com.zhilian.s8.R;
import com.zhilian.s8.adapter.base.CommonAdapter;
import com.zhilian.s8.adapter.base.ViewHolder;
import java.util.List;
/**
* Package Name: com.zhilian.live.adapter
* File Name: PopContextMenuAdapter.java
* Create Date: 2019/9/20 11:09
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class PopContextMenuAdapter extends CommonAdapter<PopMenuBean> {
public PopContextMenuAdapter(Context context, List<PopMenuBean> mBeanList, int layoutId) {
super(context, mBeanList, layoutId);
}
@Override
public void convert(ViewHolder holder, PopMenuBean menuBean, int position) {
holder.setText(R.id.tv_menu_item_text, menuBean.getText());
holder.setImageResource(R.id.iv_menu_item_icon, menuBean.getIcon());
}
}

@ -0,0 +1,43 @@
package com.zhilian.live.adapter;
import android.support.annotation.Nullable;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhilian.live.bean.tutor.TutorListBean;
import com.zhilian.s8.R;
import com.zhilian.s8.util.ResUtil;
import java.util.List;
/**
* @PackageName : com.zhilian.live.adapter
* @File : VideoCourseChildAddTutorAdapter.java
* @Date : 2019/12/19 9:36
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
*/
public class VideoCourseChildAddTutorAdapter extends BaseQuickAdapter<TutorListBean, BaseViewHolder> {
public VideoCourseChildAddTutorAdapter(int layoutResId, @Nullable List<TutorListBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper,final TutorListBean item) {
helper.setText(R.id.tv_tutor,item.getName())
.setChecked(R.id.cb_check,item.isSelect());
((CheckBox)helper.getView(R.id.cb_check)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
item.setSelect(isChecked);
}
});
}
}

@ -0,0 +1,42 @@
package com.zhilian.live.adapter;
import android.support.annotation.Nullable;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhilian.live.bean.video.VideoCourseDetailBean;
import com.zhilian.live.bean.video.VideoCourseUploadActionBean;
import com.zhilian.s8.R;
import com.zhilian.s8.util.GlideLoadUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @PackageName : com.zhilian.live.adapter
* @File : VideoCourseDetailAdapter.java
* @Date : 2019/12/19 13:54
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
*/
public class VideoCourseDetailAdapter extends BaseQuickAdapter<VideoCourseDetailBean.ActionBean, BaseViewHolder> {
public VideoCourseDetailAdapter(int layoutResId, @Nullable List<VideoCourseDetailBean.ActionBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, VideoCourseDetailBean.ActionBean item) {
helper.setText(R.id.tv_name, item.getTitle())
.setText(R.id.tv_name_tag, "课程" + (helper.getAdapterPosition() + 1) + "名称")
.setText(R.id.tv_tutor, item.getTutor_name())
.addOnClickListener(R.id.iv_img);
GlideLoadUtil.with(mContext).loadItemImg(item.getCover_url(), (ImageView) helper.getView(R.id.iv_img), 4);
}
}

@ -0,0 +1,54 @@
package com.zhilian.live.adapter;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import com.zhilian.s8.R;
import com.zhilian.s8.ui.activity.tutor.AddTutorForTagActivity;
import com.zhilian.s8.util.ResUtil;
import com.zhilian.s8.util.ViewUtil;
import com.zhy.view.flowlayout.FlowLayout;
import com.zhy.view.flowlayout.TagAdapter;
import java.util.List;
/**
* @PackageName : com.zhilian.live.adapter
* @File : VideoCourseHistorySearchAdapter.java
* @Date : 2019/12/20 14:11
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
*/
public class VideoCourseHistorySearchAdapter extends TagAdapter<String> {
private Context mContext;
public VideoCourseHistorySearchAdapter(Context context, List<String> datas) {
super(datas);
this.mContext = context;
}
@Override
public View getView(FlowLayout parent, int position, String s) {
TextView tv = new TextView(mContext);
tv.setHeight(ViewUtil.dp2px(mContext, 30));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(14);
tv.setText(s);
tv.setTextColor(ResUtil.getColor(R.color.theme_blue_font_1a));
tv.setBackgroundResource(R.drawable.shape_video_search_tag_n);
// if (bean.isSelect()) {
// tv.setTextColor(ResUtil.getColor("#ffffff"));
// tv.setBackgroundResource(R.drawable.shape_tutor_add_tag_s);
// } else {
// tv.setTextColor(ResUtil.getColor("#333333"));
// tv.setBackgroundResource(R.drawable.shape_tutor_add_tag_n);
// }
return tv;
}
}

@ -0,0 +1,62 @@
package com.zhilian.live.adapter;
import android.support.annotation.Nullable;
import android.text.SpannableStringBuilder;
import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhilian.live.bean.video.VideoCourseListBean;
import com.zhilian.s8.R;
import com.zhilian.s8.bean.GoodsManagerBean;
import com.zhilian.s8.util.GlideLoadUtil;
import com.zhilian.s8.util.ResUtil;
import com.zhilian.s8.util.SpannableHelper;
import java.util.List;
import vip.devkit.library.RandomUtils;
/**
* @PackageName : com.zhilian.live.adapter
* @File : VideoCourseListAdapter.java
* @Date : 2019/12/16 11:05
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
*/
public class VideoCourseListAdapter extends BaseQuickAdapter<VideoCourseListBean, BaseViewHolder> {
public VideoCourseListAdapter(int layoutResId, @Nullable List<VideoCourseListBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, VideoCourseListBean item) {
SpannableStringBuilder builder = SpannableHelper.Builder(mContext, "")
.append(item.getIntegral() + "积分").setForegroundColor(ResUtil.getColor("#FF1B1B")).setSize(14)
.append("+").setForegroundColor(ResUtil.getColor("#1A1A1A")).setSize(14)
.append(ResUtil.getString(R.string.price_unit)).setSize(11)
.append(item.getPrice() + "").setForegroundColor(ResUtil.getColor("#FF1B1B")).setSize(14)
.create();
helper.setText(R.id.tv_name, item.getName())
.setText(R.id.tv_price, builder)
.setText(R.id.tv_sell_number, "已售:" + item.getSales_volume())
.setText(R.id.tv_counts, "共" + item.getPitch_number() + "节课程,"+item.getNot_uploaded_pitch_number()+"节课程视频待上传")
.setText(R.id.tv_share_or_del, item.getIs_deleted() == 0 ? "分享" : "删除")
.setText(R.id.tv_state, item.getIs_deleted() == 0 ? "下架" : "上架")
.addOnClickListener(R.id.tv_upload)
.addOnClickListener(R.id.tv_edit)
.addOnClickListener(R.id.tv_state)
.addOnClickListener(R.id.tv_share_or_del)
;
GlideLoadUtil.with(mContext).loadItemImg(item.getImage_url(), (ImageView) helper.getView(R.id.iv_img), 5);
}
}

@ -0,0 +1,101 @@
package com.zhilian.live.adapter;
import android.content.Context;
import android.support.annotation.Nullable;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import com.alibaba.fastjson.JSON;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhilian.live.bean.video.VideoCourseDetailBean;
import com.zhilian.s8.R;
import java.util.List;
import vip.devkit.library.Logcat;
/**
* @PackageName : com.zhilian.live.adapter
* @File : VideoCourseSpecAdapter.java
* @Date : 2019/12/17 11:24
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
*/
public class VideoCourseSpecAdapter extends BaseQuickAdapter<VideoCourseDetailBean.ActionBean, BaseViewHolder> {
private OnVideoCourseSpecListener mOnVideoCourseSpecListener;
public VideoCourseSpecAdapter(int layoutResId, @Nullable List<VideoCourseDetailBean.ActionBean> data) {
super(layoutResId, data);
}
public void setOnVideoCourseSpecListener(OnVideoCourseSpecListener onVideoCourseSpecListener) {
mOnVideoCourseSpecListener = onVideoCourseSpecListener;
}
@Override
protected void convert(final BaseViewHolder helper, final VideoCourseDetailBean.ActionBean item) {
Logcat.i("----------" + JSON.toJSONString(item));
helper.setText(R.id.tv_course_no, "课程" + (helper.getAdapterPosition() + 1) + "")
.setText(R.id.et_course_name, TextUtils.isEmpty(item.getTitle()) ? "" : item.getTitle())
.setText(R.id.tv_tutor_name, TextUtils.isEmpty(item.getTutor_name()) ? "" : item.getTutor_name())
.setOnClickListener(R.id.tv_tutor_name, new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mOnVideoCourseSpecListener != null) {
mOnVideoCourseSpecListener.onAddTutor(helper.getAdapterPosition());
}
}
})
.setOnClickListener(R.id.iv_del, new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mOnVideoCourseSpecListener != null) {
mOnVideoCourseSpecListener.onDelItem(helper.getAdapterPosition());
}
}
});
helper.getView(R.id.iv_del).setVisibility(helper.getAdapterPosition() > 0 ? View.VISIBLE : View.GONE);
final EditText mEtName = helper.getView(R.id.et_course_name);
mEtName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (mOnVideoCourseSpecListener != null) {
mOnVideoCourseSpecListener.onEditTextAfterTextChanged(s,helper.getAdapterPosition());
}
}
});
}
public interface OnVideoCourseSpecListener {
void onAddTutor(int position);
void onDelItem(int position);
void onEditTextAfterTextChanged(Editable editable, int position);
}
}

@ -0,0 +1,37 @@
package com.zhilian.live.adapter;
import android.support.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhilian.live.bean.video.ActionVideoListBean;
import com.zhilian.live.bean.video.VideoCourseUploadActionBean;
import com.zhilian.s8.R;
import com.zhilian.s8.util.ResUtil;
import java.util.List;
/**
* @PackageName : com.zhilian.live.adapter
* @File : VideoCourseUploadItemAdapter.java
* @Date : 2019/12/18 16:27
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
*/
public class VideoCourseUploadItemAdapter extends BaseQuickAdapter<ActionVideoListBean, BaseViewHolder> {
public VideoCourseUploadItemAdapter(int layoutResId, @Nullable List<ActionVideoListBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper,ActionVideoListBean item) {
helper.setText(R.id.tv_name, item.getTitle())
.setTextColor(R.id.tv_name, item.isSelect() ? ResUtil.getColor(R.color.theme_blue)
: ResUtil.getColor(R.color.theme_blue_font_1a));
}
}

@ -0,0 +1,77 @@
package com.zhilian.live.adapter;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.zhilian.live.bean.video.VideoCourseDetailBean;
import com.zhilian.live.bean.video.VideoCourseUploadActionBean;
import com.zhilian.s8.R;
import com.zhilian.s8.util.ResUtil;
import java.util.List;
import vip.devkit.library.Logcat;
/**
* @PackageName : com.zhilian.live.adapter
* @File : VideoCourseUploadListAdapter.java
* @Date : 2019/12/16 14:26
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
*/
public class VideoCourseUploadListAdapter extends BaseQuickAdapter<VideoCourseUploadActionBean.ActionListBean, BaseViewHolder> {
public VideoCourseUploadListAdapter(int layoutResId, @Nullable List<VideoCourseUploadActionBean.ActionListBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, VideoCourseUploadActionBean.ActionListBean item) {
String tips;//(1 上传成功,0 未上传,2 上传未成功)
String btnText;
int colorValue;
if (item.getIs_notice() == 1) {
tips = "已上传视频";
btnText = "重新上传";
colorValue = ResUtil.getColor("#8E8E93");
} else if (item.getIs_notice() == 2) {
if (item.getUpload_info().getFile_size() != 0 && item.getUpload_info().getUpload_size() != 0) {
item.setProgress((item.getUpload_info().getUpload_size() * 100 / item.getUpload_info().getUpload_size()));
}
tips = "";
btnText = "继续";
colorValue = ResUtil.getColor("#FF1B1B");
} else {
tips = "未上传视频";
btnText = "上传";
colorValue = ResUtil.getColor("#FF1B1B");
}
helper.setText(R.id.tv_name, item.getTitle())
.setText(R.id.tv_tutor, item.getTutor_name())
.setText(R.id.tv_tips, tips)
.setText(R.id.tv_upload, btnText)
.setProgress(R.id.progress_bar, item.getProgress())
.setTextColor(R.id.tv_tips, colorValue)
.setTextColor(R.id.tv_upload, item.isUpload() || item.getIs_notice() == 2 ? ResUtil.getColor("#FF1B1B") : ResUtil.getColor("#317EFE"))
.addOnClickListener(R.id.tv_upload);
ProgressBar mProgressBar = helper.getView(R.id.progress_bar);
TextView mTvUpload = helper.getView(R.id.tv_upload);
Logcat.i("-----------" + helper.getAdapterPosition() + "/" + item.toString());
if (item.isUpload()) {
helper.setText(R.id.tv_tips, "视频上传中");
mProgressBar.setProgress(item.getProgress());
mTvUpload.setTextColor(ResUtil.getColor(R.color.theme_blue_font_1a));
mTvUpload.setText(item.getProgress() + "%");
}
}
}

@ -0,0 +1,154 @@
package com.zhilian.live.adapter;
import android.content.Context;
import android.graphics.Bitmap;
import android.media.MediaMetadataRetriever;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import com.zhilian.live.adapter.base.GCBaseExpandableListAdapter;
import com.zhilian.live.adapter.base.ViewHolder;
import com.zhilian.live.bean.file.VideoItem;
import com.zhilian.live.listener.OnItemPickerListener;
import com.zhilian.s8.R;
import com.zhilian.s8.util.GlideLoadUtil;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Package Name: com.zhilian.live.adapter
* File Name: VideoPickerAdapter.java
* Create Date: 2019/9/20 14:29
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class VideoPickerAdapter extends GCBaseExpandableListAdapter<String, VideoItem> {
int sGroupPosition= -1;
int sChildPosition= -1;
private OnItemPickerListener mPickerListener;
public void setPickerListener(OnItemPickerListener pickerListener) {
mPickerListener = pickerListener;
}
public VideoPickerAdapter(Context context, int grouplayoutId, int childLayoutId, List<String> mGroup, Map<String, List<VideoItem>> datas) {
super(context, grouplayoutId, childLayoutId, mGroup, datas);
}
@Override
public void convertGroup(ViewHolder holder, String s,final int groupPosition) {
holder.setText(R.id.tv_group_name, s);
}
@Override
public void convertChild(ViewHolder holder, String s, final VideoItem videoItem, int groupPosition, int childPosition) {
holder.setText(R.id.tv_file_name, videoItem.getName())
.setText(R.id.tv_file_size, getFormatSize(videoItem.getSize()))
.setText(R.id.tv_file_time, getTime(videoItem.getAddTime()));
GlideLoadUtil.with(mContext).load(videoItem.getPath(), (ImageView) holder.getView(R.id.iv_img));
CheckBox checkBox = holder.getView(R.id.cb_check);
if (sGroupPosition==groupPosition&&sChildPosition==childPosition){
checkBox.setChecked(true);
}else {
checkBox.setChecked(false);
}
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
if (mPickerListener != null) {
mPickerListener.onPickerItem(videoItem);
}
}else {
if (mPickerListener != null) {
mPickerListener.onPickerItem(null);
}
}
}
});
}
/**
* @param groupPosition
* @param childPosition
*/
public void setSelectedPosition( int groupPosition, int childPosition) {
this.sGroupPosition = groupPosition;
this.sChildPosition = childPosition;
}
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
/**
* @param videoPath
* @return
*/
public static Bitmap getVideoThumbnail(String videoPath) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(videoPath);
Bitmap bitmap = retriever.getFrameAtTime();
return bitmap;
}
/**
* @param l
* @return
*/
public String getTime(Long l) {
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd hh:ss");
return format.format(new Date(l * 1000));
}
/**
* 格式化单位
*
* @param size
* @return
*/
public static String getFormatSize(double size) {
double kiloByte = size / 1024;
if (kiloByte < 1) {
return size + "Byte";
}
double megaByte = kiloByte / 1024;
if (megaByte < 1) {
BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));
return result1.setScale(2, BigDecimal.ROUND_HALF_UP)
.toPlainString() + "KB";
}
double gigaByte = megaByte / 1024;
if (gigaByte < 1) {
BigDecimal result2 = new BigDecimal(Double.toString(megaByte));
return result2.setScale(2, BigDecimal.ROUND_HALF_UP)
.toPlainString() + "MB";
}
double teraBytes = gigaByte / 1024;
if (teraBytes < 1) {
BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));
return result3.setScale(2, BigDecimal.ROUND_HALF_UP)
.toPlainString() + "GB";
}
BigDecimal result4 = new BigDecimal(teraBytes);
return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()
+ "TB";
}
}

@ -0,0 +1,121 @@
package com.zhilian.live.adapter.base;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* File Name: FBaseExpandableListAdapter
* Create Date: 2019/3/5 10:25
* Describe :
* Author : By k
* E-mail : vip@devkit.vip
* VersionName: 1
* VersionCode: V 1.0
* Code Update:author - time
* Update Describe
*/
public abstract class GCBaseExpandableListAdapter<Group, Child> extends BaseExpandableListAdapter {
protected Map<Group, List<Child>> mDatas = new HashMap<>();
protected List<Group> mGroup = new ArrayList<>();
protected LayoutInflater mInflater;
protected Context mContext;
protected int groupLayoutId;
protected int childLayoutId;
public GCBaseExpandableListAdapter(Context context, int groupLayoutId, int childLayoutId, List<Group> mGroup, Map<Group, List<Child>> datas) {
this.mContext = context;
this.mGroup = mGroup;
this.mDatas = datas;
this.groupLayoutId = groupLayoutId;
this.childLayoutId = childLayoutId;
mInflater = LayoutInflater.from(context);
}
@Override
public int getGroupCount() {
return mGroup.size();
}
@Override
public Group getGroup(int i) {
return mGroup.get(i);
}
@Override
public int getChildrenCount(int i) {
return isEmpty(mDatas.get(getGroup(i))) ? 0 : mDatas.get(getGroup(i)).size();
}
@Override
public Child getChild(int i, int i1) {
List<Child> mGroup = mDatas.get(getGroup(i));
return mGroup.get(i1);
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public View getGroupView(int position, boolean b, View view, ViewGroup viewGroup) {
ViewHolder mGroupHolder = ViewHolder.get(mContext, view, viewGroup, groupLayoutId, position);
convertGroup(mGroupHolder, getGroup(position), position);
return mGroupHolder.getConvertView();
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean b, View view, ViewGroup viewGroup) {
ViewHolder childHolder = ViewHolder.get(mContext, view, viewGroup, childLayoutId, childPosition);
convertChild(childHolder, getGroup(groupPosition), getChild(groupPosition, childPosition), groupPosition, childPosition);
return childHolder.getConvertView();
}
public abstract void convertGroup(ViewHolder holder, Group t, int groupPosition);
public abstract void convertChild(ViewHolder holder, Group group, Child child, int groupPosition, int childPosition);
@Override
public boolean hasStableIds() {
return true;
}
/**
* 子类点击事件
*
* @param i groupPosition
* @param i1 childPosition
* @return
*/
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
public static <V> boolean isEmpty(List<V> sourceList) {
return (sourceList == null || sourceList.size() == 0);
}
@Override
public void onGroupExpanded(int groupPosition) {
super.onGroupExpanded(groupPosition);
}
}

@ -0,0 +1,218 @@
/*
******************************* Copyright (c)*********************************\
**
** (c) Copyright 2018, 珠海现联瑜君岚运营管理有限公司, china, qd. sd
** All Rights Reserved
**
** By(珠海现联瑜君岚运营管理有限公司)
********************************End of Head************************************\
*/
package com.zhilian.live.adapter.base;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.annotation.IdRes;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
/**
* File Name: FBViewHolder
* Create Date: 2018/10/23 17:34
* Describe :
* Author : By k
* E-mail :vip@devkit.vip
* VersionName: 1
* VersionCode: V 1.0
* Code Update:author - time
* Update Describe
*/
public class ViewHolder {
private SparseArray<View> mViews;
private int mPosition;
private View mConvertView;
private Context mContext;
//layoutId即我们要引入的item布局文件的id
public ViewHolder(Context context, ViewGroup parent, int layoutId, int position) {
this.mPosition = position;
this.mViews = new SparseArray<View>();
this.mContext = context;
mConvertView = LayoutInflater.from(context).inflate(layoutId, parent, false);//引入我们的item布局文件
mConvertView.setTag(this);
}
//ViewHolder并不是每次都需要实例化,当convertview不为空时我们就不需要再实例化ViewHolder,因此我们增加一个入口方法
//来判断是否需要对ViewHolder实例化
public static ViewHolder get(Context context, View convertView, ViewGroup parent, int layoutId, int position) {
if (convertView == null) {
return new ViewHolder(context, parent, layoutId, position);//返回一个实例化对象
} else {
ViewHolder holder = (ViewHolder) convertView.getTag();
holder.mPosition = position;
return holder;
}
}
/**
* 通过viewId获取控件,此方法返回的是View的一个子类
*/
public <T extends View> T getView(int viewId) {
View view = mViews.get(viewId);
if (view == null) {
//如果mViews没有相应的控件,我们就从convertView中找到这个控件,并将此控件和其id存放在mViews中
view = mConvertView.findViewById(viewId);
mViews.put(viewId, view);
}
return (T) view;
}
//mConvertView的get方法
public View getConvertView() {
return mConvertView;
}
/**
* 找到我们定义的TextView控件并给控件赋值
*/
public ViewHolder setText(int viewId, String text) {
TextView tv = getView(viewId);
tv.setText(text);
return this;
}
/**
* 找到我们定义的TextView控件并给控件赋值
* @param viewId
* @param text
* @param flag Paint.STRIKE_THRU_TEXT_FLAG
* @return
*/
public ViewHolder setText(int viewId, String text,int flag) {
TextView tv = getView(viewId);
tv.getPaint().setFlags(flag);
tv.setText(text);
return this;
}
/**
* 如果item中有ImageView控件的话我们就可以用此方法给控件设置图片资源
*/
public ViewHolder setImageResource(int viewId, int resId) {
ImageView imageView = getView(viewId);
imageView.setImageResource(resId);
return this;
}
/**
* 如果item中有ImageView控件的话我们就可以用此方法给控件设置图片资源
*/
public ViewHolder setImageUrl(int viewId, String ResUrl) {
ImageView imageView = getView(viewId);
Glide.with(mContext).load(ResUrl)
.into(imageView);
return this;
}
/**
* 如果item中有ImageView控件的话我们就可以用此方法给控件设置图片资源
*/
public ViewHolder setImageURLHP(int viewId, String ResUrl) {
ImageView imageView = getView(viewId);
Glide.with(mContext).load(ResUrl)
.into(imageView);
return this;
}
public ViewHolder setImageBitmap(int viewId, Bitmap bitmap) {
ImageView imageView = getView(viewId);
imageView.setImageBitmap(bitmap);
return this;
}
/**
* 如果item中有ImageView控件的话我们就可以用此方法给控件设置图片资源
*
* @param viewId
* @param resId
* @param isFillet 是否圆角
* @return
*/
public ViewHolder setImageResourceC(int viewId, int resId, boolean isFillet,int tag) {
ImageView imageView = getView(viewId);
if (isFillet) {
Glide.with(mContext).load(resId)
.into(imageView);
} else {
Glide.with(mContext).load(resId)
.into(imageView);
}
return this;
}
/**
* 如果item中有ImageView控件的话我们就可以用此方法给控件设置图片资源
*
* @param viewId
* @param resId
* @param isRound 是否圆角
* @return
*/
public ViewHolder setImageResourceG(int viewId, int resId, boolean isRound) {
ImageView imageView = getView(viewId);
if (isRound) {
Glide.with(mContext)
.load(resId)
.into(imageView);
} else {
Glide.with(mContext)
.load(resId)
.into(imageView);
}
return this;
}
public ViewHolder setCheckBox(int viewId, boolean c, boolean isShow) {
CheckBox mCheckBox = getView(viewId);
if (isShow == true) {
mCheckBox.setVisibility(View.VISIBLE);
} else {
mCheckBox.setVisibility(View.GONE);
}
mCheckBox.setChecked(c);
return this;
}
public ViewHolder setAdapter(int viewId, Adapter adapter) {
ListView listView = getView(viewId);
if (listView != null) {
listView.setAdapter((ListAdapter) adapter);
}
return this;
}
//我们还可以添加其他的更多的方法。。。。。。。。。。。
public ViewHolder setOnClickListener(@IdRes int viewId, View.OnClickListener listener) {
View view = getView(viewId);
view.setOnClickListener(listener);
return this;
}
public ViewHolder setVisibility(@IdRes int viewId, boolean isVisibility) {
View view = getView(viewId);
if (isVisibility){
view.setVisibility(View.VISIBLE);
}else {
view.setVisibility(View.GONE);
}
return this;
}
}

@ -0,0 +1,246 @@
package com.zhilian.live.api;
import com.zhilian.s8.api.BaseApi;
/**
* File Name: LiveApiConstants
* Create Date: 2019/3/21 9:52
* Describe :
* Author : By k
* E-mail : vip@devkit.vip
* VersionName: 1
* VersionCode: V 1.0
* Code Update:author - time
* Update Describe
*/
public interface LiveApiConstants {
/**
* 本地
*/
String BASE_URL_LOCAL = "";
/**
* 测试
*/
String BASE_URL_TEST = BaseApi.BASE_URL_PRODUCTION;// https://czbapi.idyoga.cn
/**
* 正式
*/
String BASE_URL_ONLINE = "http://tutorapi.idyoga.cn";
/**
* 生产
* <p>
* 生产环境 只需要更换域名 正式 测试域名
*/
String BASE_URL_PRODUCTION = BASE_URL_TEST;
String WEBSOCKET_URL = "wss://chat.idyoga.cn";
/*------------------- 弹幕 chat web Socket--------------------------*/
/**
* 登录
*/
String WS_LOGIN = BASE_URL_PRODUCTION + "/v1/chat/liveChatMessageLogin";
/**
* 退出
*/
String WS_EXIT = BASE_URL_PRODUCTION + "/v1/chat/liveChatMessageLoginOut";
/**
* 发言
*/
String WS_SEND = BASE_URL_PRODUCTION + "/v1/chat/liveChatMessageSay";
/**
* 签署合同
*/
String TUTOR_CONTRACT_SIGN = BASE_URL_PRODUCTION+"/v1/tutor/createUserSignContract";
/**
* 更新直播状态
*/
String TUTOR_LIVE_STATE_UPDATE = BASE_URL_PRODUCTION+"/v1/live/setScreenAndStatusLive";
/**
* 获取推流地址
*/
String TUTOR_LIVE_GET_PUSH_URL = BASE_URL_PRODUCTION+"/v1/live/setPlayerLive";
/**
* 导师认证
*/
String TUTOR_APPLY = BASE_URL_PRODUCTION+"/v1/tutor/addTutorUser";
/**
* 获取导师认证信息
*/
String TUTOR_GET_APPLY_INFO = BASE_URL_PRODUCTION+"/v1/tutor/getTutorUserDetail";
/**
* 导师编辑
*/
String TUTOR_APPLY_EDIT = BASE_URL_PRODUCTION+"/v1/tutor/editTutorInfoBysign";
String TUTOR_APPLY_AGREEMENT = BASE_URL_PRODUCTION;
String TUTOR_CHANNEL = BASE_URL_PRODUCTION;
String TUTOR_COURSE_SERIES_ADD_VIDEO_FILES = BASE_URL_PRODUCTION;
String TUTOR_APPLY_STATE = BASE_URL_PRODUCTION+"/v1/tutor/checkLiveUser";
/**
* 视频列表
*/
String VIDEO_COURSE_LIST = BASE_URL_PRODUCTION + "/v1/video/videoList";
/**
* 导师列表
*/
String TUTOR_LIST = BASE_URL_PRODUCTION + "/v1/tutor/getShopByTutorList";
/**
* 视频课 添加
*/
String VIDEO_COURSE_ADD = BASE_URL_PRODUCTION + "/v1/video/addVideo";
/**
* 视频课 编辑
*/
String VIDEO_COURSE_EDIT = BASE_URL_PRODUCTION + "/v1/video/editVideo";
String VIDEO_COURSE_STATE = BASE_URL_PRODUCTION + "/saas/goods/saveGoodsType";
/**
* 视频课 编辑 HTML
*/
String VIDEO_COURSE_EDIT_HTML = BASE_URL_PRODUCTION + "/v1/video/saveGoodsContent";
/**
* 视频课 上传信息
*/
String VIDEO_COURSE_UPLOAD_INFO = BASE_URL_PRODUCTION + "/v1/video/getVideoInfoByActionDetail";
String VIDEO_COURSE_DETAIL = BASE_URL_PRODUCTION + "/v1/video/getVideoInfo";
String VIDEO_COURSE_ACTION_UPLOAD_VIDEO = BASE_URL_PRODUCTION + "/v1/AliyunVideo/uploadVideoByAliyun";
String VIDEO_COURSE_GET_ALL_VIDEO_LIST = BASE_URL_PRODUCTION + "/v1/VideoLocal/getVideoToBeAddVideo";
String VIDEO_COURSE_ACTION_ADD_VIDEO = BASE_URL_PRODUCTION + "/v1/VideoLocal/addVideoToBeVideoGroupAction";
String VIDEO_COURSE_ADD_VIDEO_UPLOAD_INFO = BASE_URL_PRODUCTION + "/v1/AliyunVideo/uploadVideoByAliyun";
String VIDEO_COURSE_REFRESH_UPLOAD_AUTH= BASE_URL_PRODUCTION + " /v1/AliyunVideo/getFreshenAliyunUploadAuth";
final class EventTags {
public final static int BEGIN_EVENT = 1;
/*-------------------web Socket--------------------------*/
/**
* 登录
* {@link LiveApiConstants#WS_LOGIN}
*/
public static final int WS_LOGIN = BEGIN_EVENT + 1;
/**
* 退出
* {@link LiveApiConstants#WS_EXIT}
*/
public static final int WS_EXIT = BEGIN_EVENT + 2;
/**
* 发言
* {@link LiveApiConstants#WS_SEND}
*/
public static final int WS_SEND = BEGIN_EVENT + 3;
public static final int SHARE_POSTER_LIVE = BEGIN_EVENT + 1001;
public static final int TUTOR_CHANNEL = BEGIN_EVENT + 1002;
public static final int TUTOR_LIVE_STATE_UPDATE = BEGIN_EVENT + 1003;
public static final int TUTOR_CONTRACT_SIGN = BEGIN_EVENT + 1004;
public static final int TUTOR_APPLY_AGREEMENT = BEGIN_EVENT + 1005;
public static final int TUTOR_APPLY = BEGIN_EVENT + 1006;
public static final int TUTOR_APPLY_STATE = BEGIN_EVENT + 1007;
public static final int VIDEO_COURSE_LIST = BEGIN_EVENT + 1008;
public static final int VIDEO_COURSE_STATE = BEGIN_EVENT + 1009;
public static final int TUTOR_LIST = BEGIN_EVENT + 1010;
/**
* 视频课 添加
*/
public static final int VIDEO_COURSE_ADD = BEGIN_EVENT + 1011;
/**
* 视频课 编辑
*/
public static final int VIDEO_COURSE_EDIT = BEGIN_EVENT + 1012;
/**
* 视频课 编辑 HTML
*/
public static final int VIDEO_COURSE_EDIT_HTML = BEGIN_EVENT + 1013;
public static final int VIDEO_COURSE_UPLOAD_INFO = BEGIN_EVENT + 1014;
public static final int VIDEO_COURSE_DETAIL = BEGIN_EVENT + 1015;
public static final int VIDEO_COURSE_ACTION_UPLOAD_VIDEO = BEGIN_EVENT + 1016;
public static final int VIDEO_COURSE_GET_ALL_VIDEO_LIST = BEGIN_EVENT + 1017;
public static final int VIDEO_COURSE_ACTION_ADD_VIDEO = BEGIN_EVENT + 1018;
public static final int VIDEO_COURSE_ADD_VIDEO_UPLOAD_INFO = BEGIN_EVENT + 1019;
public static final int VIDEO_COURSE_REFRESH_UPLOAD_AUTH = BEGIN_EVENT + 1020;
public static final int TUTOR_LIVE_GET_PUSH_URL = BEGIN_EVENT + 1021;
public static final int TUTOR_GET_APPLY_INFO = BEGIN_EVENT + 1022;
public static final int TUTOR_APPLY_EDIT = BEGIN_EVENT + 1023;
}
}

@ -0,0 +1,110 @@
package com.zhilian.live.bean;
import java.io.Serializable;
/**
* Package Name: com.zhilian.live.bean
* File Name: AgreementBean.java
* Create Date: 2019/9/20 11:10
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class AgreementBean implements Serializable {
/**
* contect : 瑜伽前线主播用户协议
根据中华人民共和国相关法律法规及国家互联网信息办公室互联网直播服务管理规定文化部网络表演经营活动管理办法国家新闻出版广电总局关于加强网络视听节目直播服务管理有关问题的通知等相关规定制定本协议
1特别提示
1.1珠海现联瑜君岚运营管理有现公司以下简称瑜伽前线同意按照本协议的规定及其不时发布的网站管理规则提供在线直播活动的技术支持服务用户申请主播资格时应当同意本协议的全部条款并按照页面上的提示完成主播申请的过程用户提交主播申请即表示用户完全接受本协议项下的全部条款
1.2用户申请主播成功后可在瑜伽前线网站进行在线瑜伽教学直播活动
1.3由于瑜伽前线平台要求主播完成实名注册及实名认证主播开通直播功能账号后不得以出租出借或转让等方式将该账号密码交由他人使用或以替播等方式回避国家法律法规对主播实名认证的要求否则一发现瑜伽前线平台有权立即终止主播用户协议并追究用户的违约责任由此产生的一切法律后果均由用户自行承担
2瑜伽前线权利与义务
2.1瑜伽前线拥有在本网站在线直播活动的音视频版权包括直播及后期录制的音视频等信息网络传播权及转授权
2.2瑜伽前线优先向主播提供技术支持服务
3主播权利与义务
3.1用户保证在瑜伽前线的瑜伽教学直播将遵守宪法和有关法律法规政策规定无任何不良及非法内容用户保证其直播活动将坚持为人民服务为社会主义服务的方向坚持社会主义先进文化的前进方向自觉弘扬社会主义核心价值观
3.2用户直播时应当提供符合法律法规要求的直播内容自觉维护直播秩序
3.3不得利用瑜伽前线技术支持服务制作复制发布传播法律法规禁止的信息内容
3.4用户提供的个人信息包括但不限于身份证银行帐号联系方式居住地址等应当合法有效
3.5用户不得利用瑜伽前线服务以任何理由或方式拉拢本网站用户去其他同类竞争网站或进行任何不利于瑜伽前线的行为
4如发生下列任何一种情形瑜伽前线有权随时采取警告暂停发布关闭用户账号等方式中断或终止网络服务
4.1用户违反法律法规规定的
4.2用户违反本协议规定的
4.3用户提供的个人资料不真实不准确或未及时更新的
5. 除根据本协议第4条由瑜伽前线采取中断或终止服务措施进行处理外对用户违反相关有关法律法规的违法或犯罪行为瑜伽前线还将上报相关部门依法予以追究
6. 保密条款
6.1 主播认证用户应对在本协议订立和履行过程中所获悉的瑜伽前线的商业秘密专有信息客户信息及其他所有信息进行保密
6.2 未经书面许可主播认证用户不得使用瑜伽前线的网站名称公司名称商标商业标识网页版式或内容或其他由瑜伽前线享有知识产权或权利的信息或资料将瑜伽前线以任何形式作为从事各种非法活动的场所平台或媒介未经瑜伽前线的书面授权或许可用户不得以瑜伽前线的名义从事任何商业活动也不得以任何形式将瑜伽前线作为从事商业活动的场所平台或媒介
7. 免责条款
7.1 因地震台风水灾火灾战争计算机病毒工具性软件的设计漏洞互联网络遭黑客袭击电信或通讯故障政策法律变更及其他不能预见或其后果不能防止或不可避免的不可抗力事件影响一方对本协议的履行时对因不可抗力事件给双方带来的经济损失双方均不负赔偿责任
7.2 因喜马拉雅网定期或不定期地对网站进行停机维护或技术检测或因类似情况而造成的正常服务中断不视为违约
8. 争议的解决及适用法律
8.1 本协议的生效履行解释及争议的解决均适用中华人民共和国法律
8.2 双方就本协议内容或其执行发生任何争议双方应进行友好协商协商不成时应提交人民法院诉讼解决
审慎提醒如您点击同意则本协议将立即生效并构成你和珠海现联瑜君岚运营管理有现公司及其经营的瑜伽前线之间有约束力的法律文件如您对协议有任何疑问请立即停止主播认证用户认证并可向瑜伽前线客服咨询
* vb_number : v1
* id : 1
* type : 1
* vb_url : https://cmzb.idyoga.cn/video_mall/details/vbDetail?type=1
*/
private String contect;
private String vb_number;
private int id;
private int type;
private String vb_url;
public String getContect() {
return contect;
}
public void setContect(String contect) {
this.contect = contect;
}
public String getVb_number() {
return vb_number;
}
public void setVb_number(String vb_number) {
this.vb_number = vb_number;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getVb_url() {
return vb_url;
}
public void setVb_url(String vb_url) {
this.vb_url = vb_url;
}
}

@ -0,0 +1,127 @@
package com.zhilian.live.bean;
import java.util.List;
/**
* Package Name: com.zhilian.live.bean
* File Name: BillBean.java
* Create Date: 2019/9/20 11:37
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class BillBean {
/**
* list : [{"type":1,"title":"咯哦哦","image_url":"http://zhiboadmin.idyoga.cn/image/live_image/2019/05/5cd946b8a6316.jpg","price":"0.01","tutor_money":"0.00","create_time":1557828847},{"type":1,"title":"0505测试团课02","image_url":"https://czb.idyoga.cn/upload/images/190505/5cce8c116d339.jpg","price":"0.50","tutor_money":"0.10","create_time":1557050331},{"type":1,"title":"0505测试团课02","image_url":"https://czb.idyoga.cn/upload/images/190505/5cce8c116d339.jpg","price":"0.50","tutor_money":"0.10","create_time":1557050145},{"type":1,"title":"0505测试团课02","image_url":"https://czb.idyoga.cn/upload/images/190505/5cce8c116d339.jpg","price":"0.50","tutor_money":"0.10","create_time":1557044218},{"type":1,"title":"0505测试团课02","image_url":"https://czb.idyoga.cn/upload/images/190505/5cce8c116d339.jpg","price":"0.50","tutor_money":"0.10","create_time":1557040317}]
* count : 5
* income : 2.01
* cash : 0.00
*/
private int count;
private String income;
private String cash;
private List<ListBean> list;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getIncome() {
return income;
}
public void setIncome(String income) {
this.income = income;
}
public String getCash() {
return cash;
}
public void setCash(String cash) {
this.cash = cash;
}
public List<ListBean> getList() {
return list;
}
public void setList(List<ListBean> list) {
this.list = list;
}
public static class ListBean {
/**
* type : 1
* title : 咯哦哦
* image_url : http://zhiboadmin.idyoga.cn/image/live_image/2019/05/5cd946b8a6316.jpg
* price : 0.01
* tutor_money : 0.00
* create_time : 1557828847
*/
private int type;
private String title;
private String image_url;
private String price;
private String tutor_money;
private int create_time;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getTutor_money() {
return tutor_money;
}
public void setTutor_money(String tutor_money) {
this.tutor_money = tutor_money;
}
public int getCreate_time() {
return create_time;
}
public void setCreate_time(int create_time) {
this.create_time = create_time;
}
}
}

@ -0,0 +1,168 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: EditLiveCourseBean.java
* Create Date: 2019/9/20 14:23
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class EditLiveCourseBean {
/**
* title : 阿狸
* image_url : http://zhiboadmin.idyoga.cn/image/live_image/2019/05/5cecfe8f51199.jpg
* start_time : 1559041153
* introduce : 哦哦
* live_status : 3
* status : 1
* is_free : 0
* price : 9.90
* invitation_code :
* invitation_code_expire_time : 0
* is_promote : 1
* video_id : 51d697d89d8e4f49b1263b383084a0a3
* number : COURSE201905281725354062516903977241
* live_stream_name : live1905280525351304628957
* live_type : 2
*/
private String title;
private String image_url;
private int start_time;
private String introduce;
private int live_status;
private int status;
private int is_free;
private String price;
private String invitation_code;
private int invitation_code_expire_time;
private int is_promote;
private String video_id;
private String number;
private String live_stream_name;
private int live_type;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public int getStart_time() {
return start_time;
}
public void setStart_time(int start_time) {
this.start_time = start_time;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public int getLive_status() {
return live_status;
}
public void setLive_status(int live_status) {
this.live_status = live_status;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getIs_free() {
return is_free;
}
public void setIs_free(int is_free) {
this.is_free = is_free;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getInvitation_code() {
return invitation_code;
}
public void setInvitation_code(String invitation_code) {
this.invitation_code = invitation_code;
}
public int getInvitation_code_expire_time() {
return invitation_code_expire_time;
}
public void setInvitation_code_expire_time(int invitation_code_expire_time) {
this.invitation_code_expire_time = invitation_code_expire_time;
}
public int getIs_promote() {
return is_promote;
}
public void setIs_promote(int is_promote) {
this.is_promote = is_promote;
}
public String getVideo_id() {
return video_id;
}
public void setVideo_id(String video_id) {
this.video_id = video_id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getLive_stream_name() {
return live_stream_name;
}
public void setLive_stream_name(String live_stream_name) {
this.live_stream_name = live_stream_name;
}
public int getLive_type() {
return live_type;
}
public void setLive_type(int live_type) {
this.live_type = live_type;
}
}

@ -0,0 +1,253 @@
package com.zhilian.live.bean;
import java.util.List;
/**
* Package Name: com.zhilian.live.bean
* File Name: EditSeriesCourseBean.java
* Create Date: 2019/9/20 14:11
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class EditSeriesCourseBean {
/**
* goods_number : VIDEO2019060417291419705590383874
* title : 测试秒杀9999999999
* description : 啊实打
* image_url : https://czb.idyoga.cn/upload/images/190604/5cf639eabd929.jpg
* create_time : 1559640554
* is_free : 0
* is_vip_view : 0
* vclassify_id : 2
* two_vclassify_id : 16
* invitation_code :
* price : 0.00
* code_duration : 0
* invitation_code_expire_time : 0
* is_promote : 1
* is_sale : 0
* section_count : 4
* vclassify : [{"id":2,"name":"魅力瑜伽","list":[{"id":16,"name":"入门"},{"id":17,"name":"进阶"},{"id":18,"name":"塑形"},{"id":24,"name":"高级"}]},{"id":34,"name":"雨夹雪哦否","list":[{"id":37,"name":"b"},{"id":38,"name":"c"}]},{"id":39,"name":"雷雨交加了","list":[{"id":40,"name":"雷"},{"id":41,"name":"雨"},{"id":42,"name":"云"},{"id":43,"name":"雪"},{"id":45,"name":"雷雨"},{"id":46,"name":"雨雪"},{"id":47,"name":"沙尘暴"},{"id":48,"name":"雨天路滑上"}]},{"id":49,"name":"中国古建筑","list":[{"id":50,"name":"12654"},{"id":51,"name":"23564"},{"id":52,"name":"34657"},{"id":53,"name":"68大大方"}]},{"id":62,"name":"我爱罗哦","list":[{"id":63,"name":"时间的的"},{"id":64,"name":"沃尔沃而"},{"id":65,"name":"345345"},{"id":66,"name":"567567"},{"id":67,"name":"567567"}]},{"id":68,"name":"56756756","list":[{"id":69,"name":"567567"},{"id":70,"name":"567567567"}]}]
*/
private String goods_number;
private String title;
private String description;
private String image_url;
private int create_time;
private int is_free;
private int is_vip_view;
private int vclassify_id;
private int two_vclassify_id;
private String invitation_code;
private String price;
private int code_duration;
private int invitation_code_expire_time;
private int is_promote;
private int is_sale;
private int section_count;
private List<VclassifyBean> vclassify;
public String getGoods_number() {
return goods_number;
}
public void setGoods_number(String goods_number) {
this.goods_number = goods_number;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public int getCreate_time() {
return create_time;
}
public void setCreate_time(int create_time) {
this.create_time = create_time;
}
public int getIs_free() {
return is_free;
}
public void setIs_free(int is_free) {
this.is_free = is_free;
}
public int getIs_vip_view() {
return is_vip_view;
}
public void setIs_vip_view(int is_vip_view) {
this.is_vip_view = is_vip_view;
}
public int getVclassify_id() {
return vclassify_id;
}
public void setVclassify_id(int vclassify_id) {
this.vclassify_id = vclassify_id;
}
public int getTwo_vclassify_id() {
return two_vclassify_id;
}
public void setTwo_vclassify_id(int two_vclassify_id) {
this.two_vclassify_id = two_vclassify_id;
}
public String getInvitation_code() {
return invitation_code;
}
public void setInvitation_code(String invitation_code) {
this.invitation_code = invitation_code;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public int getCode_duration() {
return code_duration;
}
public void setCode_duration(int code_duration) {
this.code_duration = code_duration;
}
public int getInvitation_code_expire_time() {
return invitation_code_expire_time;
}
public void setInvitation_code_expire_time(int invitation_code_expire_time) {
this.invitation_code_expire_time = invitation_code_expire_time;
}
public int getIs_promote() {
return is_promote;
}
public void setIs_promote(int is_promote) {
this.is_promote = is_promote;
}
public int getIs_sale() {
return is_sale;
}
public void setIs_sale(int is_sale) {
this.is_sale = is_sale;
}
public int getSection_count() {
return section_count;
}
public void setSection_count(int section_count) {
this.section_count = section_count;
}
public List<VclassifyBean> getVclassify() {
return vclassify;
}
public void setVclassify(List<VclassifyBean> vclassify) {
this.vclassify = vclassify;
}
public static class VclassifyBean {
/**
* id : 2
* name : 魅力瑜伽
* list : [{"id":16,"name":"入门"},{"id":17,"name":"进阶"},{"id":18,"name":"塑形"},{"id":24,"name":"高级"}]
*/
private int id;
private String name;
private List<ListBean> list;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<ListBean> getList() {
return list;
}
public void setList(List<ListBean> list) {
this.list = list;
}
public static class ListBean {
/**
* id : 16
* name : 入门
*/
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
}

@ -0,0 +1,68 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: EditVideoCourseBean.java
* Create Date: 2019/9/20 14:44
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class EditVideoCourseBean {
/**
* goods_number : SECTION2019052916041175269004745331918
* price : 9.90
* title : 视频
* image_url : http://zhiboadmin.idyoga.cn/image/video_image/2019/05/5cee3cfac1a44.jpg
* content : 噢噢噢哦哦
*/
private String goods_number;
private String price;
private String title;
private String image_url;
private String content;
public String getGoods_number() {
return goods_number;
}
public void setGoods_number(String goods_number) {
this.goods_number = goods_number;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}

@ -0,0 +1,188 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: IncomeStatisticsBean.java
* Create Date: 2019/9/20 11:41
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class IncomeStatisticsBean {
/**
* totalData : {"tutor_money":"2326.33","total_money":"5537.89","order_count":"5","user_count":4}
* seriesLessonData : {"tutor_money":"2299.10","total_money":"5471.89","order_count":"4","user_count":3}
* liveLessonData : {"tutor_money":"27.23","total_money":"66.00","order_count":"1","user_count":1}
*/
private TotalDataBean totalData;
private SeriesLessonDataBean seriesLessonData;
private LiveLessonDataBean liveLessonData;
public TotalDataBean getTotalData() {
return totalData;
}
public void setTotalData(TotalDataBean totalData) {
this.totalData = totalData;
}
public SeriesLessonDataBean getSeriesLessonData() {
return seriesLessonData;
}
public void setSeriesLessonData(SeriesLessonDataBean seriesLessonData) {
this.seriesLessonData = seriesLessonData;
}
public LiveLessonDataBean getLiveLessonData() {
return liveLessonData;
}
public void setLiveLessonData(LiveLessonDataBean liveLessonData) {
this.liveLessonData = liveLessonData;
}
public static class TotalDataBean {
/**
* tutor_money : 2326.33
* total_money : 5537.89
* order_count : 5
* user_count : 4
*/
private String tutor_money;
private String total_money;
private String order_count;
private int user_count;
public String getTutor_money() {
return tutor_money;
}
public void setTutor_money(String tutor_money) {
this.tutor_money = tutor_money;
}
public String getTotal_money() {
return total_money;
}
public void setTotal_money(String total_money) {
this.total_money = total_money;
}
public String getOrder_count() {
return order_count;
}
public void setOrder_count(String order_count) {
this.order_count = order_count;
}
public int getUser_count() {
return user_count;
}
public void setUser_count(int user_count) {
this.user_count = user_count;
}
}
public static class SeriesLessonDataBean {
/**
* tutor_money : 2299.10
* total_money : 5471.89
* order_count : 4
* user_count : 3
*/
private String tutor_money;
private String total_money;
private String order_count;
private int user_count;
public String getTutor_money() {
return tutor_money;
}
public void setTutor_money(String tutor_money) {
this.tutor_money = tutor_money;
}
public String getTotal_money() {
return total_money;
}
public void setTotal_money(String total_money) {
this.total_money = total_money;
}
public String getOrder_count() {
return order_count;
}
public void setOrder_count(String order_count) {
this.order_count = order_count;
}
public int getUser_count() {
return user_count;
}
public void setUser_count(int user_count) {
this.user_count = user_count;
}
}
public static class LiveLessonDataBean {
/**
* tutor_money : 27.23
* total_money : 66.00
* order_count : 1
* user_count : 1
*/
private String tutor_money;
private String total_money;
private String order_count;
private int user_count;
public String getTutor_money() {
return tutor_money;
}
public void setTutor_money(String tutor_money) {
this.tutor_money = tutor_money;
}
public String getTotal_money() {
return total_money;
}
public void setTotal_money(String total_money) {
this.total_money = total_money;
}
public String getOrder_count() {
return order_count;
}
public void setOrder_count(String order_count) {
this.order_count = order_count;
}
public int getUser_count() {
return user_count;
}
public void setUser_count(int user_count) {
this.user_count = user_count;
}
}
}

@ -0,0 +1,127 @@
package com.zhilian.live.bean;
import android.text.TextUtils;
import com.zhilian.live.util.UrlEncoderUtils;
import java.util.List;
/**
* @PackageName : com.zhilian.live.bean
* @File : LiveMsgBean.java
* @Date : 2019/9/23 12:03
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
* @CodeUpdate :K - 2019/9/23 12:03
* @UpdateDescribe
*/
public class LiveMsgBean {
/**
* type : loginSuccess
* content : 加入聊天室了
* user_name : 你大爷2号
*/
private String type;
private String content;
private String user_name;
private String data;//商品
/**
* view_number : 1
*/
private int view_number;//在线人数
private List<ChatSayBean> chat_say;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getUsername() {
if (!TextUtils.isEmpty(user_name) && UrlEncoderUtils.hasUrlEncoded(user_name)) {
return UrlEncoderUtils.getURLDecoderString(user_name);
}
return user_name;
}
public String getUser_name() {
if (!TextUtils.isEmpty(user_name) && UrlEncoderUtils.hasUrlEncoded(user_name)) {
return UrlEncoderUtils.getURLDecoderString(user_name);
}
return user_name;
}
public String getUrlEncoderUsername() {
return UrlEncoderUtils.getURLEncoderString(user_name);
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public int getView_number() {
return view_number;
}
public void setView_number(int view_number) {
this.view_number = view_number;
}
public List<ChatSayBean> getChat_say() {
return chat_say;
}
public void setChat_say(List<ChatSayBean> chat_say) {
this.chat_say = chat_say;
}
public static class ChatSayBean {
/**
* username : 你大爷三号
* content :
*/
private String username;
private String content;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getContent() {
return content;
}
public void setContent(String contentX) {
this.content = contentX;
}
}
}

@ -0,0 +1,133 @@
package com.zhilian.live.bean;
import android.text.TextUtils;
import com.zhilian.s8.bean.course.CourseTeamPlanListBean;
/**
* @PackageName : com.zhilian.live.bean
* @File : LivePusherConfigBean.java
* @Date : 2019/9/23 11:16
* @Author : K
* @E-mail : vip@devkit.vip
* @VersionCode : V 1.0
* @Describe
* @CodeUpdate :K - 2019/9/23 11:16
* @UpdateDescribe
*/
public class LivePusherConfigBean {
/**
* goods_number : COURSE201904281049270564823796452190
* title : 测试直播推流
* image_url : https://t.p.idyoga.cn/image/live_image/2019/04/5cc514b777aae.jpg
* is_free : 1
* price : 0.00
* start_time : 1556420400
* live_status : 0
* push_url : rtmp://pv.idyoga.cn/yoga/live1904281116377320819654?auth_key=1556506800-PUSH2019042811163733194204075985-0-21c62558b1555b57896e2715c1ab5a8e
* pull_url :
* share_url :
*/
private int live_status;//0未直播,1正在直播,2直播结束,3暂停,4过期未直播,5直播回放
private String course_id;
private String push_url;
private int orientation;//屏幕方向
private int pixel;// 推流像素
private int id;
private int newNumber;
private String start;
private String end;
private int yetNumber;
private int signNumber;
private long start_time;
private long end_time;
private String price;
private int is_pay;
private int number;
private String tutorName;
private String lessonName;
private String lessonImage;
private String classroomName;
private int type;// 1 到馆 2.直播
private String share_url;
public String getLessonName() {
return lessonName;
}
public void setLessonName(String lessonName) {
this.lessonName = lessonName;
}
public String getLessonImage() {
return lessonImage;
}
public void setLessonImage(String lessonImage) {
this.lessonImage = lessonImage;
}
public String getClassroomName() {
return classroomName;
}
public void setClassroomName(String classroomName) {
this.classroomName = classroomName;
}
public String getShare_url() {
return share_url;
}
public void setShare_url(String share_url) {
this.share_url = share_url;
}
public int getLive_status() {
return live_status;
}
public void setLive_status(int live_status) {
this.live_status = live_status;
}
public String getCourse_id() {
return course_id;
}
public void setCourse_id(String course_id) {
this.course_id = course_id;
}
public String getPush_url() {
return push_url;
}
public void setPush_url(String push_url) {
this.push_url = push_url;
}
public int getOrientation() {
return orientation;
}
public void setOrientation(int orientation) {
this.orientation = orientation;
}
public int getPixel() {
return pixel;
}
public void setPixel(int pixel) {
this.pixel = pixel;
}
}

@ -0,0 +1,64 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: PopMenuBean.java
* Create Date: 2019/9/20 11:07
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class PopMenuBean {
private String id;
private int icon;
private String text;
public PopMenuBean() {
}
public PopMenuBean(String text) {
this.text = text;
}
public PopMenuBean(int iconId, String text) {
this.icon = iconId;
this.text = text;
}
public PopMenuBean(String id, int iconId, String text) {
this.id = id;
this.icon = iconId;
this.text = text;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getIcon() {
return icon;
}
public void setIcon(int iconId) {
this.icon = iconId;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}

@ -0,0 +1,64 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: ResultBean.java
* Create Date: 2019/9/20 10:33
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class ResultBean {
private String code;
private String msg;
private String time;
private String data;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
@Override
public String toString() {
return "ResultBean{" +
"code='" + code + '\'' +
", msg='" + msg + '\'' +
", time='" + time + '\'' +
", data='" + data + '\'' +
'}';
}
}

@ -0,0 +1,79 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: SecurityTokenBean.java
* Create Date: 2019/9/20 14:28
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class SecurityTokenBean {
/**
* SecurityToken : CAISzQR1q6Ft5B2yfSjIr4nheeyDobhz1qa7RGTUr0cYYr5Vmbadqjz2IHpNe3hqB+0fsPkwlGlU6fgclrUqEM8aHBCZNJQsscwIqVv/JpfZv8u84YADi5CjQaY82bYAmZ28Wf7waf+AUBjGCTmd5MYYo9bTcTGlQCZuW//toJV7b9MRcxClZD5dfrl/LRdjr8lo1xGzUPG2KUzSn3b3BkhlsRYe72Rk8vaHxdaAzRDcgVbmqJcSvJ+jC4C8Ys9gG519XtypvopxbbGT8CNZ5z9A9qp9kM49/izc7P6QH35b4RiNL8/Z7tQNXwhiffobHa9YrfHgmNhlvvDSj43t1ytVOeZcX0akQ5u7ku7ZHP+oLt8jaYvjP3PE3rLpMYLu4T48ZXUSODtDYcZDUHhrEk4RUjXdI6Of8UrWSQC7Wsr217otg7Fyyk3s8MaHAkWLX7SB2DwEB4c4aEokVW4RxnezW6UBaRBpbld7Bq6cV5lOdBRZoK+KzQrJTX9Ez2pLmuD6e/LOs7oDVJ37WZtKyuh4Y49d4U8rVEjPQqiykT0uFgpfTK1RzbPmNLKm9baB25/zW+PdDe0dsVgoL1KNpiGWG3RLNn+ztJ9xbkeEvp6JlfyUqss8SVt3u4oAXF/eNNxjoFJ/vKeytkTU7u7vX3ftvEhAo4iFo9MXtBE7Jqv02rPL7wSz5iLAPfML/+7MQ3BqTBiNfHh0/eufnHpvpWpayTjrakxBtg3PiDngJZFEjKKRulpAA7ZOn9rfRwyp935bFcmz5LIGSQC+yH/LkCLXGoABhBKsU6NFJPrQAfI4ZC7gAm3HlfzTcE80OCxeBGewbL0Pfb606tck9CBEyVHPf6gkdujbCuE0HNMKZgWjbyHxVqCIeokcYnsWX/xr2snhnNue52YNzZjffuyL52G3s6P1tOBYfza37QYj6LElcsLoqlWKBdVFGT56/7FekQvIDjI=
* AccessKeyId : STS.NJT2V7LgRadPFBeKGMn1yvs6H
* ExpireUTCTime : 2019-03-01T07:01:17Z
* AccessKeySecret : Ck4acbLMMMUbAerPnaTaNceTeDftUApDcCKGFPEC5ZXv
* Expiration : 3600
* Region : cn-shanghai
*/
private String SecurityToken;
private String AccessKeyId;
private String ExpireUTCTime;
private String AccessKeySecret;
private String Expiration;
private String Region;
public String getSecurityToken() {
return SecurityToken;
}
public void setSecurityToken(String SecurityToken) {
this.SecurityToken = SecurityToken;
}
public String getAccessKeyId() {
return AccessKeyId;
}
public void setAccessKeyId(String AccessKeyId) {
this.AccessKeyId = AccessKeyId;
}
public String getExpireUTCTime() {
return ExpireUTCTime;
}
public void setExpireUTCTime(String ExpireUTCTime) {
this.ExpireUTCTime = ExpireUTCTime;
}
public String getAccessKeySecret() {
return AccessKeySecret;
}
public void setAccessKeySecret(String AccessKeySecret) {
this.AccessKeySecret = AccessKeySecret;
}
public String getExpiration() {
return Expiration;
}
public void setExpiration(String Expiration) {
this.Expiration = Expiration;
}
public String getRegion() {
return Region;
}
public void setRegion(String Region) {
this.Region = Region;
}
}

@ -0,0 +1,203 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: SeriesCourseBean.java
* Create Date: 2019/9/20 16:09
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class SeriesCourseBean {
/**
* goods_number : COURSE201905071502590570674329561384
* image_url : http://zhiboadmin.idyoga.cn/image/live_image/2019/05/5cd12da2dedd7.jpg
* title : 阿金
* start_time : 0
* is_sale : 1
* type : 2
* type_name : 视频
* price : 0.00
* is_free : 0
* pitch_number : 0
* create_time : 1557212578
* video_id : 595
* live_status : null
* live_review_status : null
* live_push_url : null
* series_title : App测试系列课添加
* series_goods_number : VIDEO2019050714131232411596046725
*/
private String goods_number;
private String image_url;
private String title;
private int start_time;
private int is_sale;
private int type;// 1系列课 2视频 3直播
private String type_name;
private String price;
private int is_free;
private int pitch_number;
private int create_time;
private int video_id;
private int live_status; // 直播状态 0未直播 1正在直播 2直播结束 3暂停 4过期未直播
private int live_review_status; // 审核状态 0代表审核中 1代表已通过 2代表拒绝
private String live_push_url;
private String series_title;
private String series_goods_number;
/**
* share_url : https://cmzb.idyoga.cn /video_mall/live/liveDetail?video_id=COURSE201905091117457216899205403785
*/
private String share_url;
public String getGoods_number() {
return goods_number;
}
public void setGoods_number(String goods_number) {
this.goods_number = goods_number;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getStart_time() {
return start_time;
}
public void setStart_time(int start_time) {
this.start_time = start_time;
}
public int getIs_sale() {
return is_sale;
}
public void setIs_sale(int is_sale) {
this.is_sale = is_sale;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getType_name() {
return type_name;
}
public void setType_name(String type_name) {
this.type_name = type_name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public int getIs_free() {
return is_free;
}
public void setIs_free(int is_free) {
this.is_free = is_free;
}
public int getPitch_number() {
return pitch_number;
}
public void setPitch_number(int pitch_number) {
this.pitch_number = pitch_number;
}
public int getCreate_time() {
return create_time;
}
public void setCreate_time(int create_time) {
this.create_time = create_time;
}
public int getVideo_id() {
return video_id;
}
public void setVideo_id(int video_id) {
this.video_id = video_id;
}
public int getLive_status() {
return live_status;
}
public void setLive_status(int live_status) {
this.live_status = live_status;
}
public int getLive_review_status() {
return live_review_status;
}
public void setLive_review_status(int live_review_status) {
this.live_review_status = live_review_status;
}
public String getLive_push_url() {
return live_push_url;
}
public void setLive_push_url(String live_push_url) {
this.live_push_url = live_push_url;
}
public String getSeries_title() {
return series_title;
}
public void setSeries_title(String series_title) {
this.series_title = series_title;
}
public String getSeries_goods_number() {
return series_goods_number;
}
public void setSeries_goods_number(String series_goods_number) {
this.series_goods_number = series_goods_number;
}
public String getShare_url() {
return share_url;
}
public void setShare_url(String share_url) {
this.share_url = share_url;
}
}

@ -0,0 +1,178 @@
package com.zhilian.live.bean;
import java.util.List;
/**
* Package Name: com.zhilian.live.bean
* File Name: SeriesCourseDetailBean.java
* Create Date: 2019/9/20 14:50
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class SeriesCourseDetailBean {
/**
* lessonId : 476
* lessonName : 测试系列课-11.14.26
* lessonPrice : 0.00
* lessonImage : https://t.p.idyoga.cn/image/video_image/2019/03/5c85ffba42b17.jpg
* goodsNumber : VIDEO2019031114270672568244900918
* actionList : [{"action_id":706,"action_name":"测试网速","action_image":"https://t.p.idyoga.cn/image/live_image/2019/01/5c3c4ee47e299.jpg","video":null,"type":2,"goods_id":337,"goods_number":"COURSE201901141657081712689350432576","start_time":1547458063}]
*/
private String lessonId;
private String lessonName;
private String lessonPrice;
private String lessonImage;
private String goodsNumber;
private List<ActionListBean> actionList;
public String getLessonId() {
return lessonId;
}
public void setLessonId(String lessonId) {
this.lessonId = lessonId;
}
public String getLessonName() {
return lessonName;
}
public void setLessonName(String lessonName) {
this.lessonName = lessonName;
}
public String getLessonPrice() {
return lessonPrice;
}
public void setLessonPrice(String lessonPrice) {
this.lessonPrice = lessonPrice;
}
public String getLessonImage() {
return lessonImage;
}
public void setLessonImage(String lessonImage) {
this.lessonImage = lessonImage;
}
public String getGoodsNumber() {
return goodsNumber;
}
public void setGoodsNumber(String goodsNumber) {
this.goodsNumber = goodsNumber;
}
public List<ActionListBean> getActionList() {
return actionList;
}
public void setActionList(List<ActionListBean> actionList) {
this.actionList = actionList;
}
public static class ActionListBean {
/**
* action_id : 706
* action_name : 测试网速
* action_image : https://t.p.idyoga.cn/image/live_image/2019/01/5c3c4ee47e299.jpg
* video : null
* type : 2
* goods_id : 337
* goods_number : COURSE201901141657081712689350432576
* start_time : 1547458063
*/
private int action_id;
private String action_name;
private String action_image;
private Object video;
private int type;
private int goods_id;
private String goods_number;
private long start_time;
private String price;
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public int getAction_id() {
return action_id;
}
public void setAction_id(int action_id) {
this.action_id = action_id;
}
public String getAction_name() {
return action_name;
}
public void setAction_name(String action_name) {
this.action_name = action_name;
}
public String getAction_image() {
return action_image;
}
public void setAction_image(String action_image) {
this.action_image = action_image;
}
public Object getVideo() {
return video;
}
public void setVideo(Object video) {
this.video = video;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getGoods_id() {
return goods_id;
}
public void setGoods_id(int goods_id) {
this.goods_id = goods_id;
}
public String getGoods_number() {
return goods_number;
}
public void setGoods_number(String goods_number) {
this.goods_number = goods_number;
}
public long getStart_time() {
return start_time;
}
public void setStart_time(long start_time) {
this.start_time = start_time;
}
}
}

@ -0,0 +1,197 @@
package com.zhilian.live.bean;
import java.util.List;
/**
* Package Name: com.zhilian.live.bean
* File Name: SeriesCourseManagerBean.java
* Create Date: 2019/9/20 15:43
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class SeriesCourseManagerBean {
/**
* lessonName : 测试Ms
* lessonPrice : 99.00
* lessonImage : http://zhiboadmin.idyoga.cn/image/video_image/2019/06/5d0b5766e11e8.jpg
* goodsNumber : VIDEO2019062017523878346210412793
* isSale : 1
* sectionCount : 1
* actionList : [{"action_name":"12665","action_image":"https://t.p.idyoga.cn/image/live_image/2018/12/5c188a9319d3c.png","type":2,"price":"0.00","goods_number":"COURSE201812181350119947273058482013","start_time":1545284940,"push_url":"live1812180331026709351248?auth_key=1545371340-PUSH2018121815310261954274100823-0-2c2f4404c693797544b2d5392bbdf711","live_status":1,"is_sale":1,"time":"0.00"}]
*/
private String lessonName;
private String lessonPrice;
private String lessonImage;
private String goodsNumber;
private int isSale;
private int sectionCount;
private List<ActionListBean> actionList;
public String getLessonName() {
return lessonName;
}
public void setLessonName(String lessonName) {
this.lessonName = lessonName;
}
public String getLessonPrice() {
return lessonPrice;
}
public void setLessonPrice(String lessonPrice) {
this.lessonPrice = lessonPrice;
}
public String getLessonImage() {
return lessonImage;
}
public void setLessonImage(String lessonImage) {
this.lessonImage = lessonImage;
}
public String getGoodsNumber() {
return goodsNumber;
}
public void setGoodsNumber(String goodsNumber) {
this.goodsNumber = goodsNumber;
}
public int getIsSale() {
return isSale;
}
public void setIsSale(int isSale) {
this.isSale = isSale;
}
public int getSectionCount() {
return sectionCount;
}
public void setSectionCount(int sectionCount) {
this.sectionCount = sectionCount;
}
public List<ActionListBean> getActionList() {
return actionList;
}
public void setActionList(List<ActionListBean> actionList) {
this.actionList = actionList;
}
public static class ActionListBean {
/**
* action_name : 12665
* action_image : https://t.p.idyoga.cn/image/live_image/2018/12/5c188a9319d3c.png
* type : 2
* price : 0.00
* goods_number : COURSE201812181350119947273058482013
* start_time : 1545284940
* push_url : live1812180331026709351248?auth_key=1545371340-PUSH2018121815310261954274100823-0-2c2f4404c693797544b2d5392bbdf711
* live_status : 1
* is_sale : 1
* time : 0.00
*/
private String action_name;
private String action_image;
private int type;
private String price;
private String goods_number;
private long start_time;
private String push_url;
private int live_status;
private int is_sale;
private String time;
public String getAction_name() {
return action_name;
}
public void setAction_name(String action_name) {
this.action_name = action_name;
}
public String getAction_image() {
return action_image;
}
public void setAction_image(String action_image) {
this.action_image = action_image;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getGoods_number() {
return goods_number;
}
public void setGoods_number(String goods_number) {
this.goods_number = goods_number;
}
public long getStart_time() {
return start_time;
}
public void setStart_time(long start_time) {
this.start_time = start_time;
}
public String getPush_url() {
return push_url;
}
public void setPush_url(String push_url) {
this.push_url = push_url;
}
public int getLive_status() {
return live_status;
}
public void setLive_status(int live_status) {
this.live_status = live_status;
}
public int getIs_sale() {
return is_sale;
}
public void setIs_sale(int is_sale) {
this.is_sale = is_sale;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
}

@ -0,0 +1,375 @@
package com.zhilian.live.bean;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.List;
/**
* Package Name: com.zhilian.live.bean
* File Name: SeriesCourseSelectBean.java
* Create Date: 2019/9/20 14:47
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class SeriesCourseSelectBean implements Serializable {
private List<LiveListBean> liveList;
public List<LiveListBean> getLiveList() {
return liveList;
}
public void setLiveList(List<LiveListBean> liveList) {
this.liveList = liveList;
}
public static class LiveListBean implements Serializable{
/**
* id : 109
* number : COURSE201812170943400427185589072416
* user_id : 10771
* title : 测试1217
* start_time : 1545016351
* introduce : 测试啊啊啊啊
* status : 1
* is_free : 0
* is_vip_view : 0
* price : 0.00
* push_url : rtmp://p1.weizan.cn/v/11857919_131893478401096458?t=6f734
* pull_url : http://p2.weizan.cn/11857919/131893478401096458/live.m3u8
* html_url : http://p2.weizan.cn/11857919/131893478401096458/live.m3u8
* is_deleted : 0
* create_time : 1545011020
* update_time : 1545011020
* image_url : https://t.p.idyoga.cn/image/live_image/2018/12/5c16ff4c78fbb.png
* live_status : 3
* direction_type : 1
* audit_user_id : null
* audit_time : null
* live_type : 1
* live_stream_name : null
* invitation_code : null
* code_duration : 0
* invitation_code_expire_time : 0
* is_promote : 1
* video_id : null
* view_number : 0
*/
private int id;
private String number;
private int user_id;
private String title;
private int start_time;
private String introduce;
private int status;
private int is_free;
private int is_vip_view;
private String price;
private String push_url;
private String pull_url;
private String html_url;
private int is_deleted;
private int create_time;
private int update_time;
private String image_url;
private int live_status;
private int direction_type;
private Object audit_user_id;
private Object audit_time;
private int live_type;
private Object live_stream_name;
private Object invitation_code;
private int code_duration;
private int invitation_code_expire_time;
private int is_promote;
private Object video_id;
private int view_number;
private boolean isSelect;//选择
/**
* audit_user_id : null
* audit_time : null
* live_stream_name : null
* invitation_code : null
* video_id : null
* like_number : 0
* collect_number : 0
*/
@SerializedName("live_stream_name")
private Object live_stream_nameX;
private int like_number;
private int collect_number;
public boolean isSelect() {
return isSelect;
}
public void setSelect(boolean select) {
isSelect = select;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getStart_time() {
return start_time;
}
public void setStart_time(int start_time) {
this.start_time = start_time;
}
public String getIntroduce() {
return introduce;
}
public void setIntroduce(String introduce) {
this.introduce = introduce;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getIs_free() {
return is_free;
}
public void setIs_free(int is_free) {
this.is_free = is_free;
}
public int getIs_vip_view() {
return is_vip_view;
}
public void setIs_vip_view(int is_vip_view) {
this.is_vip_view = is_vip_view;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getPush_url() {
return push_url;
}
public void setPush_url(String push_url) {
this.push_url = push_url;
}
public String getPull_url() {
return pull_url;
}
public void setPull_url(String pull_url) {
this.pull_url = pull_url;
}
public String getHtml_url() {
return html_url;
}
public void setHtml_url(String html_url) {
this.html_url = html_url;
}
public int getIs_deleted() {
return is_deleted;
}
public void setIs_deleted(int is_deleted) {
this.is_deleted = is_deleted;
}
public int getCreate_time() {
return create_time;
}
public void setCreate_time(int create_time) {
this.create_time = create_time;
}
public int getUpdate_time() {
return update_time;
}
public void setUpdate_time(int update_time) {
this.update_time = update_time;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public int getLive_status() {
return live_status;
}
public void setLive_status(int live_status) {
this.live_status = live_status;
}
public int getDirection_type() {
return direction_type;
}
public void setDirection_type(int direction_type) {
this.direction_type = direction_type;
}
public Object getAudit_user_id() {
return audit_user_id;
}
public void setAudit_user_id(Object audit_user_id) {
this.audit_user_id = audit_user_id;
}
public Object getAudit_time() {
return audit_time;
}
public void setAudit_time(Object audit_time) {
this.audit_time = audit_time;
}
public int getLive_type() {
return live_type;
}
public void setLive_type(int live_type) {
this.live_type = live_type;
}
public Object getLive_stream_name() {
return live_stream_name;
}
public void setLive_stream_name(Object live_stream_name) {
this.live_stream_name = live_stream_name;
}
public Object getInvitation_code() {
return invitation_code;
}
public void setInvitation_code(Object invitation_code) {
this.invitation_code = invitation_code;
}
public int getCode_duration() {
return code_duration;
}
public void setCode_duration(int code_duration) {
this.code_duration = code_duration;
}
public int getInvitation_code_expire_time() {
return invitation_code_expire_time;
}
public void setInvitation_code_expire_time(int invitation_code_expire_time) {
this.invitation_code_expire_time = invitation_code_expire_time;
}
public int getIs_promote() {
return is_promote;
}
public void setIs_promote(int is_promote) {
this.is_promote = is_promote;
}
public Object getVideo_id() {
return video_id;
}
public void setVideo_id(Object video_id) {
this.video_id = video_id;
}
public int getView_number() {
return view_number;
}
public void setView_number(int view_number) {
this.view_number = view_number;
}
public Object getLive_stream_nameX() {
return live_stream_nameX;
}
public void setLive_stream_nameX(Object live_stream_nameX) {
this.live_stream_nameX = live_stream_nameX;
}
public int getLike_number() {
return like_number;
}
public void setLike_number(int like_number) {
this.like_number = like_number;
}
public int getCollect_number() {
return collect_number;
}
public void setCollect_number(int collect_number) {
this.collect_number = collect_number;
}
}
}

@ -0,0 +1,116 @@
package com.zhilian.live.bean;
import java.util.List;
/**
* Package Name: com.zhilian.live.bean
* File Name: TabClassBean.java
* Create Date: 2019/9/20 14:02
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class TabClassBean {
/**
* id : 2
* parent_id : 0
* name : 魅力瑜伽
* two_classify : [{"id":16,"parent_id":2,"name":"入门"},{"id":17,"parent_id":2,"name":"进阶"},{"id":18,"parent_id":2,"name":"塑形"},{"id":24,"parent_id":2,"name":"高级"}]
*/
private int id;
private int parent_id;
private String name;
private List<TwoClassifyBean> two_classify;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParent_id() {
return parent_id;
}
public void setParent_id(int parent_id) {
this.parent_id = parent_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<TwoClassifyBean> getTwo_classify() {
return two_classify;
}
public void setTwo_classify(List<TwoClassifyBean> two_classify) {
this.two_classify = two_classify;
}
public static class TwoClassifyBean {
/**
* id : 16
* parent_id : 2
* name : 入门
*/
private int id;
private int parent_id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParent_id() {
return parent_id;
}
public void setParent_id(int parent_id) {
this.parent_id = parent_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "TwoClassifyBean{" +
"id=" + id +
", parent_id=" + parent_id +
", name='" + name + '\'' +
'}';
}
}
@Override
public String toString() {
return "TabClassBean{" +
"id=" + id +
", parent_id=" + parent_id +
", name='" + name + '\'' +
", two_classify=" + two_classify +
'}';
}
}

@ -0,0 +1,48 @@
package com.zhilian.live.bean;
/**
* Package Name: com.zhilian.live.bean
* File Name: TutorApplyStateBean.java
* Create Date: 2019/9/20 10:55
* Author : K
* E-mail : vip@devkit.vip
* VersionCode : V 1.0
* Describe
* Code Update :author - time
* Update Describe
*/
public class TutorApplyStateBean {
/**
* status : 0
* create_time : 1556524527
* update_time : 1556524527
*/
private int status;
private int create_time;
private int update_time;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getCreate_time() {
return create_time;
}
public void setCreate_time(int create_time) {
this.create_time = create_time;
}
public int getUpdate_time() {
return update_time;
}
public void setUpdate_time(int update_time) {
this.update_time = update_time;
}
}

@ -0,0 +1,282 @@
package com.zhilian.live.bean;
import com.zhilian.live.util.UrlEncoderUtils;
/**
* File Name: TutorCenterBean
* Create Date: 2019/3/21 11:18
* Describe :
* Author : By k
* E-mail : vip@devkit.vip
* VersionName: 1
* VersionCode: V 1.0
* Code Update:author - time
* Update Describe
*/
public class TutorCenterBean {
/**
* user_info_array : {"image_url":"http://zhiboadmin.idyoga.cn/image/user_image/2019/05/5cd939a03c094.jpg","username":"你大爷(测试)","mobile":"15772747952","wechat":"","introduction":"59401咯哦哦","course":"00000","aptitude":"8888"}
* concern_count : 5
* course_count : 48
* goods_order_count : 0
* is_audit_agent_count : 1
* is_info : 1
* live_course : {"number":"COURSE201905221452497952034304792518","start_time":1558538607,"title":"半年以后","image_url":"http://zhiboadmin.idyoga.cn/image/live_image/2019/05/5ce4f1c1469b3.jpg","push_url":"rtmp://pv.idyoga.cn/yoga/live1905220252496132785049?auth_key=1558625007-PUSH2019052214524981634640728970-0-490cf8b55542c8597c31124377ab80cf","price":"0.00","share_url":"https://cmzb.idyoga.cn/video_mall/live/liveDetail?video_id=COURSE201905221452497952034304792518"}
*/
private UserInfoArrayBean user_info_array;
private int concern_count;
private int course_count;
private int goods_order_count;
private int is_audit_agent_count;
private int is_info;
private LiveCourseBean live_course;
/**
* today_earnings : 0.00
* live_course : null
*/
private String today_earnings;
public UserInfoArrayBean getUser_info_array() {
return user_info_array;
}
public void setUser_info_array(UserInfoArrayBean user_info_array) {
this.user_info_array = user_info_array;
}
public int getConcern_count() {
return concern_count;
}
public void setConcern_count(int concern_count) {
this.concern_count = concern_count;
}
public int getCourse_count() {
return course_count;
}
public void setCourse_count(int course_count) {
this.course_count = course_count;
}
public int getGoods_order_count() {
return goods_order_count;
}
public void setGoods_order_count(int goods_order_count) {
this.goods_order_count = goods_order_count;
}
public int getIs_audit_agent_count() {
return is_audit_agent_count;
}
public void setIs_audit_agent_count(int is_audit_agent_count) {
this.is_audit_agent_count = is_audit_agent_count;
}
public int getIs_info() {
return is_info;
}
public void setIs_info(int is_info) {
this.is_info = is_info;
}
public LiveCourseBean getLive_course() {
return live_course;
}
public void setLive_course(LiveCourseBean live_course) {
this.live_course = live_course;
}
public String getToday_earnings() {
return today_earnings;
}
public void setToday_earnings(String today_earnings) {
this.today_earnings = today_earnings;
}
public static class UserInfoArrayBean {
/**
* image_url : http://zhiboadmin.idyoga.cn/image/user_image/2019/05/5cd939a03c094.jpg
* username : 你大爷(测试)
* mobile : 15772747952
* wechat :
* introduction : 59401咯哦哦
* course : 00000
* aptitude : 8888
*/
private String image_url;
private String username;
private String mobile;
private String wechat;
private String introduction;
private String course;
private String aptitude;
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public String getUsername() {
if (UrlEncoderUtils.hasUrlEncoded(username)) {
return UrlEncoderUtils.getURLDecoderString(username);
}
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getWechat() {
return wechat;
}
public void setWechat(String wechat) {
this.wechat = wechat;
}
public String getIntroduction() {
return introduction;
}
public void setIntroduction(String introduction) {
this.introduction = introduction;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public String getAptitude() {
return aptitude;
}
public void setAptitude(String aptitude) {
this.aptitude = aptitude;
}
}
public static class LiveCourseBean {
/**
* number : COURSE201905221452497952034304792518
* start_time : 1558538607
* title : 半年以后
* image_url : http://zhiboadmin.idyoga.cn/image/live_image/2019/05/5ce4f1c1469b3.jpg
* push_url : rtmp://pv.idyoga.cn/yoga/live1905220252496132785049?auth_key=1558625007-PUSH2019052214524981634640728970-0-490cf8b55542c8597c31124377ab80cf
* price : 0.00
* share_url : https://cmzb.idyoga.cn/video_mall/live/liveDetail?video_id=COURSE201905221452497952034304792518
*/
private String goods_number;
private String number;
private int start_time;
private String title;
private String image_url;
private String push_url;
private String price;
private String share_url;
/**
* live_status : 0
*/
private int live_status;
public String getGoods_number() {
return number;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public int getStart_time() {
return start_time;
}
public void setStart_time(int start_time) {
this.start_time = start_time;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public String getPush_url() {
return push_url;
}
public void setPush_url(String push_url) {
this.push_url = push_url;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getShare_url() {
return share_url;
}
public void setShare_url(String share_url) {
this.share_url = share_url;
}
public int getLive_status() {
return live_status;
}
public void setLive_status(int live_status) {
this.live_status = live_status;
}
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save