Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
ab5f7bff
Commit
ab5f7bff
authored
Nov 09, 2019
by
严久程
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
课程模块
parent
2b2eb4ee
Show whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
598 additions
and
118 deletions
+598
-118
CourseListFragment.java
m-course/src/main/java/com/yidianling/course/CourseListFragment.java
+4
-4
CoursePosterActivity.kt
m-course/src/main/java/com/yidianling/course/CoursePosterActivity.kt
+2
-2
FlutterCourseHomeFragment.kt
m-course/src/main/java/com/yidianling/course/FlutterCourseHomeFragment.kt
+4
-4
CourseTopicActivity.kt
m-course/src/main/java/com/yidianling/course/courseNew/CourseTopicActivity.kt
+2
-2
CourseListContainerActivity.kt
m-course/src/main/java/com/yidianling/course/courseNew/courseList/CourseListContainerActivity.kt
+4
-4
CourseCommentActivity.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CourseCommentActivity.kt
+3
-3
CoursePlayActivity.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayActivity.kt
+8
-7
CourseReplyListActivity.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CourseReplyListActivity.kt
+134
-0
CoursePlayPresenter.kt
m-course/src/main/java/com/yidianling/course/coursePlay/presenter/CoursePlayPresenter.kt
+3
-3
CourseSpecialListModelImpl.kt
m-course/src/main/java/com/yidianling/course/course_special_list/model/CourseSpecialListModelImpl.kt
+3
-2
CoursePlugin.kt
m-course/src/main/java/com/yidianling/course/flutterPlugin/CoursePlugin.kt
+35
-23
CourseRetrofitUtils.java
m-course/src/main/java/com/yidianling/course/net/CourseRetrofitUtils.java
+4
-21
NetApiStore.java
m-course/src/main/java/com/yidianling/course/net/NetApiStore.java
+16
-13
CouponHintView.kt
m-course/src/main/java/com/yidianling/course/widget/CouponHintView.kt
+2
-2
CourseItemNewView.kt
m-course/src/main/java/com/yidianling/course/widget/CourseItemNewView.kt
+28
-19
CourseRedPacketView.kt
m-course/src/main/java/com/yidianling/course/widget/CourseRedPacketView.kt
+2
-2
coursde_ico_course_fanli.png
m-course/src/main/res/drawable-xhdpi/coursde_ico_course_fanli.png
+0
-0
course_ico_course_cuxiao.png
m-course/src/main/res/drawable-xhdpi/course_ico_course_cuxiao.png
+0
-0
course_ico_course_list_hot.png
m-course/src/main/res/drawable-xhdpi/course_ico_course_list_hot.png
+0
-0
course_ico_course_list_new.png
m-course/src/main/res/drawable-xhdpi/course_ico_course_list_new.png
+0
-0
course_ico_course_list_play.png
m-course/src/main/res/drawable-xhdpi/course_ico_course_list_play.png
+0
-0
course_background_course_list_item_view.xml
m-course/src/main/res/drawable/course_background_course_list_item_view.xml
+11
-0
dincond_bold.ttf
m-course/src/main/res/font/dincond_bold.ttf
+0
-0
activity_course_reply_list.xml
m-course/src/main/res/layout/activity_course_reply_list.xml
+21
-0
item_course_new_list_view.xml
m-course/src/main/res/layout/item_course_new_list_view.xml
+231
-0
item_course_play_recylist.xml
m-course/src/main/res/layout/item_course_play_recylist.xml
+62
-0
colors.xml
m-course/src/main/res/values/colors.xml
+3
-0
PlayerFloatHelper.kt
ydl-media/src/main/java/com/ydl/media/view/PlayerFloatHelper.kt
+1
-0
PlayerFloatView.kt
ydl-media/src/main/java/com/ydl/media/view/PlayerFloatView.kt
+6
-0
AppConfig.kt
ydl-platform/src/main/java/com/ydl/ydlcommon/base/config/AppConfig.kt
+1
-0
GlobalConfig.kt
ydl-platform/src/main/java/com/ydl/ydlcommon/base/config/GlobalConfig.kt
+8
-7
No files found.
m-course/src/main/java/com/yidianling/course/CourseListFragment.java
View file @
ab5f7bff
...
@@ -19,7 +19,7 @@ import com.ydl.ydlcommon.utils.BuryPointUtils;
...
@@ -19,7 +19,7 @@ import com.ydl.ydlcommon.utils.BuryPointUtils;
import
com.ydl.ydlcommon.utils.NetworkParamsUtils
;
import
com.ydl.ydlcommon.utils.NetworkParamsUtils
;
import
com.yidianling.common.tools.LogUtil
;
import
com.yidianling.common.tools.LogUtil
;
import
com.yidianling.course.courseNew.LoadMoreView
;
import
com.yidianling.course.courseNew.LoadMoreView
;
import
com.yidianling.course.net.RetrofitUtils
;
import
com.yidianling.course.net.
Course
RetrofitUtils
;
import
com.yidianling.course.bean.Course
;
import
com.yidianling.course.bean.Course
;
import
com.yidianling.course.router.CourseIn
;
import
com.yidianling.course.router.CourseIn
;
import
in.srain.cube.views.loadmore.LoadMoreContainer
;
import
in.srain.cube.views.loadmore.LoadMoreContainer
;
...
@@ -182,7 +182,7 @@ public class CourseListFragment extends BaseFragment implements PtrHandler, Load
...
@@ -182,7 +182,7 @@ public class CourseListFragment extends BaseFragment implements PtrHandler, Load
.
append
(
"&listType="
).
append
(
tagId
+
1
);
.
append
(
"&listType="
).
append
(
tagId
+
1
);
}
}
String
urlParams
=
NetworkParamsUtils
.
getCommonParam
()
+
sb
.
toString
();
String
urlParams
=
NetworkParamsUtils
.
getCommonParam
()
+
sb
.
toString
();
RetrofitUtils
.
getCourseList
(
urlParams
).
compose
(
RxUtils
.
resultJavaData
()).
subscribeOn
(
Schedulers
.
io
())
Course
RetrofitUtils
.
getCourseList
(
urlParams
).
compose
(
RxUtils
.
resultJavaData
()).
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
resp
->
{
.
subscribe
(
resp
->
{
lvContent
.
setVisibility
(
View
.
VISIBLE
);
lvContent
.
setVisibility
(
View
.
VISIBLE
);
...
@@ -223,10 +223,10 @@ public class CourseListFragment extends BaseFragment implements PtrHandler, Load
...
@@ -223,10 +223,10 @@ public class CourseListFragment extends BaseFragment implements PtrHandler, Load
emptyTv
.
setText
(
"网络不给力哦,下拉刷新重试"
);
emptyTv
.
setText
(
"网络不给力哦,下拉刷新重试"
);
ivEmptyView
.
setImageResource
(
R
.
drawable
.
no_net
);
ivEmptyView
.
setImageResource
(
R
.
drawable
.
no_net
);
}
else
{
}
else
{
RetrofitUtils
.
handleError
(
getActivity
(),
throwable
);
Course
RetrofitUtils
.
handleError
(
getActivity
(),
throwable
);
}
}
}
else
{
}
else
{
RetrofitUtils
.
handleError
(
getActivity
(),
throwable
);
Course
RetrofitUtils
.
handleError
(
getActivity
(),
throwable
);
isShowEmptyView
();
isShowEmptyView
();
}
}
});
});
...
...
m-course/src/main/java/com/yidianling/course/CoursePosterActivity.kt
View file @
ab5f7bff
...
@@ -18,7 +18,7 @@ import com.ydl.ydlcommon.utils.StatusBarUtils
...
@@ -18,7 +18,7 @@ import com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.view.dialog.YDLShareDialog
import
com.ydl.ydlcommon.view.dialog.YDLShareDialog
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.course.bean.PostersShareBean
import
com.yidianling.course.bean.PostersShareBean
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
com.yidianling.course.widget.CoursePosterTemplate
import
com.yidianling.course.widget.CoursePosterTemplate
import
com.yidianling.course.widget.CustomPagerTransformer
import
com.yidianling.course.widget.CustomPagerTransformer
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
...
@@ -106,7 +106,7 @@ class CoursePosterActivity : BaseActivity() {
...
@@ -106,7 +106,7 @@ class CoursePosterActivity : BaseActivity() {
}
}
private
fun
getData
()
{
private
fun
getData
()
{
RetrofitUtils
.
getPosterData
(
courseId
)
Course
RetrofitUtils
.
getPosterData
(
courseId
)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
resp
->
.
subscribe
({
resp
->
...
...
m-course/src/main/java/com/yidianling/course/FlutterCourseHomeFragment.kt
View file @
ab5f7bff
...
@@ -17,7 +17,7 @@ import com.ydl.ydlcommon.utils.actionutil.BIConstants
...
@@ -17,7 +17,7 @@ import com.ydl.ydlcommon.utils.actionutil.BIConstants
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.course.bean.CourseCouponBean
import
com.yidianling.course.bean.CourseCouponBean
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
com.yidianling.course.flutterPlugin.CourseSendPlugin
import
com.yidianling.course.flutterPlugin.CourseSendPlugin
import
com.yidianling.course.widget.CourseCouponDialog
import
com.yidianling.course.widget.CourseCouponDialog
import
com.yidianling.router.RouterManager
import
com.yidianling.router.RouterManager
...
@@ -40,7 +40,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
...
@@ -40,7 +40,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
private
var
hasRequestCoupon
=
false
private
var
hasRequestCoupon
=
false
private
var
dialog
:
CourseCouponDialog
?
=
null
private
var
dialog
:
CourseCouponDialog
?
=
null
override
fun
initChannelPlugin
(
flutterView
:
FlutterView
)
{
override
fun
initChannelPlugin
(
flutterView
:
FlutterView
)
{
CoursePlugin
.
r
i
gister
(
this
,
flutterView
)
CoursePlugin
.
r
e
gister
(
this
,
flutterView
)
CourseSendPlugin
.
initContext
(
this
,
flutterView
)
CourseSendPlugin
.
initContext
(
this
,
flutterView
)
}
}
...
@@ -85,7 +85,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
...
@@ -85,7 +85,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
@SuppressLint
(
"SimpleDateFormat"
,
"CheckResult"
)
@SuppressLint
(
"SimpleDateFormat"
,
"CheckResult"
)
private
fun
getCouponData
()
{
private
fun
getCouponData
()
{
val
(
userId
)
=
YdlCommonRouterManager
.
getYdlCommonRoute
().
getUserInfo
()
?:
return
val
(
userId
)
=
YdlCommonRouterManager
.
getYdlCommonRoute
().
getUserInfo
()
?:
return
RetrofitUtils
.
getCourseCoupons
(
userId
,
"3"
,
"1"
,
"3"
)
Course
RetrofitUtils
.
getCourseCoupons
(
userId
,
"3"
,
"1"
,
"3"
)
.
compose
(
RxUtils
.
netCheck
())
.
compose
(
RxUtils
.
netCheck
())
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
...
@@ -151,7 +151,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
...
@@ -151,7 +151,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
bean
.
couponIds
=
couponIds
bean
.
couponIds
=
couponIds
bean
.
uid
=
userId
bean
.
uid
=
userId
val
couponIdsStr
=
Gson
().
toJson
(
bean
)
val
couponIdsStr
=
Gson
().
toJson
(
bean
)
RetrofitUtils
.
receiveCoupon
(
couponIdsStr
)
Course
RetrofitUtils
.
receiveCoupon
(
couponIdsStr
)
.
compose
(
RxUtils
.
netCheck
())
.
compose
(
RxUtils
.
netCheck
())
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
...
...
m-course/src/main/java/com/yidianling/course/courseNew/CourseTopicActivity.kt
View file @
ab5f7bff
...
@@ -20,7 +20,7 @@ import com.ydl.ydlcommon.utils.UMEventUtils
...
@@ -20,7 +20,7 @@ import com.ydl.ydlcommon.utils.UMEventUtils
import
com.yidianling.common.tools.LogUtil
import
com.yidianling.common.tools.LogUtil
import
com.yidianling.common.tools.RxNetTool
import
com.yidianling.common.tools.RxNetTool
import
com.yidianling.course.R
import
com.yidianling.course.R
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
com.yidianling.course.bean.Course
import
com.yidianling.course.bean.Course
import
com.yidianling.course.model.TopicCourseBean
import
com.yidianling.course.model.TopicCourseBean
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
...
@@ -114,7 +114,7 @@ class CourseTopicActivity : BaseActivity(), View.OnClickListener, SwipeRefreshLa
...
@@ -114,7 +114,7 @@ class CourseTopicActivity : BaseActivity(), View.OnClickListener, SwipeRefreshLa
}
}
course_topic_rcv
.
visibility
=
View
.
VISIBLE
course_topic_rcv
.
visibility
=
View
.
VISIBLE
v_no_network
.
visibility
=
View
.
GONE
v_no_network
.
visibility
=
View
.
GONE
RetrofitUtils
.
getCourseTopic
(
specialId
.
toString
())
Course
RetrofitUtils
.
getCourseTopic
(
specialId
.
toString
())
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
compose
(
RxUtils
.
resultJavaData
())
.
compose
(
RxUtils
.
resultJavaData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
...
...
m-course/src/main/java/com/yidianling/course/courseNew/courseList/CourseListContainerActivity.kt
View file @
ab5f7bff
...
@@ -36,7 +36,7 @@ import com.yidianling.course.courseNew.LoadMoreView
...
@@ -36,7 +36,7 @@ import com.yidianling.course.courseNew.LoadMoreView
import
com.yidianling.course.courseNew.courseList.widget.CourseFilterPopupWindow
import
com.yidianling.course.courseNew.courseList.widget.CourseFilterPopupWindow
import
com.yidianling.course.courseNew.courseList.widget.CourseGoodPopupWindow
import
com.yidianling.course.courseNew.courseList.widget.CourseGoodPopupWindow
import
com.yidianling.course.courseNew.courseList.widget.CourseSortPopupWindow
import
com.yidianling.course.courseNew.courseList.widget.CourseSortPopupWindow
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
com.yidianling.course.bean.Course
import
com.yidianling.course.bean.Course
import
com.yidianling.course.model.CourseCategoryBean
import
com.yidianling.course.model.CourseCategoryBean
import
com.yidianling.course.router.CourseIn
import
com.yidianling.course.router.CourseIn
...
@@ -174,7 +174,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
...
@@ -174,7 +174,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
*/
*/
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
private
fun
loadData
()
{
private
fun
loadData
()
{
RetrofitUtils
.
getCourseListCategory
()
Course
RetrofitUtils
.
getCourseListCategory
()
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
compose
(
RxUtils
.
resultJavaData
())
.
compose
(
RxUtils
.
resultJavaData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
...
@@ -459,7 +459,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
...
@@ -459,7 +459,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
v_loading
.
setViewType
(
LogoLoadingView
.
TYPE_LOADING
,
null
)
v_loading
.
setViewType
(
LogoLoadingView
.
TYPE_LOADING
,
null
)
}
}
RetrofitUtils
.
getCourseList
(
urlParams
).
compose
(
RxUtils
.
resultJavaData
()).
subscribeOn
(
Schedulers
.
io
())
Course
RetrofitUtils
.
getCourseList
(
urlParams
).
compose
(
RxUtils
.
resultJavaData
()).
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
resp
->
.
subscribe
({
resp
->
if
(
resp
.
list
.
isNotEmpty
())
{
if
(
resp
.
list
.
isNotEmpty
())
{
...
@@ -509,7 +509,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
...
@@ -509,7 +509,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
v_loading
.
setViewType
(
LogoLoadingView
.
TYPE_NET_LOSS
,
"哎呦,网络开小差了"
)
v_loading
.
setViewType
(
LogoLoadingView
.
TYPE_NET_LOSS
,
"哎呦,网络开小差了"
)
}
else
{
}
else
{
ToastHelper
.
show
(
"网络不给力"
)
ToastHelper
.
show
(
"网络不给力"
)
RetrofitUtils
.
handleError
(
this
@CourseListContainerActivity
,
throwable
)
Course
RetrofitUtils
.
handleError
(
this
@CourseListContainerActivity
,
throwable
)
}
}
})
})
}
}
...
...
m-course/src/main/java/com/yidianling/course/coursePlay/CourseCommentActivity.kt
View file @
ab5f7bff
...
@@ -15,7 +15,7 @@ import com.yidianling.common.tools.ToastUtil
...
@@ -15,7 +15,7 @@ import com.yidianling.common.tools.ToastUtil
import
com.yidianling.course.CourseConstants
import
com.yidianling.course.CourseConstants
import
com.yidianling.course.R
import
com.yidianling.course.R
import
com.yidianling.course.net.Command
import
com.yidianling.course.net.Command
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.main.activity_course_commeny.*
import
kotlinx.android.synthetic.main.activity_course_commeny.*
...
@@ -86,7 +86,7 @@ class CourseCommentActivity : BaseActivity() {
...
@@ -86,7 +86,7 @@ class CourseCommentActivity : BaseActivity() {
private
fun
commitReply
(
content
:
String
)
{
private
fun
commitReply
(
content
:
String
)
{
showProgressDialog
(
null
)
showProgressDialog
(
null
)
val
cmd
=
Command
.
CourseCommitReply
(
courseId
!!
.
toInt
(),
content
)
val
cmd
=
Command
.
CourseCommitReply
(
courseId
!!
.
toInt
(),
content
)
RetrofitUtils
.
commitCourseReply
(
cmd
)
Course
RetrofitUtils
.
commitCourseReply
(
cmd
)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
resp
->
.
subscribe
({
resp
->
...
@@ -104,7 +104,7 @@ class CourseCommentActivity : BaseActivity() {
...
@@ -104,7 +104,7 @@ class CourseCommentActivity : BaseActivity() {
}
}
},
{
t
->
},
{
t
->
dismissProgressDialog
()
dismissProgressDialog
()
RetrofitUtils
.
handleError
(
this
,
t
)
Course
RetrofitUtils
.
handleError
(
this
,
t
)
LogHelper
.
getInstance
().
writeLogSync
(
"提交评论失败:"
+
t
.
message
)
LogHelper
.
getInstance
().
writeLogSync
(
"提交评论失败:"
+
t
.
message
)
})
})
}
}
...
...
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayActivity.kt
View file @
ab5f7bff
...
@@ -617,13 +617,14 @@ class CoursePlayActivity : BaseActivity() {
...
@@ -617,13 +617,14 @@ class CoursePlayActivity : BaseActivity() {
var
status
=
Utils
.
getValue
(
videoView
,
"status"
)
var
status
=
Utils
.
getValue
(
videoView
,
"status"
)
//视频课程正在播放中
//视频课程正在播放中
if
(
status
==
PlayStateParams
.
STATE_PLAYING
)
{
if
(
status
==
PlayStateParams
.
STATE_PLAYING
)
{
YDLMusicHelper
.
title
=
courPlayBean
?.
courseExtra
?.
title
//todo 视屏播放
YDLMusicHelper
.
cover
=
courPlayBean
?.
courseExtra
?.
pic
// YDLMusicHelper.title = courPlayBean?.courseExtra?.title
YDLMusicHelper
.
name
=
courPlayBean
?.
courseExtra
?.
doctorName
// YDLMusicHelper.cover = courPlayBean?.courseExtra?.pic
YDLMusicHelper
.
isVideoPlaying
=
true
// YDLMusicHelper.name = courPlayBean?.courseExtra?.doctorName
YDLMusicHelper
.
playType
=
1
// YDLMusicHelper.isVideoPlaying = true
YDLMusicHelper
.
courseVideoUlr
=
(
play_view
as
CoursePlayItemViewVideo
).
videoUrl
// YDLMusicHelper.playType = 1
YDLMusicHelper
.
course_id
=
courPlayBean
?.
courseExtra
?.
id
!!
.
toInt
()
// YDLMusicHelper.courseVideoUlr = (play_view as CoursePlayItemViewVideo).videoUrl
// YDLMusicHelper.course_id = courPlayBean?.courseExtra?.id!!.toInt()
PlayerFloatHelper
.
show
(
this
)
PlayerFloatHelper
.
show
(
this
)
}
}
...
...
m-course/src/main/java/com/yidianling/course/coursePlay/CourseReplyListActivity.kt
0 → 100644
View file @
ab5f7bff
package
com.yidianling.course.coursePlay
import
android.annotation.SuppressLint
import
android.support.v7.widget.LinearLayoutManager
import
android.support.v7.widget.RecyclerView
import
com.ydl.ydl_image.module.GlideApp
import
com.ydl.ydlcommon.adapter.CommonRecyclerAdapter
import
com.ydl.ydlcommon.base.BaseActivity
import
com.ydl.ydlcommon.view.BaseViewHolder
import
com.ydl.ydlcommon.view.CircleImageView
import
com.ydl.ydlcommon.view.FootViewLoadMore
import
com.ydl.ydlcommon.view.TitleBar
import
com.yidianling.common.tools.LogUtil
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.course.R
import
com.yidianling.course.bean.CoursePlayBean
import
com.yidianling.course.net.Command
import
com.yidianling.course.net.CourseRetrofitUtils
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
/**
* 课程课后笔记列表
*
*/
class
CourseReplyListActivity
:
BaseActivity
()
{
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
activity_course_reply_list
}
override
fun
initDataAndEvent
()
{
course_id
=
intent
.
getIntExtra
(
"course_id"
,
0
)
initView
()
getListData
(
false
)
}
var
title_bar
:
TitleBar
?
=
null
var
recycler_list
:
RecyclerView
?
=
null
var
footView
:
FootViewLoadMore
?
=
null
var
adapter
:
CommonRecyclerAdapter
<
CoursePlayBean
.
Comments
>?
=
null
var
page
=
1
//分页
//课程id
var
course_id
=
0
fun
initView
()
{
title_bar
=
findViewById
<
TitleBar
>(
R
.
id
.
title_bar
)
recycler_list
=
findViewById
<
RecyclerView
>(
R
.
id
.
recycler_list
)
recycler_list
?.
layoutManager
=
LinearLayoutManager
(
mContext
,
LinearLayoutManager
.
VERTICAL
,
false
)
adapter
=
CommonRecyclerAdapter
<
CoursePlayBean
.
Comments
>(
recycler_list
,
R
.
layout
.
item_course_play_recylist
)
.
setBindDataCallback
(
object
:
CommonRecyclerAdapter
.
BindDataCallback
<
CoursePlayBean
.
Comments
>
{
override
fun
bindDatabindData
(
holder
:
BaseViewHolder
,
t
:
CoursePlayBean
.
Comments
,
position
:
Int
)
{
//绑定数据
var
img
:
CircleImageView
=
holder
.
getView
(
R
.
id
.
img_head
)
GlideApp
.
with
(
applicationContext
).
load
(
t
.
head
).
into
(
img
)
holder
.
setText
(
R
.
id
.
text_name
,
t
.
name
)
holder
.
setText
(
R
.
id
.
text_time
,
t
.
create_time
)
holder
.
setText
(
R
.
id
.
text_des
,
t
.
content
)
}
})
.
setOnLoadMoreListener
(
object
:
CommonRecyclerAdapter
.
OnLoadMoreLIstener
{
override
fun
onLoadMore
()
{
getListData
(
true
)
LogUtil
.
e
(
"---------------------------------------"
)
}
})
footView
=
FootViewLoadMore
(
mContext
)
adapter
?.
addFootView
(
footView
)
recycler_list
?.
adapter
=
adapter
}
//获取列表数据
@SuppressLint
(
"CheckResult"
)
fun
getListData
(
isLoadMore
:
Boolean
)
{
if
(
isLoadMore
)
{
page
++
}
else
{
page
=
1
}
if
(
isLoadMore
)
{
footView
?.
onLoading
()
}
else
{
showProgressDialog
(
null
)
}
val
cmd
=
Command
.
CourseReplyList
(
course_id
,
page
)
CourseRetrofitUtils
.
courseReplyList
(
cmd
)
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
resp
->
if
(!
isLoadMore
)
{
dismissProgressDialog
()
}
if
(
resp
.
code
==
0
)
{
//跟新view显示
updateView
(
isLoadMore
,
resp
.
data
as
List
<
CoursePlayBean
.
Comments
>)
}
else
{
footView
?.
onError
()
ToastUtil
.
toastShort
(
resp
.
msg
)
}
},
{
throwable
->
footView
?.
onError
()
if
(!
isLoadMore
)
{
dismissProgressDialog
()
}
CourseRetrofitUtils
.
handleError
(
mContext
,
throwable
)
})
}
//跟新视图
fun
updateView
(
isLoadMore
:
Boolean
,
list
:
List
<
CoursePlayBean
.
Comments
>)
{
if
(
list
==
null
)
return
if
(
list
.
size
==
0
)
{
footView
?.
onFinish
()
return
}
if
(
isLoadMore
)
{
adapter
?.
addDatas
(
list
)
}
else
{
adapter
?.
update
(
list
)
}
}
}
m-course/src/main/java/com/yidianling/course/coursePlay/presenter/CoursePlayPresenter.kt
View file @
ab5f7bff
...
@@ -4,7 +4,7 @@ import android.annotation.SuppressLint
...
@@ -4,7 +4,7 @@ import android.annotation.SuppressLint
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.course.bean.CourseMediaDetailBean
import
com.yidianling.course.bean.CourseMediaDetailBean
import
com.yidianling.course.coursePlay.CoursePlayActivity
import
com.yidianling.course.coursePlay.CoursePlayActivity
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
io.reactivex.schedulers.Schedulers
...
@@ -16,7 +16,7 @@ class CoursePlayPresenter(val view: CoursePlayActivity) {
...
@@ -16,7 +16,7 @@ class CoursePlayPresenter(val view: CoursePlayActivity) {
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
fun
getInitData
(
course_id
:
Int
)
{
fun
getInitData
(
course_id
:
Int
)
{
view
.
showLoadingDialog
()
view
.
showLoadingDialog
()
RetrofitUtils
.
getCoursePlayData
(
course_id
.
toString
())
Course
RetrofitUtils
.
getCoursePlayData
(
course_id
.
toString
())
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
resp
->
.
subscribe
({
resp
->
...
@@ -33,7 +33,7 @@ class CoursePlayPresenter(val view: CoursePlayActivity) {
...
@@ -33,7 +33,7 @@ class CoursePlayPresenter(val view: CoursePlayActivity) {
}
}
},
{
t
->
},
{
t
->
view
.
dismissLoadingDialog
()
view
.
dismissLoadingDialog
()
RetrofitUtils
.
handleError
(
view
,
t
)
Course
RetrofitUtils
.
handleError
(
view
,
t
)
})
})
}
}
...
...
m-course/src/main/java/com/yidianling/course/course_special_list/model/CourseSpecialListModelImpl.kt
View file @
ab5f7bff
package
com.yidianling.course.course_special_list.model
package
com.yidianling.course.course_special_list.model
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
com.yidianling.course.course_special_list.bean.CourseSpecialListBean
import
com.yidianling.course.course_special_list.bean.CourseSpecialListBean
import
com.yidianling.course.course_special_list.contract.ICourseSpecialListContract
import
com.yidianling.course.course_special_list.contract.ICourseSpecialListContract
import
com.yidianling.course.course_special_list.bean.CourseSpecialListParam
import
com.yidianling.course.course_special_list.bean.CourseSpecialListParam
...
@@ -17,7 +17,7 @@ import io.reactivex.Observable
...
@@ -17,7 +17,7 @@ import io.reactivex.Observable
class
CourseSpecialListModelImpl
:
ICourseSpecialListContract
.
Model
{
class
CourseSpecialListModelImpl
:
ICourseSpecialListContract
.
Model
{
override
fun
specialListRequest
(
param
:
CourseSpecialListParam
):
Observable
<
CourseSpecialListBean
>
{
override
fun
specialListRequest
(
param
:
CourseSpecialListParam
):
Observable
<
CourseSpecialListBean
>
{
return
RetrofitUtils
.
specialListRequest
(
param
)
return
Course
RetrofitUtils
.
specialListRequest
(
param
)
.
compose
(
RxUtils
.
resultJavaData
())
.
compose
(
RxUtils
.
resultJavaData
())
}
}
}
}
\ No newline at end of file
m-course/src/main/java/com/yidianling/course/flutterPlugin/CoursePlugin.kt
View file @
ab5f7bff
import
android.content.Intent
import
android.content.Intent
import
android.net.Uri
import
android.net.Uri
import
android.text.TextUtils
import
android.text.TextUtils
import
com.ydl.media.audio.AudioPlayer
import
com.ydl.media.audio.model.Music
import
com.ydl.media.view.PlayTypeEnum
import
com.ydl.media.view.PlayerFloatHelper
import
com.ydl.media.view.PlayerFloatView
import
com.ydl.webview.H5Params
import
com.ydl.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydl_router.manager.YDLRouterManager
import
com.ydl.ydl_router.manager.YDLRouterManager
...
@@ -40,7 +45,7 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
...
@@ -40,7 +45,7 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
const
val
PLAYCOURSEFILE
:
String
=
"playCourseFile"
const
val
PLAYCOURSEFILE
:
String
=
"playCourseFile"
const
val
PAUSECOURSEPLAY
:
String
=
"pauseCoursePlay"
const
val
PAUSECOURSEPLAY
:
String
=
"pauseCoursePlay"
fun
r
i
gister
(
fragment
:
BaseFlutterFragment
,
flutterView
:
FlutterView
)
{
fun
r
e
gister
(
fragment
:
BaseFlutterFragment
,
flutterView
:
FlutterView
)
{
MethodChannel
(
flutterView
,
CHANNEL
).
setMethodCallHandler
(
CoursePlugin
(
fragment
))
MethodChannel
(
flutterView
,
CHANNEL
).
setMethodCallHandler
(
CoursePlugin
(
fragment
))
}
}
}
}
...
@@ -55,7 +60,10 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
...
@@ -55,7 +60,10 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
?:
""
?:
""
mMap
[
"isFromApp"
]
=
"1"
mMap
[
"isFromApp"
]
=
"1"
mMap
[
"version"
]
=
RxDeviceTool
.
getAppVersionName
(
BaseApp
.
getApp
())
mMap
[
"version"
]
=
RxDeviceTool
.
getAppVersionName
(
BaseApp
.
getApp
())
mMap
[
"osBuild"
]
=
RxDeviceTool
.
getBuildMANUFACTURER
()
+
","
+
RxDeviceTool
.
getBuildBrandModel
()
+
","
+
RxDeviceTool
.
getOsBuileVersion
()
+
","
+
RxDeviceTool
.
getAppVersionName
(
BaseApp
.
getApp
())
mMap
[
"osBuild"
]
=
RxDeviceTool
.
getBuildMANUFACTURER
()
+
","
+
RxDeviceTool
.
getBuildBrandModel
()
+
","
+
RxDeviceTool
.
getOsBuileVersion
()
+
","
+
RxDeviceTool
.
getAppVersionName
(
BaseApp
.
getApp
()
)
result
.
success
(
mMap
)
result
.
success
(
mMap
)
}
}
JUMPURL
->
{
JUMPURL
->
{
...
@@ -65,7 +73,12 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
...
@@ -65,7 +73,12 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
jumpUrl
!!
.
contains
(
"user/login"
)
->
mFragment
!!
.
startActivity
(
CourseIn
.
loginWayIntent
(
mFragment
!!
.
activity
))
jumpUrl
!!
.
contains
(
"user/login"
)
->
mFragment
!!
.
startActivity
(
CourseIn
.
loginWayIntent
(
mFragment
!!
.
activity
))
jumpUrl
.
contains
(
"course/myCourse"
)
->
MyCourseActivity
.
start
(
mFragment
!!
.
activity
)
jumpUrl
.
contains
(
"course/myCourse"
)
->
MyCourseActivity
.
start
(
mFragment
!!
.
activity
)
jumpUrl
.
contains
(
"course/specialList"
)
->
//跳转专题列表页
jumpUrl
.
contains
(
"course/specialList"
)
->
//跳转专题列表页
mFragment
!!
.
activity
.
startActivity
(
Intent
(
mFragment
!!
.
activity
,
CourseSpecialListActivity
::
class
.
java
))
mFragment
!!
.
activity
.
startActivity
(
Intent
(
mFragment
!!
.
activity
,
CourseSpecialListActivity
::
class
.
java
)
)
jumpUrl
.
contains
(
"course/detail"
)
->
{
jumpUrl
.
contains
(
"course/detail"
)
->
{
var
uri
=
Uri
.
parse
(
jumpUrl
)
var
uri
=
Uri
.
parse
(
jumpUrl
)
var
id
=
uri
.
getQueryParameter
(
"id"
)
var
id
=
uri
.
getQueryParameter
(
"id"
)
...
@@ -82,8 +95,8 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
...
@@ -82,8 +95,8 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
playMedia
(
fileInfo
)
playMedia
(
fileInfo
)
}
}
PAUSECOURSEPLAY
->
{
PAUSECOURSEPLAY
->
{
if
(
YDLMusicHelper
.
isPlaying
()
)
{
if
(
AudioPlayer
.
get
().
isPlaying
)
{
YDLMusicHelper
.
p
ause
()
AudioPlayer
.
get
().
playP
ause
()
PlayerFloatHelper
.
updatePlayState
()
PlayerFloatHelper
.
updatePlayState
()
}
}
}
}
...
@@ -94,51 +107,50 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
...
@@ -94,51 +107,50 @@ class CoursePlugin : MethodChannel.MethodCallHandler {
if
(
PlayerFloatHelper
.
isShow
(
mFragment
!!
.
activity
))
{
if
(
PlayerFloatHelper
.
isShow
(
mFragment
!!
.
activity
))
{
PlayerFloatHelper
.
hide
()
PlayerFloatHelper
.
hide
()
PlayerFloatHelper
.
removeView
(
mFragment
!!
.
activity
)
PlayerFloatHelper
.
removeView
(
mFragment
!!
.
activity
)
YDLMusicHelper
.
clearTempData
()
AudioPlayer
.
get
().
stopPlayer
()
YDLMusicHelper
.
stop
()
}
else
{
}
else
{
PlayerFloatHelper
.
removeView
(
mFragment
!!
.
activity
)
PlayerFloatHelper
.
removeView
(
mFragment
!!
.
activity
)
}
}
YDLMusicHelper
.
title
=
fileInfo
[
"title"
].
toString
()
val
music
=
Music
()
YDLMusicHelper
.
name
=
fileInfo
[
"nam
e"
].
toString
()
music
.
title
=
fileInfo
[
"titl
e"
].
toString
()
YDLMusicHelper
.
cover
=
fileInfo
[
"cover
"
].
toString
()
music
.
artist
=
fileInfo
[
"name
"
].
toString
()
YDLMusicHelper
.
course_id
=
fileInfo
[
"courseId"
]
as
Int
music
.
coverPath
=
fileInfo
[
"cover"
].
toString
()
YDLMusic
Helper
.
isCanClick
=
false
PlayerFloat
Helper
.
isCanClick
=
false
var
demoType
=
fileInfo
[
"demoType"
]
as
Int
var
demoType
=
fileInfo
[
"demoType"
]
as
Int
var
url
=
fileInfo
[
"url"
].
toString
()
var
url
=
fileInfo
[
"url"
].
toString
()
if
(
demoType
==
1
)
{
if
(
demoType
==
1
)
{
YDLMusicHelper
.
playType
=
0
PlayerFloatHelper
.
playingType
=
PlayTypeEnum
.
PLAY_TYPE_COURSE
PlayerFloatHelper
.
show
(
mFragment
!!
.
activity
)
music
.
path
=
url
YDLMusicHelper
.
coursePlay
(
url
)
AudioPlayer
.
get
().
singlePlay
(
music
)
}
}
if
(
demoType
==
2
)
{
if
(
demoType
==
2
)
{
YDLMusicHelper
.
playType
=
1
//todo 视屏播放
YDLMusicHelper
.
courseVideoUlr
=
url
// YDLMusicHelper.playType = 1
// YDLMusicHelper.courseVideoUlr = url
PlayerFloatHelper
.
show
(
mFragment
!!
.
activity
)
//
// PlayerFloatHelper.show(mFragment!!.activity)
}
}
PlayerFloatHelper
.
addClickListener
(
object
:
PlayerFloatView
.
FloatViewPlayListener
{
PlayerFloatHelper
.
addClickListener
(
object
:
PlayerFloatView
.
FloatViewPlayListener
{
override
fun
onStartClick
()
{
override
fun
onStartClick
()
{
if
(!
YDLMusicHelper
.
isCanClick
&&
YDLMusicHelper
.
course_id
!=
0
)
{
if
(!
PlayerFloatHelper
.
isCanClick
&&
PlayerFloatHelper
.
playingType
==
PlayTypeEnum
.
PLAY_TYPE_COURSE
)
{
CourseSendPlugin
.
sendMsg
(
true
)
CourseSendPlugin
.
sendMsg
(
true
)
}
}
}
}
override
fun
onPlayFinish
()
{
override
fun
onPlayFinish
()
{
PlayerFloatHelper
.
hide
()
PlayerFloatHelper
.
hide
()
YDLMusicHelper
.
clearTempData
()
AudioPlayer
.
get
().
stopPlayer
()
YDLMusicHelper
.
stop
()
}
}
override
fun
onPauseClick
()
{
override
fun
onPauseClick
()
{
if
(!
YDLMusicHelper
.
isCanClick
&&
YDLMusicHelper
.
course_id
!=
0
)
{
if
(!
PlayerFloatHelper
.
isCanClick
&&
PlayerFloatHelper
.
playingType
==
PlayTypeEnum
.
PLAY_TYPE_COURSE
)
{
CourseSendPlugin
.
sendMsg
(
false
)
CourseSendPlugin
.
sendMsg
(
false
)
}
}
}
}
...
...
m-course/src/main/java/com/yidianling/course/net/RetrofitUtils.java
→
m-course/src/main/java/com/yidianling/course/net/
Course
RetrofitUtils.java
View file @
ab5f7bff
package
com
.
yidianling
.
course
.
net
;
package
com
.
yidianling
.
course
.
net
;
import
android.content.Context
;
import
android.content.Context
;
import
com.ydl.ydlcommon.base.config.HttpConfig
;
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
;
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
;
import
com.ydl.ydlcommon.data.http.BaseResponse
;
import
com.ydl.ydlcommon.data.http.BaseResponse
;
import
com.ydl.ydlcommon.data.http.FormatText
;
import
com.ydl.ydlcommon.data.http.FormatText
;
...
@@ -8,9 +9,6 @@ import com.ydl.ydlcommon.utils.NetworkParamsUtils;
...
@@ -8,9 +9,6 @@ import com.ydl.ydlcommon.utils.NetworkParamsUtils;
import
com.ydl.ydlcommon.utils.remind.HttpErrorUtils
;
import
com.ydl.ydlcommon.utils.remind.HttpErrorUtils
;
import
com.ydl.ydlnet.YDLHttpUtils
;
import
com.ydl.ydlnet.YDLHttpUtils
;
import
com.yidianling.course.bean.*
;
import
com.yidianling.course.bean.*
;
import
com.yidianling.course.bean.Course
;
import
com.yidianling.course.bean.CourseListDataBean
;
import
com.yidianling.course.bean.CoursePlayBean
;
import
com.yidianling.course.course_special_list.bean.CourseSpecialListBean
;
import
com.yidianling.course.course_special_list.bean.CourseSpecialListBean
;
import
com.yidianling.course.course_special_list.bean.CourseSpecialListParam
;
import
com.yidianling.course.course_special_list.bean.CourseSpecialListParam
;
import
com.yidianling.course.model.CourseCategoryBean
;
import
com.yidianling.course.model.CourseCategoryBean
;
...
@@ -25,7 +23,7 @@ import java.util.List;
...
@@ -25,7 +23,7 @@ import java.util.List;
* Created by Jim on 2018/2/26 0026.
* Created by Jim on 2018/2/26 0026.
*/
*/
public
class
RetrofitUtils
{
public
class
Course
RetrofitUtils
{
public
static
void
handleError
(
Context
context
,
Throwable
e
)
{
public
static
void
handleError
(
Context
context
,
Throwable
e
)
{
HttpErrorUtils
.
Companion
.
handleError
(
context
,
e
);
HttpErrorUtils
.
Companion
.
handleError
(
context
,
e
);
...
@@ -35,41 +33,28 @@ public class RetrofitUtils {
...
@@ -35,41 +33,28 @@ public class RetrofitUtils {
//课程提交回复
//课程提交回复
public
static
Observable
<
BaseResponse
<
Object
>>
commitCourseReply
(
Command
.
CourseCommitReply
cmd
)
{
public
static
Observable
<
BaseResponse
<
Object
>>
commitCourseReply
(
Command
.
CourseCommitReply
cmd
)
{
List
<
FormatText
>
list
=
NetworkParamsUtils
.
getPostList
(
cmd
);
List
<
FormatText
>
list
=
NetworkParamsUtils
.
getPostList
(
cmd
);
// return YdlRetrofitUtils.getRxRetrofit().newBuilder().baseUrl(YdlRetrofitUtils.SERVER_API_JAVA_URL).build().create(NetApiStore.class).commitCourseReply(getMaps(list));
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
commitCourseReply
(
NetworkParamsUtils
.
getMaps
(
list
));
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
commitCourseReply
(
NetworkParamsUtils
.
getMaps
(
list
));
}
}
//获取课程海报分享数据
//获取课程海报分享数据
public
static
Observable
<
BaseResponse
<
PostersShareBean
>>
getPosterData
(
String
courseId
)
{
public
static
Observable
<
BaseResponse
<
PostersShareBean
>>
getPosterData
(
String
courseId
)
{
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getPosterData
(
courseId
);
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getPosterData
(
courseId
);
// return YdlRetrofitUtils.getRxRetrofit().newBuilder().baseUrl(YdlRetrofitUtils.SERVER_API_JAVA_URL).build().create(NetApiStore.class).getPosterData(courseId);
}
}
//课程课后笔记列表
//课程课后笔记列表
public
static
Observable
<
BaseResponse
<
List
<
CoursePlayBean
.
Comments
>>>
courseReplyList
(
Command
.
CourseReplyList
cmd
)
{
public
static
Observable
<
BaseResponse
<
List
<
CoursePlayBean
.
Comments
>>>
courseReplyList
(
Command
.
CourseReplyList
cmd
)
{
List
<
FormatText
>
list
=
NetworkParamsUtils
.
getPostList
(
cmd
);
List
<
FormatText
>
list
=
NetworkParamsUtils
.
getPostList
(
cmd
);
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
courseReplyList
(
NetworkParamsUtils
.
getMaps
(
list
));
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
courseReplyList
(
NetworkParamsUtils
.
getMaps
(
list
));
// return getRxRetrofit().create(NetApiStore.class).courseReplyList(getMaps(list));
}
//获取课程列表(php接口)
public
static
Observable
<
BaseResponse
<
List
<
Course
>>>
getCourseList
(
Command
.
GetCourse
cmd
)
{
List
<
FormatText
>
list
=
NetworkParamsUtils
.
getPostList
(
cmd
);
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getPhpCourseList
(
NetworkParamsUtils
.
getMaps
(
list
));
// return getRxRetrofit().create(NetApiStore.class).getPhpCourseList(getMaps(list));
}
}
//获取课程列表分类
//获取课程列表分类
public
static
Observable
<
BaseAPIResponse
<
CourseCategoryBean
>>
getCourseListCategory
()
{
public
static
Observable
<
BaseAPIResponse
<
CourseCategoryBean
>>
getCourseListCategory
()
{
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseListCategory
();
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseListCategory
();
// return getRxRetrofit().newBuilder().baseUrl(YdlRetrofitUtils.SERVER_API_JAVA_URL).build().create(NetApiStore.class).getCourseListCategory();
}
}
//获取课程专题
//获取课程专题
public
static
Observable
<
BaseAPIResponse
<
TopicCourseBean
>>
getCourseTopic
(
String
id
)
{
public
static
Observable
<
BaseAPIResponse
<
TopicCourseBean
>>
getCourseTopic
(
String
id
)
{
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseSpecial
(
id
);
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseSpecial
(
id
);
// return getRxRetrofit().newBuilder().baseUrl(YdlRetrofitUtils.SERVER_API_JAVA_URL).build().create(NetApiStore.class).getCourseSpecial(id);
}
}
...
@@ -84,8 +69,6 @@ public class RetrofitUtils {
...
@@ -84,8 +69,6 @@ public class RetrofitUtils {
*/
*/
public
static
Observable
<
BaseResponse
<
List
<
CourseCouponBean
>>>
getCourseCoupons
(
String
uid
,
String
services
,
String
receiveType
,
String
applyEnds
)
{
public
static
Observable
<
BaseResponse
<
List
<
CourseCouponBean
>>>
getCourseCoupons
(
String
uid
,
String
services
,
String
receiveType
,
String
applyEnds
)
{
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseCoupons
(
uid
,
services
,
receiveType
,
applyEnds
);
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseCoupons
(
uid
,
services
,
receiveType
,
applyEnds
);
// return YdlRetrofitUtils.getRxRetrofit().newBuilder().baseUrl(YdlRetrofitUtils.SERVER_COUPON_URL)
// .build().create(NetApiStore.class).getCourseCoupons(uid, services, receiveType, applyEnds);
}
}
//领取优惠券
//领取优惠券
...
@@ -102,11 +85,11 @@ public class RetrofitUtils {
...
@@ -102,11 +85,11 @@ public class RetrofitUtils {
StringBuffer
sb
=
new
StringBuffer
();
StringBuffer
sb
=
new
StringBuffer
();
sb
.
append
(
"serviceType"
).
append
(
"="
).
append
(
param
.
getServiceType
()).
append
(
"&"
);
sb
.
append
(
"serviceType"
).
append
(
"="
).
append
(
param
.
getServiceType
()).
append
(
"&"
);
String
confideParam
=
sb
.
toString
()
+
NetworkParamsUtils
.
getCommonParam
();
String
confideParam
=
sb
.
toString
()
+
NetworkParamsUtils
.
getCommonParam
();
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCouponMax
(
confideParam
);
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCouponMax
(
HttpConfig
.
Companion
.
getJAVA_BASE_URL
()
+
"auth/coupon/max?"
+
confideParam
);
}
}
public
static
Observable
<
BaseAPIResponse
<
CourseListDataBean
>>
getCourseList
(
String
url
)
{
public
static
Observable
<
BaseAPIResponse
<
CourseListDataBean
>>
getCourseList
(
String
url
)
{
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseList
(
YdlRetrofitUtils
.
SERVER_API_JAVA_URL
+
"auth/course/getList?"
+
url
);
return
YDLHttpUtils
.
Companion
.
obtainApi
(
NetApiStore
.
class
).
getCourseList
(
HttpConfig
.
Companion
.
getJAVA_BASE_URL
()
+
"auth/course/getList?"
+
url
);
}
}
...
...
m-course/src/main/java/com/yidianling/course/net/NetApiStore.java
View file @
ab5f7bff
...
@@ -2,24 +2,20 @@ package com.yidianling.course.net;
...
@@ -2,24 +2,20 @@ package com.yidianling.course.net;
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
;
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
;
import
com.ydl.ydlcommon.data.http.BaseResponse
;
import
com.ydl.ydlcommon.data.http.BaseResponse
;
import
com.yidianling.course.bean.CouponHintResponseBean
;
import
com.yidianling.course.bean.*
;
import
com.yidianling.course.bean.CourseCouponBean
;
import
com.yidianling.course.bean.CourseMediaDetailBean
;
import
com.yidianling.course.bean.PostersShareBean
;
import
com.yidianling.course.bean.Course
;
import
com.yidianling.course.bean.CourseAddOrderBean
;
import
com.yidianling.course.bean.CourseListDataBean
;
import
com.yidianling.course.bean.CoursePlayBean
;
import
com.yidianling.course.course_special_list.bean.CourseSpecialListBean
;
import
com.yidianling.course.course_special_list.bean.CourseSpecialListBean
;
import
com.yidianling.course.model.CourseCategoryBean
;
import
com.yidianling.course.model.CourseCategoryBean
;
import
com.yidianling.course.model.TopicCourseBean
;
import
com.yidianling.course.model.TopicCourseBean
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
import
retrofit2.http.*
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
io.reactivex.Observable
;
import
static
com
.
ydl
.
ydlcommon
.
base
.
config
.
AppConfigKt
.
YDL_DOMAIN
;
import
okhttp3.RequestBody
;
import
static
com
.
ydl
.
ydlcommon
.
base
.
config
.
AppConfigKt
.
YDL_DOMAIN_COUPON_URL
;
import
retrofit2.http.*
;
import
static
com
.
ydl
.
ydlcommon
.
base
.
config
.
AppConfigKt
.
YDL_DOMAIN_JAVA
;
/**
/**
* Created by Jim on 2018/2/26 0026.
* Created by Jim on 2018/2/26 0026.
...
@@ -46,6 +42,7 @@ public interface NetApiStore {
...
@@ -46,6 +42,7 @@ public interface NetApiStore {
//课程提交回复
//课程提交回复
@FormUrlEncoded
@FormUrlEncoded
@POST
(
"auth/course/comments/add"
)
@POST
(
"auth/course/comments/add"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
Observable
<
BaseResponse
<
Object
>>
commitCourseReply
(
@FieldMap
Map
<
String
,
String
>
params
);
Observable
<
BaseResponse
<
Object
>>
commitCourseReply
(
@FieldMap
Map
<
String
,
String
>
params
);
//课程播放页--点赞
//课程播放页--点赞
...
@@ -60,6 +57,7 @@ public interface NetApiStore {
...
@@ -60,6 +57,7 @@ public interface NetApiStore {
//获取课程海报分享数据
//获取课程海报分享数据
@GET
(
"auth/course/posters/share"
)
@GET
(
"auth/course/posters/share"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
Observable
<
BaseResponse
<
PostersShareBean
>>
getPosterData
(
@Query
(
"id"
)
String
courseId
);
Observable
<
BaseResponse
<
PostersShareBean
>>
getPosterData
(
@Query
(
"id"
)
String
courseId
);
...
@@ -70,12 +68,13 @@ public interface NetApiStore {
...
@@ -70,12 +68,13 @@ public interface NetApiStore {
//课程筛选分类
//课程筛选分类
@GET
(
"auth/course/search/newsample"
)
@GET
(
"auth/course/search/newsample"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
Observable
<
BaseAPIResponse
<
CourseCategoryBean
>>
getCourseListCategory
();
Observable
<
BaseAPIResponse
<
CourseCategoryBean
>>
getCourseListCategory
();
//课程专题列表接口
//课程专题列表接口
@GET
(
"auth/course/new/listCoursesBySpecialId"
)
@GET
(
"auth/course/new/listCoursesBySpecialId"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
Observable
<
BaseAPIResponse
<
TopicCourseBean
>>
getCourseSpecial
(
@Query
(
"specialId"
)
String
uid
);
Observable
<
BaseAPIResponse
<
TopicCourseBean
>>
getCourseSpecial
(
@Query
(
"specialId"
)
String
uid
);
...
@@ -89,6 +88,7 @@ public interface NetApiStore {
...
@@ -89,6 +88,7 @@ public interface NetApiStore {
* @return
* @return
*/
*/
@GET
(
"marketing/coupon/new/available"
)
@GET
(
"marketing/coupon/new/available"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_COUPON_URL
)
Observable
<
BaseResponse
<
List
<
CourseCouponBean
>>>
getCourseCoupons
(
@Query
(
"uid"
)
String
uid
,
Observable
<
BaseResponse
<
List
<
CourseCouponBean
>>>
getCourseCoupons
(
@Query
(
"uid"
)
String
uid
,
@Query
(
"services"
)
String
services
,
@Query
(
"services"
)
String
services
,
@Query
(
"receiveType"
)
String
receiveType
,
@Query
(
"receiveType"
)
String
receiveType
,
...
@@ -96,10 +96,12 @@ public interface NetApiStore {
...
@@ -96,10 +96,12 @@ public interface NetApiStore {
//领取优惠券
//领取优惠券
@POST
(
"marketing/coupon/new/receives"
)
@POST
(
"marketing/coupon/new/receives"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_COUPON_URL
)
Observable
<
BaseResponse
<
List
<
String
>>>
receiveCoupon
(
@Body
RequestBody
body
);
Observable
<
BaseResponse
<
List
<
String
>>>
receiveCoupon
(
@Body
RequestBody
body
);
@GET
(
"auth/coupon/courseCoupon/warn"
)
@GET
(
"auth/coupon/courseCoupon/warn"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
Observable
<
BaseAPIResponse
<
CouponHintResponseBean
>>
getCouponHint
();
Observable
<
BaseAPIResponse
<
CouponHintResponseBean
>>
getCouponHint
();
...
@@ -110,11 +112,12 @@ public interface NetApiStore {
...
@@ -110,11 +112,12 @@ public interface NetApiStore {
//获取课程播放页 java 接口
//获取课程播放页 java 接口
@GET
(
"auth/course/get/all/audio-video"
)
@GET
(
"auth/course/get/all/audio-video"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
Observable
<
BaseResponse
<
CourseMediaDetailBean
>>
getCoursePlayData
(
@Query
(
"courseId"
)
String
courseId
);
Observable
<
BaseResponse
<
CourseMediaDetailBean
>>
getCoursePlayData
(
@Query
(
"courseId"
)
String
courseId
);
//课程专题列表
//课程专题列表
//todo
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
@GET
(
"auth/course/listCoursesBySpecialId"
)
@GET
(
"auth/course/listCoursesBySpecialId"
)
Observable
<
BaseAPIResponse
<
CourseSpecialListBean
>>
courseSpecialList
(
@QueryMap
Map
<
String
,
String
>
params
);
Observable
<
BaseAPIResponse
<
CourseSpecialListBean
>>
courseSpecialList
(
@QueryMap
Map
<
String
,
String
>
params
);
}
}
m-course/src/main/java/com/yidianling/course/widget/CouponHintView.kt
View file @
ab5f7bff
...
@@ -13,7 +13,7 @@ import com.ydl.ydlcommon.router.IYDLRouterConstant
...
@@ -13,7 +13,7 @@ import com.ydl.ydlcommon.router.IYDLRouterConstant
import
com.yidianling.course.R
import
com.yidianling.course.R
import
com.yidianling.course.bean.CouponHintParam
import
com.yidianling.course.bean.CouponHintParam
import
com.yidianling.course.bean.CouponHintResponseBean
import
com.yidianling.course.bean.CouponHintResponseBean
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
import
io.reactivex.functions.Consumer
import
kotlinx.android.synthetic.main.coupon_hint_view.view.*
import
kotlinx.android.synthetic.main.coupon_hint_view.view.*
...
@@ -79,7 +79,7 @@ class CouponHintView : RelativeLayout{
...
@@ -79,7 +79,7 @@ class CouponHintView : RelativeLayout{
fun
initData
(
visible
:
Int
){
fun
initData
(
visible
:
Int
){
this
.
couponHintVisible
=
visible
this
.
couponHintVisible
=
visible
RetrofitUtils
.
getCouponHint
(
CouponHintParam
(
0
)).
compose
(
RxUtils
.
resultJavaData
())
Course
RetrofitUtils
.
getCouponHint
(
CouponHintParam
(
0
)).
compose
(
RxUtils
.
resultJavaData
())
.
map
{
it
}
.
map
{
it
}
.
filter
{
it
!=
null
}
.
filter
{
it
!=
null
}
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
...
...
m-course/src/main/java/com/yidianling/course/widget/CourseItemNewView.kt
View file @
ab5f7bff
...
@@ -8,11 +8,21 @@ import android.text.TextUtils
...
@@ -8,11 +8,21 @@ import android.text.TextUtils
import
android.util.AttributeSet
import
android.util.AttributeSet
import
android.view.View
import
android.view.View
import
com.alibaba.android.arouter.launcher.ARouter
import
com.alibaba.android.arouter.launcher.ARouter
import
com.ydl.media.audio.AudioPlayer
import
com.ydl.media.audio.model.Music
import
com.ydl.media.view.PlayTypeEnum
import
com.ydl.media.view.PlayerFloatHelper
import
com.ydl.media.view.PlayerFloatView
import
com.ydl.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydl_image.module.GlideApp
import
com.ydl.ydl_image.module.GlideApp
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.utils.actionutil.BIConstants
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.course.CourseConstants
import
com.yidianling.course.CourseConstants
import
com.yidianling.course.R
import
com.yidianling.course.R
import
com.yidianling.course.bean.Course
import
com.yidianling.course.bean.Course
import
kotlinx.android.synthetic.main.item_course_new_list_view.view.*
/**
/**
* @author jiucheng
* @author jiucheng
...
@@ -33,7 +43,7 @@ class CourseItemNewView : ConstraintLayout {
...
@@ -33,7 +43,7 @@ class CourseItemNewView : ConstraintLayout {
initView
()
initView
()
}
}
constructor
(
mContext
:
Context
,
a
rrt
:
AttributeSet
)
:
super
(
mContext
,
arrt
)
{
constructor
(
mContext
:
Context
,
a
ttr
:
AttributeSet
)
:
super
(
mContext
,
attr
)
{
this
.
mContext
=
mContext
this
.
mContext
=
mContext
initView
()
initView
()
}
}
...
@@ -41,8 +51,8 @@ class CourseItemNewView : ConstraintLayout {
...
@@ -41,8 +51,8 @@ class CourseItemNewView : ConstraintLayout {
fun
initView
()
{
fun
initView
()
{
View
.
inflate
(
mContext
,
R
.
layout
.
item_course_new_list_view
,
this
)
View
.
inflate
(
mContext
,
R
.
layout
.
item_course_new_list_view
,
this
)
va
r
parma
s
=
LayoutParams
(
LayoutParams
.
MATCH_PARENT
,
LayoutParams
.
WRAP_CONTENT
)
va
l
param
s
=
LayoutParams
(
LayoutParams
.
MATCH_PARENT
,
LayoutParams
.
WRAP_CONTENT
)
layoutParams
=
par
ma
s
layoutParams
=
par
am
s
setPadding
(
RxImageTool
.
dp2px
(
13f
),
0
,
RxImageTool
.
dp2px
(
15f
),
0
)
setPadding
(
RxImageTool
.
dp2px
(
13f
),
0
,
RxImageTool
.
dp2px
(
15f
),
0
)
}
}
...
@@ -201,30 +211,30 @@ class CourseItemNewView : ConstraintLayout {
...
@@ -201,30 +211,30 @@ class CourseItemNewView : ConstraintLayout {
if
(
PlayerFloatHelper
.
isShow
(
mContext
))
{
if
(
PlayerFloatHelper
.
isShow
(
mContext
))
{
PlayerFloatHelper
.
hide
()
PlayerFloatHelper
.
hide
()
PlayerFloatHelper
.
removeView
(
mContext
)
PlayerFloatHelper
.
removeView
(
mContext
)
YDLMusicHelper
.
clearTempData
()
AudioPlayer
.
get
().
stopPlayer
()
YDLMusicHelper
.
stop
()
}
else
{
}
else
{
PlayerFloatHelper
.
removeView
(
mContext
)
PlayerFloatHelper
.
removeView
(
mContext
)
}
}
val
music
=
Music
()
music
.
title
=
course
.
title
music
.
artist
=
doctorName
music
.
coverPath
=
if
(!
TextUtils
.
isEmpty
(
course
.
image
))
course
.
image
else
course
.
pic
PlayerFloatHelper
.
isCanClick
=
false
YDLMusicHelper
.
title
=
course
.
title
YDLMusicHelper
.
name
=
doctorName
YDLMusicHelper
.
cover
=
if
(!
TextUtils
.
isEmpty
(
course
.
image
))
course
.
image
else
course
.
pic
YDLMusicHelper
.
course_id
=
course
.
id
.
toInt
()
YDLMusicHelper
.
isCanClick
=
false
if
(
course
.
demoType
==
1
)
{
if
(
course
.
demoType
==
1
)
{
YDLMusicHelper
.
playType
=
0
PlayerFloatHelper
.
playingType
=
PlayTypeEnum
.
PLAY_TYPE_COURSE
PlayerFloatHelper
.
show
(
mContext
)
music
.
path
=
course
.
demoFile
YDLMusicHelper
.
coursePlay
(
course
.
demoFile
)
AudioPlayer
.
get
().
singlePlay
(
music
)
}
}
if
(
course
.
demoType
==
2
)
{
if
(
course
.
demoType
==
2
)
{
YDLMusicHelper
.
playType
=
1
//todo 视屏播放
YDLMusicHelper
.
courseVideoUlr
=
course
.
demoFile
// YDLMusicHelper.playType = 1
// YDLMusicHelper.courseVideoUlr = course.demoFile
PlayerFloatHelper
.
show
(
mContext
)
//
// PlayerFloatHelper.show(mContext)
}
}
...
@@ -235,8 +245,7 @@ class CourseItemNewView : ConstraintLayout {
...
@@ -235,8 +245,7 @@ class CourseItemNewView : ConstraintLayout {
override
fun
onPlayFinish
()
{
override
fun
onPlayFinish
()
{
PlayerFloatHelper
.
hide
()
PlayerFloatHelper
.
hide
()
YDLMusicHelper
.
clearTempData
()
AudioPlayer
.
get
().
stopPlayer
()
YDLMusicHelper
.
stop
()
}
}
override
fun
onPauseClick
()
{
override
fun
onPauseClick
()
{
...
...
m-course/src/main/java/com/yidianling/course/widget/CourseRedPacketView.kt
View file @
ab5f7bff
...
@@ -12,7 +12,7 @@ import com.ydl.ydlcommon.data.http.ThrowableConsumer
...
@@ -12,7 +12,7 @@ import com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.router.IYDLRouterConstant
import
com.ydl.ydlcommon.router.IYDLRouterConstant
import
com.yidianling.course.R
import
com.yidianling.course.R
import
com.yidianling.course.bean.RedListParam
import
com.yidianling.course.bean.RedListParam
import
com.yidianling.course.net.RetrofitUtils
import
com.yidianling.course.net.
Course
RetrofitUtils
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
import
io.reactivex.functions.Consumer
import
kotlinx.android.synthetic.main.course_redpacket_view.view.*
import
kotlinx.android.synthetic.main.course_redpacket_view.view.*
...
@@ -83,7 +83,7 @@ class CourseRedPacketView : RelativeLayout {
...
@@ -83,7 +83,7 @@ class CourseRedPacketView : RelativeLayout {
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
fun
initData
(
visible
:
Int
)
{
fun
initData
(
visible
:
Int
)
{
this
.
redPacketVisible
=
visible
this
.
redPacketVisible
=
visible
RetrofitUtils
.
getCouponMax
(
RedListParam
(
3
)).
compose
(
RxUtils
.
resultJavaData
())
Course
RetrofitUtils
.
getCouponMax
(
RedListParam
(
3
)).
compose
(
RxUtils
.
resultJavaData
())
.
map
{
it
}
.
map
{
it
}
.
filter
{
it
!=
null
}
.
filter
{
it
!=
null
}
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
...
...
m-course/src/main/res/drawable-xhdpi/coursde_ico_course_fanli.png
0 → 100644
View file @
ab5f7bff
6.48 KB
m-course/src/main/res/drawable-xhdpi/course_ico_course_cuxiao.png
0 → 100644
View file @
ab5f7bff
5.75 KB
m-course/src/main/res/drawable-xhdpi/course_ico_course_list_hot.png
0 → 100644
View file @
ab5f7bff
3.52 KB
m-course/src/main/res/drawable-xhdpi/course_ico_course_list_new.png
0 → 100644
View file @
ab5f7bff
4.36 KB
m-course/src/main/res/drawable-xhdpi/course_ico_course_list_play.png
0 → 100644
View file @
ab5f7bff
1.6 KB
m-course/src/main/res/drawable/course_background_course_list_item_view.xml
0 → 100644
View file @
ab5f7bff
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:state_enabled=
"true"
>
<shape>
<corners
android:radius=
"13dp"
/>
<gradient
android:endColor=
"@color/color_FFD814"
android:startColor=
"@color/color_FFDB26"
/>
</shape>
</item>
</selector>
\ No newline at end of file
m-course/src/main/res/font/dincond_bold.ttf
0 → 100644
View file @
ab5f7bff
File added
m-course/src/main/res/layout/activity_course_reply_list.xml
0 → 100644
View file @
ab5f7bff
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<com.ydl.ydlcommon.view.TitleBar
android:id=
"@+id/title_bar"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
app:title_text=
"课后笔记"
app:left_start_icon=
"@drawable/course_toolbar_back"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/recycler_list"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:overScrollMode=
"never"
>
</android.support.v7.widget.RecyclerView>
</LinearLayout>
m-course/src/main/res/layout/item_course_new_list_view.xml
0 → 100644
View file @
ab5f7bff
<?xml version="1.0" encoding="utf-8"?>
<merge
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:paddingStart=
"12dp"
android:paddingRight=
"15dp"
tools:parentTag=
"android.support.constraint.ConstraintLayout"
>
<com.ydl.ydlcommon.view.widgets.RoundImageView
android:id=
"@+id/iv_head"
android:layout_width=
"92dp"
android:layout_height=
"114dp"
android:layout_marginStart=
"2dp"
android:layout_marginTop=
"20dp"
android:scaleType=
"centerCrop"
app:borderRadius=
"4dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:type=
"round"
tools:background=
"@color/main_theme"
/>
<ImageView
android:id=
"@+id/iv_play"
android:layout_width=
"26dp"
android:layout_height=
"26dp"
android:layout_marginRight=
"3dp"
android:layout_marginBottom=
"3dp"
android:padding=
"3dp"
android:src=
"@drawable/course_ico_course_list_play"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"@+id/iv_head"
app:layout_constraintEnd_toEndOf=
"@+id/iv_head"
tools:visibility=
"visible"
/>
<ImageView
android:id=
"@+id/iv_new"
android:layout_width=
"27dp"
android:layout_height=
"16dp"
android:layout_marginLeft=
"0.5dp"
android:src=
"@drawable/course_ico_course_list_new"
android:visibility=
"gone"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/iv_head"
tools:visibility=
"visible"
/>
<ImageView
android:id=
"@+id/iv_hot"
android:layout_width=
"27dp"
android:layout_height=
"16dp"
android:layout_marginLeft=
"0.5dp"
android:src=
"@drawable/course_ico_course_list_hot"
android:visibility=
"gone"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/iv_head"
/>
<android.support.constraint.Guideline
android:id=
"@+id/guide_line"
android:layout_width=
"1dp"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
app:layout_constraintGuide_begin=
"100dp"
app:layout_constraintStart_toEndOf=
"@+id/iv_head"
/>
<TextView
android:id=
"@+id/tv_title"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"4dp"
android:ellipsize=
"end"
android:maxLines=
"2"
android:textColor=
"@color/color_333333"
android:textSize=
"16sp"
android:textStyle=
"bold"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toEndOf=
"@+id/guide_line"
app:layout_constraintTop_toTopOf=
"@+id/iv_head"
tools:text=
"走出余光恐惧,一位余光恐惧者的亲诉一位余光恐惧者的亲诉一位余光恐惧者的亲诉一位余光恐惧者的亲诉"
/>
<TextView
android:id=
"@+id/tv_doctor_info"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"4dp"
android:layout_marginTop=
"4dp"
android:ellipsize=
"end"
android:maxLines=
"1"
android:textColor=
"@color/color_242424"
android:textSize=
"12sp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toEndOf=
"@+id/guide_line"
app:layout_constraintTop_toBottomOf=
"@+id/tv_title"
tools:text=
"黄世杰国家二黄黄世杰国家二黄世杰国家二级心理咨询师级心理咨询师世杰国家二级心理咨询师级心理咨询师"
/>
<TextView
android:id=
"@+id/tv_course_info"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"4dp"
android:layout_marginTop=
"4dp"
android:textColor=
"@color/color_999999"
android:textSize=
"12sp"
app:layout_constraintStart_toEndOf=
"@+id/guide_line"
app:layout_constraintTop_toBottomOf=
"@+id/tv_doctor_info"
tools:text=
"共12讲"
/>
<View
android:id=
"@+id/view_line"
android:layout_width=
"0.5dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"6dp"
android:layout_marginEnd=
"2dp"
android:background=
"@color/color_EBEBEB"
app:layout_constraintBottom_toBottomOf=
"@+id/tv_course_num"
app:layout_constraintStart_toEndOf=
"@+id/tv_course_info"
app:layout_constraintTop_toBottomOf=
"@+id/tv_doctor_info"
app:layout_constraintTop_toTopOf=
"@+id/tv_course_info"
/>
<TextView
android:id=
"@+id/tv_course_num"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"4dp"
android:layout_marginTop=
"4dp"
android:textColor=
"@color/color_999999"
android:textSize=
"12sp"
app:layout_constraintStart_toEndOf=
"@+id/view_line"
app:layout_constraintTop_toBottomOf=
"@+id/tv_doctor_info"
tools:text=
"320人已学"
/>
<ImageView
android:id=
"@+id/tv_cu_xiao"
android:layout_width=
"42dp"
android:layout_height=
"13dp"
android:layout_marginStart=
"4dp"
android:layout_marginBottom=
"3dp"
android:src=
"@drawable/course_ico_course_cuxiao"
app:layout_constraintBottom_toBottomOf=
"@+id/iv_head"
app:layout_constraintStart_toEndOf=
"@+id/guide_line"
/>
<ImageView
android:id=
"@+id/tv_fan_li"
android:layout_width=
"42dp"
android:layout_height=
"13dp"
android:layout_marginStart=
"4dp"
android:layout_marginBottom=
"3dp"
android:src=
"@drawable/coursde_ico_course_fanli"
app:layout_constraintBottom_toBottomOf=
"@+id/iv_head"
app:layout_constraintStart_toEndOf=
"@+id/tv_cu_xiao"
/>
<TextView
android:id=
"@+id/tv_price_decimal"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:fontFamily=
"@font/dincond_bold"
android:text=
".00"
android:textColor=
"@color/color_FF5040"
android:textSize=
"12sp"
app:layout_constraintBottom_toBottomOf=
"@+id/iv_head"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<TextView
android:id=
"@+id/tv_price"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"19dp"
android:fontFamily=
"@font/dincond_bold"
android:textColor=
"@color/color_FF5040"
android:textSize=
"18sp"
android:textStyle=
"bold"
app:layout_constraintBottom_toTopOf=
"@+id/view_bottom_line"
app:layout_constraintEnd_toStartOf=
"@+id/tv_price_decimal"
tools:text=
"128"
/>
<TextView
android:id=
"@+id/tv_price_si"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"1dp"
android:layout_marginEnd=
"2dp"
android:text=
"¥"
android:textColor=
"@color/color_FF5040"
android:textSize=
"11sp"
android:textStyle=
"bold"
app:layout_constraintEnd_toStartOf=
"@+id/tv_price"
app:layout_constraintTop_toTopOf=
"@+id/tv_price"
/>
<TextView
android:id=
"@+id/tv_original_price"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"3dp"
android:textColor=
"@color/color_BFBFBF"
android:textSize=
"10sp"
app:layout_constraintBottom_toBottomOf=
"@+id/iv_head"
app:layout_constraintEnd_toStartOf=
"@+id/tv_price_si"
tools:text=
"¥166"
/>
<TextView
android:id=
"@+id/tv_view_course"
android:layout_width=
"84dp"
android:layout_height=
"24dp"
android:background=
"@drawable/course_background_course_list_item_view"
android:gravity=
"center"
android:text=
"立即听课"
android:textColor=
"@color/color_242424"
android:textSize=
"13dp"
android:textStyle=
"bold"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"@id/iv_head"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<View
android:id=
"@+id/view_bottom_line"
android:layout_width=
"match_parent"
android:layout_height=
"0.5dp"
android:layout_marginStart=
"2dp"
android:layout_marginTop=
"20dp"
android:background=
"@color/color_EBEBEB"
app:layout_constraintTop_toBottomOf=
"@+id/iv_head"
/>
</merge>
\ No newline at end of file
m-course/src/main/res/layout/item_course_play_recylist.xml
0 → 100644
View file @
ab5f7bff
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/white"
>
<com.ydl.ydlcommon.view.CircleImageView
android:id=
"@+id/img_head"
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:layout_marginLeft=
"15dp"
android:layout_marginTop=
"15dp"
android:src=
"@drawable/course_head_place_hold_pic"
/>
<TextView
android:id=
"@+id/text_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_toRightOf=
"@+id/img_head"
android:layout_alignTop=
"@+id/img_head"
android:layout_alignBottom=
"@+id/img_head"
android:textSize=
"14sp"
android:gravity=
"center_vertical"
android:layout_marginLeft=
"15dp"
tools:text=
"赵云"
/>
<TextView
android:id=
"@+id/text_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_toRightOf=
"@+id/text_name"
android:layout_alignTop=
"@+id/text_name"
android:layout_alignBottom=
"@+id/text_name"
android:gravity=
"center_vertical"
android:layout_marginLeft=
"20dp"
android:textColor=
"#999999"
android:textSize=
"12sp"
android:layout_marginRight=
"15dp"
tools:text=
"207.02.12"
/>
<TextView
android:id=
"@+id/text_des"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@+id/text_name"
android:gravity=
"center_vertical"
android:textSize=
"15sp"
android:layout_marginRight=
"15dp"
android:layout_alignLeft=
"@+id/text_name"
tools:text=
"老师切入点很好,讲解很认真"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"0.5dp"
android:layout_marginTop=
"15dp"
android:layout_below=
"@+id/text_des"
android:background=
"@color/color_F5F5F5"
/>
</RelativeLayout>
\ No newline at end of file
m-course/src/main/res/values/colors.xml
View file @
ab5f7bff
...
@@ -137,4 +137,6 @@
...
@@ -137,4 +137,6 @@
<color
name=
"color_0D1A30"
>
#0D1A30
</color>
<color
name=
"color_0D1A30"
>
#0D1A30
</color>
<color
name=
"color_FDD33D"
>
#FDD33D
</color>
<color
name=
"color_FDD33D"
>
#FDD33D
</color>
<color
name=
"color_BFBFBF"
>
#BFBFBF
</color>
<color
name=
"color_BFBFBF"
>
#BFBFBF
</color>
<color
name=
"color_FF5040"
>
#FF5040
</color>
<color
name=
"color_FFD814"
>
#FFD814
</color>
</resources>
</resources>
\ No newline at end of file
ydl-media/src/main/java/com/ydl/media/view/PlayerFloatHelper.kt
View file @
ab5f7bff
...
@@ -28,6 +28,7 @@ class PlayerFloatHelper {
...
@@ -28,6 +28,7 @@ class PlayerFloatHelper {
//已添加悬浮窗页面全路径名
//已添加悬浮窗页面全路径名
private
var
showingPageName
:
String
?
=
null
private
var
showingPageName
:
String
?
=
null
private
var
wm
:
WindowManager
?
=
null
private
var
wm
:
WindowManager
?
=
null
var
isCanClick
=
true
var
playingType
=
PlayTypeEnum
.
PLAY_TYPE_NONE
var
playingType
=
PlayTypeEnum
.
PLAY_TYPE_NONE
var
playTempData
=
hashMapOf
<
String
,
String
>()
var
playTempData
=
hashMapOf
<
String
,
String
>()
...
...
ydl-media/src/main/java/com/ydl/media/view/PlayerFloatView.kt
View file @
ab5f7bff
...
@@ -117,9 +117,11 @@ class PlayerFloatView(var mContext: Context) : FrameLayout(mContext) {
...
@@ -117,9 +117,11 @@ class PlayerFloatView(var mContext: Context) : FrameLayout(mContext) {
updateViewPosition
()
updateViewPosition
()
}
else
{
}
else
{
if
(!
isMove
)
{
if
(!
isMove
)
{
if
(
PlayerFloatHelper
.
isCanClick
){
PlayerFloatHelper
.
startPlayingActivity
(
context
)
PlayerFloatHelper
.
startPlayingActivity
(
context
)
}
}
}
}
}
isMove
=
false
isMove
=
false
mTouchStartY
=
0f
mTouchStartY
=
0f
mTouchStartX
=
mTouchStartY
mTouchStartX
=
mTouchStartY
...
@@ -149,9 +151,11 @@ class PlayerFloatView(var mContext: Context) : FrameLayout(mContext) {
...
@@ -149,9 +151,11 @@ class PlayerFloatView(var mContext: Context) : FrameLayout(mContext) {
updateViewPosition
()
updateViewPosition
()
}
else
{
}
else
{
if
(!
isMove
)
{
if
(!
isMove
)
{
if
(
PlayerFloatHelper
.
isCanClick
){
PlayerFloatHelper
.
startPlayingActivity
(
context
)
PlayerFloatHelper
.
startPlayingActivity
(
context
)
}
}
}
}
}
isMove
=
false
isMove
=
false
mTouchStartY
=
0f
mTouchStartY
=
0f
mTouchStartX
=
mTouchStartY
mTouchStartX
=
mTouchStartY
...
@@ -181,9 +185,11 @@ class PlayerFloatView(var mContext: Context) : FrameLayout(mContext) {
...
@@ -181,9 +185,11 @@ class PlayerFloatView(var mContext: Context) : FrameLayout(mContext) {
updateViewPosition
()
updateViewPosition
()
}
else
{
}
else
{
if
(!
isMove
)
{
if
(!
isMove
)
{
if
(
PlayerFloatHelper
.
isCanClick
){
PlayerFloatHelper
.
startPlayingActivity
(
context
)
PlayerFloatHelper
.
startPlayingActivity
(
context
)
}
}
}
}
}
isMove
=
false
isMove
=
false
mTouchStartY
=
0f
mTouchStartY
=
0f
mTouchStartX
=
mTouchStartY
mTouchStartX
=
mTouchStartY
...
...
ydl-platform/src/main/java/com/ydl/ydlcommon/base/config/AppConfig.kt
View file @
ab5f7bff
...
@@ -6,3 +6,4 @@ package com.ydl.ydlcommon.base.config
...
@@ -6,3 +6,4 @@ package com.ydl.ydlcommon.base.config
*/
*/
const
val
YDL_DOMAIN
=
"Domain-Name:"
const
val
YDL_DOMAIN
=
"Domain-Name:"
const
val
YDL_DOMAIN_JAVA
=
"JAVA_BASE_URL"
const
val
YDL_DOMAIN_JAVA
=
"JAVA_BASE_URL"
const
val
YDL_DOMAIN_COUPON_URL
=
"SERVER_COUPON_URL"
ydl-platform/src/main/java/com/ydl/ydlcommon/base/config/GlobalConfig.kt
View file @
ab5f7bff
...
@@ -21,7 +21,7 @@ class GlobalConfig private constructor(var builder: Builder) {
...
@@ -21,7 +21,7 @@ class GlobalConfig private constructor(var builder: Builder) {
this
.
appDebug
=
builder
.
appDebug
this
.
appDebug
=
builder
.
appDebug
}
}
fun
initEnv
(){
fun
initEnv
()
{
builder
.
initEnv
(
BaseApp
.
instance
)
builder
.
initEnv
(
BaseApp
.
instance
)
}
}
...
@@ -30,9 +30,9 @@ class GlobalConfig private constructor(var builder: Builder) {
...
@@ -30,9 +30,9 @@ class GlobalConfig private constructor(var builder: Builder) {
private
var
okHttpClient
:
OkHttpClient
?
=
null
private
var
okHttpClient
:
OkHttpClient
?
=
null
var
appFrom
:
String
=
YDLConstants
.
FROM_YDL
var
appFrom
:
String
=
YDLConstants
.
FROM_YDL
var
appEnv
:
String
=
YDLConstants
.
ENV_PROD
var
appEnv
:
String
=
YDLConstants
.
ENV_PROD
var
appBaseURL
:
String
?
=
null
var
appBaseURL
:
String
?
=
null
var
multipleUrl
:
HashMap
<
String
,
String
>
=
hashMapOf
()
var
multipleUrl
:
HashMap
<
String
,
String
>
=
hashMapOf
()
var
appDebug
:
Boolean
=
false
var
appDebug
:
Boolean
=
false
fun
setOkHttpClient
(
okHttpClient
:
OkHttpClient
)
{
fun
setOkHttpClient
(
okHttpClient
:
OkHttpClient
)
{
this
.
okHttpClient
=
okHttpClient
this
.
okHttpClient
=
okHttpClient
...
@@ -42,7 +42,7 @@ class GlobalConfig private constructor(var builder: Builder) {
...
@@ -42,7 +42,7 @@ class GlobalConfig private constructor(var builder: Builder) {
this
.
appBaseURL
=
baseURL
this
.
appBaseURL
=
baseURL
}
}
fun
setDebug
(
isDebug
:
Boolean
)
{
fun
setDebug
(
isDebug
:
Boolean
)
{
this
.
appDebug
=
isDebug
this
.
appDebug
=
isDebug
}
}
...
@@ -81,12 +81,13 @@ class GlobalConfig private constructor(var builder: Builder) {
...
@@ -81,12 +81,13 @@ class GlobalConfig private constructor(var builder: Builder) {
.
getInstance
()
.
getInstance
()
.
init
(
context
)
.
init
(
context
)
.
config
()
.
config
()
.
setBaseUrl
(
appBaseURL
?:
HttpConfig
.
PHP_BASE_URL
)
.
setBaseUrl
(
appBaseURL
?:
HttpConfig
.
PHP_BASE_URL
)
.
addUrl
(
YDL_DOMAIN_JAVA
,
HttpConfig
.
JAVA_BASE_URL
)
.
addUrl
(
YDL_DOMAIN_JAVA
,
HttpConfig
.
JAVA_BASE_URL
)
.
addUrl
(
YDL_DOMAIN_COUPON_URL
,
HttpConfig
.
SERVER_COUPON_URL
)
.
setMultipleUrlMap
(
multipleUrl
)
.
setMultipleUrlMap
(
multipleUrl
)
if
(
okHttpClient
==
null
)
{
if
(
okHttpClient
==
null
)
{
okHttpClient
=
HttpConfig
.
getInstance
().
createOkHttp
(
context
,
appFrom
,
appDebug
)
okHttpClient
=
HttpConfig
.
getInstance
().
createOkHttp
(
context
,
appFrom
,
appDebug
)
}
}
apiFactory
.
setOkClient
(
okHttpClient
)
apiFactory
.
setOkClient
(
okHttpClient
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment