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
1e8f36a5
Commit
1e8f36a5
authored
5 years ago
by
严久程
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
课程模块
parent
e4369ba4
Show whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
1159 additions
and
73 deletions
+1159
-73
build.gradle
m-course/build.gradle
+8
-0
CourseListFragment.java
m-course/src/main/java/com/yidianling/course/CourseListFragment.java
+1
-1
PostersShareBean.kt
m-course/src/main/java/com/yidianling/course/bean/PostersShareBean.kt
+1
-1
CourseListContainerActivity.kt
m-course/src/main/java/com/yidianling/course/courseNew/courseList/CourseListContainerActivity.kt
+1
-1
CoursePlayActivity.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayActivity.kt
+13
-6
CoursePlayItemViewAudio.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayItemViewAudio.kt
+1
-0
CoursePlayItemViewVideo.kt
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayItemViewVideo.kt
+10
-6
CourseSearchActicity.kt
m-course/src/main/java/com/yidianling/course/courseSearch/CourseSearchActicity.kt
+13
-11
CourseSearchApiUtils.kt
m-course/src/main/java/com/yidianling/course/courseSearch/http/CourseSearchApiUtils.kt
+4
-5
CourseSearchListApi.kt
m-course/src/main/java/com/yidianling/course/courseSearch/http/CourseSearchListApi.kt
+1
-1
ICourseSearchListHttp.kt
m-course/src/main/java/com/yidianling/course/courseSearch/http/ICourseSearchListHttp.kt
+1
-2
CourseSpecialListPresenterImpl.kt
m-course/src/main/java/com/yidianling/course/course_special_list/presenter/CourseSpecialListPresenterImpl.kt
+5
-14
HPlayView.kt
m-course/src/main/java/com/yidianling/course/widget/HPlayView.kt
+286
-0
blank.png
m-course/src/main/res/drawable-xhdpi/blank.png
+0
-0
course_default_img.png
m-course/src/main/res/drawable-xhdpi/course_default_img.png
+0
-0
course_ico_course_play.png
m-course/src/main/res/drawable-xhdpi/course_ico_course_play.png
+0
-0
course_ico_img_zixun_empty.png
m-course/src/main/res/drawable-xhdpi/course_ico_img_zixun_empty.png
+0
-0
course_ico_play_float_full.png
m-course/src/main/res/drawable-xhdpi/course_ico_play_float_full.png
+0
-0
course_audio_play.gif
m-course/src/main/res/drawable/course_audio_play.gif
+0
-0
course_dot_seekbar.xml
m-course/src/main/res/drawable/course_dot_seekbar.xml
+11
-0
course_layer_progress.xml
m-course/src/main/res/drawable/course_layer_progress.xml
+27
-0
course_video_bottom_background.xml
m-course/src/main/res/drawable/course_video_bottom_background.xml
+11
-0
activity_course.xml
m-course/src/main/res/layout/activity_course.xml
+2
-2
activity_course_commeny.xml
m-course/src/main/res/layout/activity_course_commeny.xml
+1
-1
activity_course_poster.xml
m-course/src/main/res/layout/activity_course_poster.xml
+1
-1
activity_course_search.xml
m-course/src/main/res/layout/activity_course_search.xml
+76
-0
course_play_music_view.xml
m-course/src/main/res/layout/course_play_music_view.xml
+134
-0
course_videoplay_view.xml
m-course/src/main/res/layout/course_videoplay_view.xml
+403
-0
course_view_course_play_item.xml
m-course/src/main/res/layout/course_view_course_play_item.xml
+13
-0
fragment_course_list.xml
m-course/src/main/res/layout/fragment_course_list.xml
+1
-1
layout_title_bar.xml
m-course/src/main/res/layout/layout_title_bar.xml
+1
-1
colors.xml
m-course/src/main/res/values/colors.xml
+3
-0
course_toolbar_back.png
m-course/src/xlzx/res/drawable-xhdpi/course_toolbar_back.png
+0
-0
course_toolbar_back.png
m-course/src/ydl/res/drawable-xhdpi/course_toolbar_back.png
+0
-0
BIConstants.kt
ydl-platform/src/main/java/com/ydl/ydlcommon/utils/actionutil/BIConstants.kt
+130
-19
No files found.
m-course/build.gradle
View file @
1e8f36a5
...
@@ -60,6 +60,14 @@ dependencies {
...
@@ -60,6 +60,14 @@ dependencies {
androidTestImplementation
'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation
'com.android.support.test.espresso:espresso-core:3.0.2'
kapt
'com.alibaba:arouter-compiler:1.2.2'
kapt
'com.alibaba:arouter-compiler:1.2.2'
implementation
'com.jakewharton:butterknife:8.8.1'
implementation
'com.jakewharton:butterknife:8.8.1'
api
'com.dou361.ijkplayer-armv5:jjdxm-ijkplayer-armv5:1.0.0'
api
'com.dou361.ijkplayer-arm64:jjdxm-ijkplayer-arm64:1.0.0'
api
'com.dou361.ijkplayer-x86:jjdxm-ijkplayer-x86:1.0.0'
api
'com.dou361.ijkplayer-x86_64:jjdxm-ijkplayer-x86_64:1.0.0'
api
(
'com.dou361.ijkplayer:jjdxm-ijkplayer:1.0.6'
)
{
exclude
group:
'com.android.support'
,
module:
'appcompat-v7'
}
api
rootProject
.
ext
.
dependencies
[
"ydl-user-router"
]
api
rootProject
.
ext
.
dependencies
[
"ydl-user-router"
]
if
(
rootProject
.
ext
.
dev_mode
){
if
(
rootProject
.
ext
.
dev_mode
){
//开发时使用
//开发时使用
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/CourseListFragment.java
View file @
1e8f36a5
...
@@ -238,7 +238,7 @@ public class CourseListFragment extends BaseFragment implements PtrHandler, Load
...
@@ -238,7 +238,7 @@ public class CourseListFragment extends BaseFragment implements PtrHandler, Load
emptyTv
.
setVisibility
(
View
.
VISIBLE
);
emptyTv
.
setVisibility
(
View
.
VISIBLE
);
ivEmptyView
.
setVisibility
(
View
.
VISIBLE
);
ivEmptyView
.
setVisibility
(
View
.
VISIBLE
);
lvContent
.
setVisibility
(
View
.
GONE
);
lvContent
.
setVisibility
(
View
.
GONE
);
ivEmptyView
.
setImageResource
(
R
.
drawable
.
blank
);
ivEmptyView
.
setImageResource
(
R
.
drawable
.
course_
blank
);
emptyTv
.
setText
(
"还没有相应的课程哦~"
);
emptyTv
.
setText
(
"还没有相应的课程哦~"
);
}
else
{
}
else
{
lvContent
.
setVisibility
(
View
.
VISIBLE
);
lvContent
.
setVisibility
(
View
.
VISIBLE
);
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/bean/PostersShareBean.kt
View file @
1e8f36a5
package
com.yidianling.course.bean
package
com.yidianling.course.bean
import
com.y
idianling.ydlcommon.data
.ShareData
import
com.y
dl.ydlcommon.bean
.ShareData
/**
/**
* @author jiucheng
* @author jiucheng
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/courseNew/courseList/CourseListContainerActivity.kt
View file @
1e8f36a5
...
@@ -495,7 +495,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
...
@@ -495,7 +495,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
lv_content
.
visibility
=
View
.
GONE
lv_content
.
visibility
=
View
.
GONE
tv_course_list_empty_prompt
.
visibility
=
View
.
VISIBLE
tv_course_list_empty_prompt
.
visibility
=
View
.
VISIBLE
iv_course_list_empty_view
.
visibility
=
View
.
VISIBLE
iv_course_list_empty_view
.
visibility
=
View
.
VISIBLE
iv_course_list_empty_view
.
setImageResource
(
R
.
drawable
.
blank
)
iv_course_list_empty_view
.
setImageResource
(
R
.
drawable
.
course_
blank
)
tv_course_list_empty_prompt
.
text
=
"还没有相应的课程哦~"
tv_course_list_empty_prompt
.
text
=
"还没有相应的课程哦~"
v_loading
.
visibility
=
View
.
GONE
v_loading
.
visibility
=
View
.
GONE
}
}
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayActivity.kt
View file @
1e8f36a5
...
@@ -17,7 +17,8 @@ import android.widget.LinearLayout
...
@@ -17,7 +17,8 @@ import android.widget.LinearLayout
import
android.widget.TextView
import
android.widget.TextView
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.bumptech.glide.Glide
import
com.bumptech.glide.Glide
import
com.google.android.exoplayer2.ui.PlayerView
import
com.dou361.ijkplayer.widget.PlayStateParams
import
com.dou361.ijkplayer.widget.PlayerView
import
com.ydl.media.audio.AudioPlayer
import
com.ydl.media.audio.AudioPlayer
import
com.ydl.media.audio.utils.PlayProgressUtil
import
com.ydl.media.audio.utils.PlayProgressUtil
import
com.ydl.media.view.PlayTypeEnum
import
com.ydl.media.view.PlayTypeEnum
...
@@ -31,7 +32,6 @@ import com.ydl.ydlcommon.router.IYDLRouterConstant
...
@@ -31,7 +32,6 @@ import com.ydl.ydlcommon.router.IYDLRouterConstant
import
com.ydl.ydlcommon.router.YdlCommonRouterManager
import
com.ydl.ydlcommon.router.YdlCommonRouterManager
import
com.ydl.ydlcommon.utils.ScreenUtil
import
com.ydl.ydlcommon.utils.ScreenUtil
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.UMEventUtils
import
com.ydl.ydlcommon.utils.Utils
import
com.ydl.ydlcommon.utils.Utils
import
com.ydl.ydlcommon.view.BaseViewHolder
import
com.ydl.ydlcommon.view.BaseViewHolder
import
com.ydl.ydlcommon.view.dialog.CommonDialog
import
com.ydl.ydlcommon.view.dialog.CommonDialog
...
@@ -579,7 +579,7 @@ class CoursePlayActivity : BaseActivity() {
...
@@ -579,7 +579,7 @@ class CoursePlayActivity : BaseActivity() {
videoView
?.
onConfigurationChanged
(
newConfig
)
videoView
?.
onConfigurationChanged
(
newConfig
)
handler
.
postDelayed
({
handler
.
postDelayed
({
if
(
newConfig
.
screenHeightDp
>
newConfig
.
screenWidthDp
)
{
if
(
newConfig
.
screenHeightDp
>
newConfig
.
screenWidthDp
)
{
videoView
?.
fullScreenView
!!
.
setImageResource
(
R
.
drawable
.
ico_play_float_full
)
videoView
?.
fullScreenView
!!
.
setImageResource
(
R
.
drawable
.
course_
ico_play_float_full
)
}
else
{
}
else
{
videoView
?.
fullScreenView
!!
.
setImageResource
(
R
.
drawable
.
ico_play_minify
)
videoView
?.
fullScreenView
!!
.
setImageResource
(
R
.
drawable
.
ico_play_minify
)
}
}
...
@@ -595,10 +595,17 @@ class CoursePlayActivity : BaseActivity() {
...
@@ -595,10 +595,17 @@ class CoursePlayActivity : BaseActivity() {
fun
showVideoFloatView
():
Boolean
{
fun
showVideoFloatView
():
Boolean
{
if
(
play_type
==
0
)
{
if
(
play_type
==
0
)
{
if
(
YDLMusicHelper
.
isCoursePlaying
())
{
// if (YDLMusicHelper.isCoursePlaying()) {
YDLMusicHelper
.
cover
=
courPlayBean
?.
courseExtra
?.
pic
// YDLMusicHelper.cover = courPlayBean?.courseExtra?.pic
YDLMusicHelper
.
name
=
courPlayBean
?.
courseExtra
?.
doctorName
// YDLMusicHelper.name = courPlayBean?.courseExtra?.doctorName
// }
if
(
AudioPlayer
.
get
().
isPlaying
&&
PlayerFloatHelper
.
playingType
==
PlayTypeEnum
.
PLAY_TYPE_COURSE
)
{
AudioPlayer
.
get
().
playMusic
?.
coverPath
=
courPlayBean
?.
courseExtra
?.
pic
AudioPlayer
.
get
().
playMusic
?.
artist
=
courPlayBean
?.
courseExtra
?.
doctorName
}
}
}
else
{
}
else
{
if
(
videoView
?.
onBackPressed
()
==
true
)
{
if
(
videoView
?.
onBackPressed
()
==
true
)
{
return
false
return
false
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayItemViewAudio.kt
View file @
1e8f36a5
...
@@ -8,6 +8,7 @@ import com.yidianling.common.tools.RxDeviceTool
...
@@ -8,6 +8,7 @@ import com.yidianling.common.tools.RxDeviceTool
import
com.yidianling.common.tools.RxNetTool
import
com.yidianling.common.tools.RxNetTool
import
com.yidianling.course.bean.CourseExtraBean
import
com.yidianling.course.bean.CourseExtraBean
import
com.yidianling.course.bean.CourseMediaBean
import
com.yidianling.course.bean.CourseMediaBean
import
com.yidianling.course.widget.HPlayView
import
com.yidianling.ydlcommon.bean.CourseExtraBean
import
com.yidianling.ydlcommon.bean.CourseExtraBean
import
com.yidianling.ydlcommon.bean.CourseMediaBean
import
com.yidianling.ydlcommon.bean.CourseMediaBean
import
com.yidianling.ydlcommon.dialog.CommonDialog
import
com.yidianling.ydlcommon.dialog.CommonDialog
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/coursePlay/CoursePlayItemViewVideo.kt
View file @
1e8f36a5
...
@@ -8,6 +8,9 @@ import android.view.View
...
@@ -8,6 +8,9 @@ import android.view.View
import
android.widget.RelativeLayout
import
android.widget.RelativeLayout
import
com.dou361.ijkplayer.widget.PlayStateParams
import
com.dou361.ijkplayer.widget.PlayStateParams
import
com.dou361.ijkplayer.widget.PlayerView
import
com.dou361.ijkplayer.widget.PlayerView
import
com.ydl.media.audio.utils.PlayProgressUtil
import
com.ydl.media.view.PlayTypeEnum
import
com.ydl.media.view.PlayerFloatHelper
import
com.ydl.ydl_image.module.GlideApp
import
com.ydl.ydl_image.module.GlideApp
import
com.ydl.ydlcommon.view.dialog.CommonDialog
import
com.ydl.ydlcommon.view.dialog.CommonDialog
import
com.yidianling.course.R
import
com.yidianling.course.R
...
@@ -52,7 +55,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
...
@@ -52,7 +55,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
@SuppressLint
(
"InvalidWakeLockTag"
)
@SuppressLint
(
"InvalidWakeLockTag"
)
private
constructor
(
context
:
CoursePlayActivity
,
playMoudle
:
Int
)
:
super
(
context
)
{
private
constructor
(
context
:
CoursePlayActivity
,
playMoudle
:
Int
)
:
super
(
context
)
{
this
.
playMoudle
=
playMoudle
this
.
playMoudle
=
playMoudle
View
.
inflate
(
context
,
R
.
layout
.
view_course_play_item
,
this
)
View
.
inflate
(
context
,
R
.
layout
.
course_
view_course_play_item
,
this
)
activity
=
context
activity
=
context
initView
()
initView
()
...
@@ -77,7 +80,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
...
@@ -77,7 +80,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
if
(
isVideoPlaying
)
{
if
(
isVideoPlaying
)
{
var
time
=
activity
?.
videoView
?.
currentPosition
?:
0
var
time
=
activity
?.
videoView
?.
currentPosition
?:
0
if
(
time
<
3000
)
return
if
(
time
<
3000
)
return
UtilH
.
saveProgress
(
context
,
videoUrl
,
time
)
PlayProgressUtil
.
saveProgress
(
context
,
videoUrl
,
time
)
}
}
}
}
},
1000
,
1000
)
},
1000
,
1000
)
...
@@ -104,7 +107,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
...
@@ -104,7 +107,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
wakeLock
!!
.
acquire
()
wakeLock
!!
.
acquire
()
}
}
activity
?.
videoView
?.
onResume
()
activity
?.
videoView
?.
onResume
()
var
hisTime1
=
UtilH
.
getProgress
(
context
,
videoUrl
)
var
hisTime1
=
PlayProgressUtil
.
getProgress
(
context
,
videoUrl
)
activity
?.
videoView
?.
seekTo
(
hisTime1
)
activity
?.
videoView
?.
seekTo
(
hisTime1
)
}
}
...
@@ -149,14 +152,15 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
...
@@ -149,14 +152,15 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
}
}
}
}
if
(
canPlay
)
{
if
(
canPlay
)
{
YDLMusicHelper
.
playingType
=
YDLMusicHelper
.
PLAY_TYPE_COURSE
PlayerFloatHelper
.
playingType
=
PlayTypeEnum
.
PLAY_TYPE_COURSE
var
url
=
playList
[
index
].
url
var
url
=
playList
[
index
].
url
url
=
url
.
replace
(
"https"
,
"http"
)
url
=
url
.
replace
(
"https"
,
"http"
)
videoUrl
=
url
videoUrl
=
url
var
hisTime
=
UtilH
.
getProgress
(
context
,
url
)
var
hisTime
=
PlayProgressUtil
.
getProgress
(
context
,
url
)
try
{
try
{
activity
?.
videoView
=
PlayerView
(
activity
)
activity
?.
videoView
=
PlayerView
(
activity
)
.
setScaleType
(
PlayStateParams
.
fitparent
)
.
setScaleType
(
PlayStateParams
.
fitparent
)
...
@@ -194,7 +198,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
...
@@ -194,7 +198,7 @@ class CoursePlayItemViewVideo : RelativeLayout, PlayViewInterface {
if
(
what
==
PlayStateParams
.
STATE_COMPLETED
)
{
if
(
what
==
PlayStateParams
.
STATE_COMPLETED
)
{
isVideoPlaying
=
false
isVideoPlaying
=
false
UtilH
.
saveProgress
(
this
@CoursePlayItemViewVideo
.
activity
,
videoUrl
,
0
)
PlayProgressUtil
.
saveProgress
(
this
@CoursePlayItemViewVideo
.
activity
,
videoUrl
,
0
)
if
(
playList
.
size
-
1
>
this
@CoursePlayItemViewVideo
.
index
)
{
if
(
playList
.
size
-
1
>
this
@CoursePlayItemViewVideo
.
index
)
{
//播放下一曲
//播放下一曲
play
(
this
@CoursePlayItemViewVideo
.
index
+
1
)
play
(
this
@CoursePlayItemViewVideo
.
index
+
1
)
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/courseSearch/CourseSearchActicity.kt
View file @
1e8f36a5
package
com.yidianling.course.courseSearch
package
com.yidianling.course.courseSearch
import
android.annotation.SuppressLint
import
android.support.v7.widget.LinearLayoutManager
import
android.support.v7.widget.LinearLayoutManager
import
android.text.TextUtils
import
android.text.TextUtils
import
android.util.Log
import
android.util.Log
...
@@ -7,22 +8,22 @@ import android.view.View
...
@@ -7,22 +8,22 @@ import android.view.View
import
android.view.WindowManager
import
android.view.WindowManager
import
android.widget.ImageView
import
android.widget.ImageView
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.ydl.base_module.ui.searchbarview.SearchBarView
import
com.ydl.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydl_image.config.SimpleImageOpConfiger
import
com.ydl.ydl_image.config.SimpleImageOpConfiger
import
com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener
import
com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener
import
com.ydl.ydl_image.manager.YDLImageCacheManager
import
com.ydl.ydl_image.manager.YDLImageCacheManager
import
com.ydl.ydlcommon.base.BaseActivity
import
com.ydl.ydlcommon.bean.ShareData
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.router.IYDLRouterConstant
import
com.yidianling.common.tools.ToastUtil
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.coursePlay.moudle.Course
import
com.yidianling.course.coursePlay.moudle.Course
import
com.yidianling.course.courseSearch.http.CourseSearchApiUtils
import
com.yidianling.course.courseSearch.http.CourseSearchApiUtils
import
com.yidianling.course.courseSearch.view.ICourseSearchView
import
com.yidianling.course.courseSearch.view.ICourseSearchView
import
com.yidianling.ydlcommon.base.BaseActivity
import
com.yidianling.course.widget.SearchBarView
import
com.yidianling.ydlcommon.data.ShareData
import
com.yidianling.ydlcommon.h5.H5Params
import
com.yidianling.ydlcommon.h5.NewH5Activity
import
com.yidianling.ydlcommon.http.ThrowableConsumer
import
com.yidianling.ydlcommon.router.IYDLRouterConstant
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
import
io.reactivex.functions.Consumer
import
io.reactivex.schedulers.Schedulers
import
io.reactivex.schedulers.Schedulers
...
@@ -153,7 +154,7 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
...
@@ -153,7 +154,7 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
override
fun
onItemClickEvent
(
position
:
Int
)
{
override
fun
onItemClickEvent
(
position
:
Int
)
{
var
courseItem
=
courseList
[
position
]
var
courseItem
=
courseList
[
position
]
if
(
null
!=
courseItem
)
{
if
(
null
!=
courseItem
)
{
val
h5Params
=
H5Params
(
CourseConstants
.
COURSE_DETAIL_H5
+
courseItem
.
id
,
this
.
getString
(
R
.
string
.
course_detail
)
)
val
h5Params
=
H5Params
(
CourseConstants
.
COURSE_DETAIL_H5
+
courseItem
.
id
,
"课程详情"
)
if
(
null
!=
courseItem
.
share
&&
!
TextUtils
.
isEmpty
(
courseItem
.
share
.
share_url
))
{
if
(
null
!=
courseItem
.
share
&&
!
TextUtils
.
isEmpty
(
courseItem
.
share
.
share_url
))
{
val
shareData
=
ShareData
(
courseItem
.
share
.
share_url
,
courseItem
.
share
.
title
,
courseItem
.
share
.
cover
,
courseItem
.
share
.
desc
)
val
shareData
=
ShareData
(
courseItem
.
share
.
share_url
,
courseItem
.
share
.
title
,
courseItem
.
share
.
cover
,
courseItem
.
share
.
desc
)
h5Params
.
shareData
=
shareData
h5Params
.
shareData
=
shareData
...
@@ -170,8 +171,8 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
...
@@ -170,8 +171,8 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
val
sp
=
SimpleImageOpConfiger
()
val
sp
=
SimpleImageOpConfiger
()
sp
.
heigt
=
height
sp
.
heigt
=
height
sp
.
width
=
width
sp
.
width
=
width
sp
.
errorPic
=
R
.
drawable
.
default_img
sp
.
errorPic
=
R
.
drawable
.
course_
default_img
sp
.
loadingPic
=
R
.
drawable
.
default_img
sp
.
loadingPic
=
R
.
drawable
.
course_
default_img
YDLImageCacheManager
.
showImage
(
CourseSearchActicity
@
this
,
url
,
imageView
,
sp
)
YDLImageCacheManager
.
showImage
(
CourseSearchActicity
@
this
,
url
,
imageView
,
sp
)
}
}
...
@@ -179,6 +180,7 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
...
@@ -179,6 +180,7 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
* 根据输入搜索专家课程
* 根据输入搜索专家课程
* type true代表首次加载,false代表加载下一页
* type true代表首次加载,false代表加载下一页
*/
*/
@SuppressLint
(
"CheckResult"
)
fun
loadCourseList
(
type
:
Boolean
)
{
fun
loadCourseList
(
type
:
Boolean
)
{
if
(
TextUtils
.
isEmpty
(
inputString
))
{
if
(
TextUtils
.
isEmpty
(
inputString
))
{
activity_course_search_swipe_refresh_layout
.
isRefreshing
=
false
activity_course_search_swipe_refresh_layout
.
isRefreshing
=
false
...
@@ -234,7 +236,7 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
...
@@ -234,7 +236,7 @@ class CourseSearchActivity : BaseActivity(), CourseSearchAdapter.OnItemClick, IC
if
(!
TextUtils
.
isEmpty
(
desc
))
activity_course_search_unusual_layout_desc
.
text
=
desc
if
(!
TextUtils
.
isEmpty
(
desc
))
activity_course_search_unusual_layout_desc
.
text
=
desc
activity_course_search_unusual_layout
.
visibility
=
View
.
VISIBLE
activity_course_search_unusual_layout
.
visibility
=
View
.
VISIBLE
activity_course_search_recycler
.
visibility
=
View
.
GONE
activity_course_search_recycler
.
visibility
=
View
.
GONE
iv_empty
.
setImageResource
(
if
(
isEmpty
)
R
.
drawable
.
ico_img_zixun_empty
else
R
.
drawable
.
blank
)
iv_empty
.
setImageResource
(
if
(
isEmpty
)
R
.
drawable
.
course_ico_img_zixun_empty
else
R
.
drawable
.
course_
blank
)
}
}
/**
/**
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/courseSearch/http/CourseSearchApiUtils.kt
View file @
1e8f36a5
package
com.yidianling.course.courseSearch.http
package
com.yidianling.course.courseSearch.http
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlnet.YDLHttpUtils
import
com.yidianling.course.coursePlay.common.net.NetApiStore
import
com.yidianling.course.courseSearch.CourseSearchBean
import
com.yidianling.course.courseSearch.CourseSearchBean
import
com.yidianling.ydlcommon.http.BaseAPIResponse
import
com.yidianling.ydlcommon.http.BaseResponse
import
com.yidianling.ydlcommon.http.YdlRetrofitUtils
import
io.reactivex.Observable
import
io.reactivex.Observable
/**
/**
...
@@ -20,8 +20,7 @@ class CourseSearchApiUtils {
...
@@ -20,8 +20,7 @@ class CourseSearchApiUtils {
* 专家课程搜索列表
* 专家课程搜索列表
*/
*/
fun
courseSearchList
(
page
:
Int
,
keyWord
:
String
)
:
Observable
<
BaseAPIResponse
<
CourseSearchBean
>>
{
fun
courseSearchList
(
page
:
Int
,
keyWord
:
String
)
:
Observable
<
BaseAPIResponse
<
CourseSearchBean
>>
{
return
YdlRetrofitUtils
.
getRxRetrofit
().
newBuilder
().
baseUrl
(
YdlRetrofitUtils
.
SERVER_API_JAVA_URL
).
build
()
return
YDLHttpUtils
.
obtainApi
(
CourseSearchListApi
::
class
.
java
).
courseSearchList
(
page
,
keyWord
)
.
create
(
CourseSearchListApi
::
class
.
java
).
courseSearchList
(
page
,
keyWord
)
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/courseSearch/http/CourseSearchListApi.kt
View file @
1e8f36a5
package
com.yidianling.course.courseSearch.http
package
com.yidianling.course.courseSearch.http
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.yidianling.course.courseSearch.CourseSearchBean
import
com.yidianling.course.courseSearch.CourseSearchBean
import
com.yidianling.ydlcommon.http.BaseAPIResponse
import
io.reactivex.Observable
import
io.reactivex.Observable
import
retrofit2.http.*
import
retrofit2.http.*
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/courseSearch/http/ICourseSearchListHttp.kt
View file @
1e8f36a5
package
com.yidianling.course.courseSearch.http
package
com.yidianling.course.courseSearch.http
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.yidianling.course.courseSearch.CourseSearchBean
import
com.yidianling.course.courseSearch.CourseSearchBean
import
com.yidianling.ydlcommon.http.BaseAPIResponse
import
com.yidianling.ydlcommon.http.BaseResponse
import
io.reactivex.Observable
import
io.reactivex.Observable
/**
/**
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/course_special_list/presenter/CourseSpecialListPresenterImpl.kt
View file @
1e8f36a5
...
@@ -3,13 +3,12 @@ package com.yidianling.course.course_special_list.presenter
...
@@ -3,13 +3,12 @@ package com.yidianling.course.course_special_list.presenter
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.google.gson.reflect.TypeToken
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.mvp.base.BasePresenter
import
com.yidianling.common.tools.RxNetTool
import
com.yidianling.common.tools.RxNetTool
import
com.yidianling.course.course_special_list.bean.CourseSpecialItemBean
import
com.yidianling.course.course_special_list.bean.CourseSpecialItemBean
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.http.CourseSpecialListParam
import
com.yidianling.course.course_special_list.http.CourseSpecialListParam
import
com.yidianling.course.course_special_list.model.CourseSpecialListModelImpl
import
com.yidianling.course.course_special_list.model.CourseSpecialListModelImpl
import
com.yidianling.ydlcommon.http.ThrowableConsumer
import
com.yidianling.ydlcommon.mvp.RxPresenter
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
import
io.reactivex.functions.Consumer
import
io.reactivex.schedulers.Schedulers
import
io.reactivex.schedulers.Schedulers
...
@@ -22,17 +21,9 @@ import io.reactivex.schedulers.Schedulers
...
@@ -22,17 +21,9 @@ import io.reactivex.schedulers.Schedulers
* @date 2018/9/18
* @date 2018/9/18
*/
*/
class
CourseSpecialListPresenterImpl
(
var
view
:
ICourseSpecialListContract
.
View
)
:
class
CourseSpecialListPresenterImpl
(
var
view
:
ICourseSpecialListContract
.
View
)
:
ICourseSpecialListContract
.
Presenter
{
BasePresenter
<
ICourseSpecialListContract
.
View
,
ICourseSpecialListContract
.
Model
>(),
ICourseSpecialListContract
.
Presenter
{
override
fun
attachView
(
view
:
ICourseSpecialListContract
.
View
)
{
override
fun
createModel
():
ICourseSpecialListContract
.
Model
{
TODO
(
"not implemented"
)
//To change body of created functions use File | Settings | File Templates.
return
CourseSpecialListModelImpl
()
}
override
fun
detachView
()
{
TODO
(
"not implemented"
)
//To change body of crea ted functions use File | Settings | File Templates.
}
override
fun
destroy
()
{
TODO
(
"not implemented"
)
//To change body of created functions use File | Settings | File Templates.
}
}
/**
/**
...
@@ -77,7 +68,7 @@ class CourseSpecialListPresenterImpl (var view: ICourseSpecialListContract.View)
...
@@ -77,7 +68,7 @@ class CourseSpecialListPresenterImpl (var view: ICourseSpecialListContract.View)
* @param loadMore 是否为上拉加载更多
* @param loadMore 是否为上拉加载更多
*/
*/
private
fun
requestList
(
page
:
Int
,
loadMore
:
Boolean
){
private
fun
requestList
(
page
:
Int
,
loadMore
:
Boolean
){
val
disposable
=
model
.
specialListRequest
(
CourseSpecialListParam
(
page
,
0
))
val
disposable
=
m
M
odel
.
specialListRequest
(
CourseSpecialListParam
(
page
,
0
))
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
map
{
it
}
.
map
{
it
}
.
filter
{
it
!=
null
}
.
filter
{
it
!=
null
}
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/java/com/yidianling/course/widget/HPlayView.kt
0 → 100644
View file @
1e8f36a5
package
com.yidianling.course.widget
import
android.app.Activity
import
android.os.Handler
import
android.view.View
import
android.widget.RelativeLayout
import
android.widget.SeekBar
import
com.bumptech.glide.Glide
import
com.yidianling.course.R
import
kotlinx.android.synthetic.main.course_play_music_view.view.*
/**
* Created by hgw on 2018/4/28.
*/
class
HPlayView
:
RelativeLayout
,
YDLMusicPlayer
.
MusicControlTaker
{
var
control
:
HMusicPlayService
.
MusicController
?
=
null
var
listener
:
HPlayStatusListener
?
=
null
var
mHandler
:
Handler
?
=
null
//seekBar 按下标记
var
seekBarIsDown
=
false
var
progress
=
0
var
mContext
:
Activity
?
=
null
constructor
(
context1
:
Activity
?)
:
super
(
context1
)
{
this
.
mContext
=
context1
mHandler
=
Handler
()
init
()
}
fun
init
()
{
if
(
mContext
==
null
)
return
YDLMusicPlayer
.
getInstance
().
setMusicControlTaker
(
this
)
View
.
inflate
(
context
,
R
.
layout
.
course_play_music_view
,
this
)
play_icon
.
setOnClickListener
{
if
(
control
?.
isPlaying
()
==
true
)
{
control
?.
pause
()
}
else
{
control
?.
start
()
}
}
img_gif
.
setOnClickListener
{
if
(
control
?.
isPlaying
()
==
false
)
{
control
?.
start
()
}
}
pro_progress
.
setOnSeekBarChangeListener
(
object
:
SeekBar
.
OnSeekBarChangeListener
{
override
fun
onProgressChanged
(
p0
:
SeekBar
?,
p1
:
Int
,
p2
:
Boolean
)
{
if
(
p2
)
{
text_start_time
.
text
=
getStringTime
(
p1
)
progress
=
p1
}
}
override
fun
onStartTrackingTouch
(
p0
:
SeekBar
?)
{
seekBarIsDown
=
true
}
override
fun
onStopTrackingTouch
(
p0
:
SeekBar
?)
{
seekBarIsDown
=
false
//拖动seekbar时不进行以下操作
if
(!
seekBarIsDown
)
{
control
?.
seekTo
(
progress
)
}
}
})
}
fun
showNetNotice
(
event
:
()
->
Unit
)
{
ll_net_notice
.
visibility
=
View
.
VISIBLE
img_gif
.
visibility
=
View
.
GONE
iv_net_notice
.
setOnClickListener
{
hideNetNotice
()
event
()
}
}
fun
hideNetNotice
()
{
ll_net_notice
.
visibility
=
View
.
GONE
img_gif
.
visibility
=
View
.
VISIBLE
}
fun
setData
(
urlLi
:
ArrayList
<
MusicInfoBean
>):
HPlayView
{
control
?.
setData
(
urlLi
)
return
this
}
/**
* 后台进入前台view
*/
fun
updateView
(
index
:
Int
)
{
if
(
control
?.
isPlaying
()
!!
)
{
mHandler
?.
postDelayed
({
pro_progress
.
max
=
control
?.
getDuration
()
?:
0
text_end_time
.
text
=
getStringTime
(
pro_progress
.
max
)
listener
?.
onPrepared
(
control
?.
getCurrentData
(),
index
)
},
0
)
updateButton
()
}
}
/**
* 获取当前播放下标
*/
fun
getCurrentIndex
():
Int
{
return
control
?.
getCurrentIndex
()
?:
0
}
/**
* 获取当前播放url
*/
fun
getCurrentUrl
():
String
{
return
control
?.
getCurrentUrl
()
?:
""
}
fun
play
(
index
:
Int
)
{
updateButton
()
YDLMusicHelper
.
playingType
=
YDLMusicHelper
.
PLAY_TYPE_COURSE
YDLMusicHelper
.
directPlay
(
index
,
true
)
}
fun
setImageBackground
(
url
:
String
?)
{
Glide
.
with
(
mContext
).
load
(
url
).
into
(
img_bg
)
}
/**
* 获取播放控制器
*/
fun
getPlayControl
():
HMusicPlayService
.
MusicController
?
{
return
control
}
/**
* 设置自动播放下一曲
*/
fun
setAutoNext
(
auto
:
Boolean
)
{
control
?.
setAutoPlayNext
(
auto
)
}
override
fun
onReceiveControl
(
control
:
HMusicPlayService
.
MusicController
)
{
this
.
control
=
control
setControl1
(
control
)
}
var
playStatusListener
:
PlayStatusListener
?
=
null
private
fun
setControl1
(
control
:
HMusicPlayService
.
MusicController
?)
{
control
?.
setOpenNotifyCation
(
true
)
if
(
playStatusListener
==
null
)
{
playStatusListener
=
object
:
PlayStatusListener
{
override
fun
beforeStart
(
index
:
Int
)
{
showBufferLoading
(
true
)
}
override
fun
onCompletionListener
()
{
// LogH.d("onCompletionListener")
updateButton
()
}
override
fun
loading
()
{
// LogH.d("loading")
showBufferLoading
(
true
)
}
override
fun
onPrepared
()
{
// LogH.d("onPrepared")
mHandler
?.
postDelayed
({
pro_progress
.
max
=
control
?.
getDuration
()
?:
0
text_end_time
.
text
=
getStringTime
(
pro_progress
.
max
)
listener
?.
onPrepared
(
control
?.
getCurrentData
(),
control
?.
getCurrentIndex
()
?:
0
)
},
0
)
}
override
fun
start
()
{
// LogH.d("start")
setGifVisibity
(
true
)
}
override
fun
pause
()
{
// LogH.d("pause")
setGifVisibity
(
false
)
}
override
fun
onProgressUpdate
(
progress
:
Int
)
{
mHandler
?.
postDelayed
({
//拖动seekbar时不进行以下操作
if
(!
seekBarIsDown
)
{
pro_progress
.
progress
=
progress
text_start_time
.
text
=
getStringTime
(
progress
)
}
},
0
)
}
override
fun
OnErrorListener
(
p1
:
Int
,
p2
:
String
)
{
// LogH.d("OnErrorListener:$p1 $p2")
setGifVisibity
(
false
)
}
override
fun
OnBufferingUpdateListener
(
p1
:
Int
)
{
// LogH.d("OnBufferingUpdateListener:$p1")
mHandler
?.
postDelayed
({
pro_progress
.
secondaryProgress
=
p1
*
pro_progress
.
max
/
100
},
0
)
}
}
YDLMusicPlayer
.
getInstance
().
addListener
(
playStatusListener
!!
)
}
}
fun
showBufferLoading
(
show
:
Boolean
)
{
mHandler
?.
postDelayed
({
if
(
show
)
{
if
(
mContext
!=
null
)
{
Glide
.
with
(
mContext
).
asGif
().
load
(
R
.
mipmap
.
loading5
).
into
(
img_gif
)
}
play_icon
.
setImageResource
(
R
.
drawable
.
ico_course_play
)
}
else
{
if
(
mContext
!=
null
)
{
Glide
.
with
(
mContext
).
asGif
().
load
(
R
.
mipmap
.
audio_play
).
into
(
img_gif
)
}
play_icon
.
setImageResource
(
R
.
drawable
.
ico_course_pause
)
}
},
0
)
}
//显示或隐藏播放动画
fun
setGifVisibity
(
show
:
Boolean
)
{
if
(
context
==
null
)
return
mHandler
?.
postDelayed
({
if
(
show
)
{
if
(
mContext
!=
null
)
{
Glide
.
with
(
mContext
).
asGif
().
load
(
R
.
mipmap
.
audio_play
).
into
(
img_gif
)
}
play_icon
.
setImageResource
(
R
.
drawable
.
ico_course_pause
)
}
else
{
if
(
mContext
!=
null
)
{
Glide
.
with
(
mContext
).
asBitmap
().
load
(
R
.
drawable
.
ico_course_bg_pause
).
into
(
img_gif
)
}
play_icon
.
setImageResource
(
R
.
drawable
.
ico_course_play
)
}
},
0
)
}
//跟新上下音频按钮状态
fun
updateButton
()
{
mHandler
?.
postDelayed
({
if
(
control
?.
isPlaying
()
==
true
)
{
setGifVisibity
(
true
)
}
},
0
)
}
fun
getStringTime
(
time
:
Int
):
String
{
if
(
time
<=
0
)
return
"00:00"
var
min
=
time
/
60000
var
ss
=
(
time
-
min
*
60000
)
/
1000
var
mm
=
""
+
min
var
SS
=
""
+
ss
if
(
min
<
10
)
{
mm
=
"0$mm"
}
if
(
ss
<
10
)
{
SS
=
"0$ss"
}
return
"$mm:$SS"
}
fun
onDestroy
()
{
mContext
=
null
mHandler
=
null
playStatusListener
?.
let
{
YDLMusicPlayer
.
getInstance
().
removeListener
(
it
)
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable-xhdpi/blank.png
deleted
100644 → 0
View file @
e4369ba4
5.43 KB
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable-xhdpi/course_default_img.png
0 → 100644
View file @
1e8f36a5
102 Bytes
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable-xhdpi/course_ico_course_play.png
0 → 100644
View file @
1e8f36a5
580 Bytes
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable-xhdpi/course_ico_img_zixun_empty.png
0 → 100644
View file @
1e8f36a5
31 KB
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable-xhdpi/course_ico_play_float_full.png
0 → 100644
View file @
1e8f36a5
509 Bytes
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable/course_audio_play.gif
0 → 100644
View file @
1e8f36a5
25 KB
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable/course_dot_seekbar.xml
0 → 100644
View file @
1e8f36a5
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:shape=
"oval"
>
<size
android:width=
"17dp"
android:height=
"17dp"
/>
<stroke
android:color=
"@color/white"
android:width=
"6dp"
/>
<solid
android:color=
"@color/color_FFDB26"
/>
</shape>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable/course_layer_progress.xml
0 → 100644
View file @
1e8f36a5
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:id=
"@android:id/background"
>
<shape>
<corners
android:radius=
"3dp"
/>
<solid
android:color=
"#C6CACE"
/>
</shape>
</item>
<item
android:id=
"@android:id/secondaryProgress"
>
<clip>
<shape>
<corners
android:radius=
"3dp"
/>
<solid
android:color=
"#ECF0F1"
/>
</shape>
</clip>
</item>
<item
android:id=
"@android:id/progress"
>
<clip>
<shape>
<corners
android:radius=
"3dp"
/>
<solid
android:color=
"@color/color_FFDB26"
/>
</shape>
</clip>
</item>
</layer-list>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/drawable/course_video_bottom_background.xml
0 → 100644
View file @
1e8f36a5
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:shape=
"rectangle"
>
<gradient
android:angle=
"270"
android:endColor=
"#99000000"
android:startColor=
"#00000000"
/>
</shape>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/activity_course.xml
View file @
1e8f36a5
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
android:paddingLeft=
"15dp"
android:paddingLeft=
"15dp"
android:paddingRight=
"10dp"
android:paddingRight=
"10dp"
android:src=
"@drawable/toolbar_back"
/>
android:src=
"@drawable/
course_
toolbar_back"
/>
<TextView
<TextView
android:id=
"@+id/tv_title"
android:id=
"@+id/tv_title"
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
android:layout_alignParentRight=
"true"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
android:layout_marginRight=
"15dp"
android:layout_marginRight=
"15dp"
android:src=
"@drawable/toolbar_back"
android:src=
"@drawable/
course_
toolbar_back"
android:text=
"我的课程"
android:text=
"我的课程"
android:textColor=
"@color/right_text_color"
/>
android:textColor=
"@color/right_text_color"
/>
</RelativeLayout>
</RelativeLayout>
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/activity_course_commeny.xml
View file @
1e8f36a5
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"19dp"
android:layout_marginStart=
"19dp"
android:src=
"@drawable/toolbar_back"
android:src=
"@drawable/
course_
toolbar_back"
app:layout_constraintBottom_toBottomOf=
"@+id/tv_title"
app:layout_constraintBottom_toBottomOf=
"@+id/tv_title"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/tv_title"
/>
app:layout_constraintTop_toTopOf=
"@+id/tv_title"
/>
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/activity_course_poster.xml
View file @
1e8f36a5
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:paddingLeft=
"15dp"
android:paddingLeft=
"15dp"
android:src=
"@drawable/toolbar_back"
android:src=
"@drawable/
course_
toolbar_back"
app:layout_constraintBottom_toBottomOf=
"@+id/tv_title"
app:layout_constraintBottom_toBottomOf=
"@+id/tv_title"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/tv_title"
/>
app:layout_constraintTop_toTopOf=
"@+id/tv_title"
/>
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/activity_course_search.xml
0 → 100644
View file @
1e8f36a5
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<!--<include-->
<!--layout="@layout/base_module_title_bar"/>-->
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"44dp"
android:background=
"@color/color_FFFFFF"
android:gravity=
"center"
android:orientation=
"horizontal"
android:paddingLeft=
"15dp"
>
<ImageView
android:id=
"@+id/activity_course_back_btn"
android:layout_width=
"13dp"
android:layout_height=
"22dp"
android:src=
"@drawable/course_toolbar_back"
android:visibility=
"gone"
/>
<com.yidianling.course.widget.SearchBarView
android:id=
"@+id/activity_course_search_search_bar_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<LinearLayout
android:id=
"@+id/activity_course_search_unusual_layout"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/color_FFFFFF"
android:gravity=
"center_horizontal"
android:orientation=
"vertical"
android:visibility=
"invisible"
>
<ImageView
android:id=
"@+id/iv_empty"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"51dp"
android:src=
"@drawable/course_blank"
/>
<TextView
android:id=
"@+id/activity_course_search_unusual_layout_desc"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"18dp"
android:textColor=
"@color/color_ACACAC"
/>
</LinearLayout>
<android.support.v4.widget.SwipeRefreshLayout
android:id=
"@+id/activity_course_search_swipe_refresh_layout"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/activity_course_search_recycler"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:visibility=
"invisible"
/>
</android.support.v4.widget.SwipeRefreshLayout>
</FrameLayout>
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/course_play_music_view.xml
0 → 100644
View file @
1e8f36a5
<?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:layout_width=
"match_parent"
android:layout_height=
"211dp"
android:orientation=
"vertical"
>
<RelativeLayout
android:id=
"@+id/rela_play"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<ImageView
android:id=
"@+id/img_bg"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:scaleType=
"centerCrop"
tools:background=
"@color/main_theme"
/>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:alpha=
"0.5"
android:background=
"@color/black"
android:scaleType=
"fitXY"
/>
<ImageView
android:id=
"@+id/img_gif"
android:layout_width=
"80dp"
android:layout_height=
"40dp"
android:layout_centerInParent=
"true"
android:src=
"@drawable/course_audio_play"
/>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"40dp"
android:layout_alignParentBottom=
"true"
android:layout_marginBottom=
"15dp"
>
<ImageView
android:id=
"@+id/play_icon"
android:layout_width=
"40dp"
android:layout_height=
"40dp"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"3dp"
android:padding=
"14dp"
android:scaleType=
"centerCrop"
android:src=
"@drawable/course_ico_course_play"
/>
<SeekBar
android:id=
"@+id/pro_progress"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"-3dp"
android:layout_toLeftOf=
"@+id/text_start_time"
android:layout_toRightOf=
"@+id/play_icon"
android:maxHeight=
"2dp"
android:minHeight=
"2dp"
android:progressDrawable=
"@drawable/course_layer_progress"
android:thumb=
"@drawable/course_dot_seekbar"
tools:progress=
"0"
/>
<TextView
android:id=
"@+id/text_start_time"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_centerVertical=
"true"
android:layout_toLeftOf=
"@+id/tv_line"
android:gravity=
"center"
android:text=
"00:00"
android:textColor=
"@color/white"
android:textSize=
"11sp"
/>
<TextView
android:id=
"@+id/tv_line"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_centerVertical=
"true"
android:layout_toLeftOf=
"@+id/text_end_time"
android:gravity=
"center"
android:paddingLeft=
"2dp"
android:paddingRight=
"2dp"
android:text=
"/"
android:textColor=
"@color/white"
android:textSize=
"11sp"
/>
<TextView
android:id=
"@+id/text_end_time"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_alignParentRight=
"true"
android:layout_marginRight=
"15dp"
android:gravity=
"center"
android:text=
"00:00"
android:textColor=
"@color/white"
android:textSize=
"11sp"
/>
</RelativeLayout>
<!-- 网络提示-->
<LinearLayout
android:id=
"@+id/ll_net_notice"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"#33000000"
android:clickable=
"true"
android:gravity=
"center"
android:orientation=
"vertical"
android:visibility=
"gone"
tools:visibility=
"visible"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"8dp"
android:gravity=
"center"
android:paddingLeft=
"8dp"
android:paddingRight=
"8dp"
android:text=
"正在使用非Wi-Fi网络,播放将产生流量费用"
android:textColor=
"@android:color/white"
android:textSize=
"14sp"
/>
<ImageView
android:id=
"@+id/iv_net_notice"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:src=
"@drawable/ico_spfc_play"
/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/course_videoplay_view.xml
0 → 100644
View file @
1e8f36a5
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/app_video_box"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@android:color/black"
android:orientation=
"vertical"
>
<com.dou361.ijkplayer.widget.IjkVideoView
android:id=
"@+id/video_view"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
<LinearLayout
android:id=
"@+id/ll_bg"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@android:color/black"
android:orientation=
"vertical"
>
<!-- 封面显示-->
<ImageView
android:id=
"@+id/iv_trumb"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:scaleType=
"fitXY"
android:visibility=
"visible"
/>
</LinearLayout>
<!--重新播放-->
<LinearLayout
android:id=
"@+id/app_video_replay"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"#33000000"
android:gravity=
"center"
android:orientation=
"vertical"
android:visibility=
"gone"
>
<!-- 播放状态-->
<TextView
android:id=
"@+id/app_video_status_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/small_problem"
android:textColor=
"@android:color/white"
android:textSize=
"14dp"
/>
<ImageView
android:id=
"@+id/app_video_replay_icon"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerHorizontal=
"true"
android:layout_marginTop=
"8dp"
android:src=
"@drawable/simple_player_circle_outline_white_36dp"
/>
</LinearLayout>
<!-- 网络提示-->
<LinearLayout
android:id=
"@+id/app_video_netTie"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"#33000000"
android:gravity=
"center"
android:orientation=
"vertical"
android:visibility=
"gone"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"8dp"
android:gravity=
"center"
android:paddingLeft=
"8dp"
android:paddingRight=
"8dp"
android:text=
"正在使用非Wi-Fi网络,播放将产生流量费用"
android:textColor=
"@android:color/white"
android:textSize=
"14sp"
/>
<ImageView
android:id=
"@+id/app_video_netTie_icon"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:src=
"@drawable/ico_spfc_play"
/>
</LinearLayout>
<!--加载中-->
<LinearLayout
android:id=
"@+id/app_video_loading"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:gravity=
"center"
android:orientation=
"vertical"
android:visibility=
"gone"
>
<ProgressBar
android:layout_width=
"50dp"
android:layout_height=
"50dp"
android:indeterminateBehavior=
"repeat"
android:indeterminateOnly=
"true"
/>
<TextView
android:id=
"@+id/app_video_speed"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"4dp"
android:gravity=
"center"
android:text=
"188Kb/s"
android:textColor=
"@android:color/white"
android:visibility=
"gone"
/>
</LinearLayout>
<!-- 中间触摸提示-->
<include
layout=
"@layout/simple_player_touch_gestures"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
/>
<FrameLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
>
<!-- 顶部栏-->
<include
layout=
"@layout/simple_player_topbar"
/>
</FrameLayout>
<!-- 底部栏-->
<LinearLayout
android:id=
"@+id/ll_bottom_bar"
android:layout_width=
"match_parent"
android:layout_height=
"64dp"
android:layout_alignParentBottom=
"true"
android:background=
"@drawable/course_video_bottom_background"
android:gravity=
"center_vertical"
android:minHeight=
"35dp"
android:paddingTop=
"30dp"
>
<ImageView
android:id=
"@+id/app_video_play"
android:layout_width=
"40dp"
android:layout_height=
"40dp"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"3dp"
android:padding=
"1dp"
android:scaleType=
"centerCrop"
android:src=
"@drawable/course_ico_course_play"
/>
<LinearLayout
android:id=
"@+id/app_video_process_panl"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_marginLeft=
"-4dp"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<RelativeLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
>
<TextView
android:id=
"@+id/app_video_stream"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:clickable=
"true"
android:focusable=
"true"
android:gravity=
"center_vertical"
android:padding=
"5dp"
android:text=
"标清"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
android:visibility=
"gone"
/>
<TextView
android:id=
"@+id/app_video_currentTime_full"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:text=
"06:21"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
android:visibility=
"gone"
/>
<LinearLayout
android:id=
"@+id/app_video_lift"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginLeft=
"2dp"
android:layout_marginRight=
"2dp"
android:orientation=
"horizontal"
android:visibility=
"gone"
>
<TextView
android:id=
"@+id/app_video_currentTime_left"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"06:21"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"/"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
/>
<TextView
android:id=
"@+id/app_video_endTime_left"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"10:10"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
/>
</LinearLayout>
<TextView
android:id=
"@+id/app_video_endTime_full"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:text=
"10:10"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
android:visibility=
"gone"
/>
<ImageView
android:id=
"@+id/ijk_iv_rotation"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"5dp"
android:src=
"@drawable/simple_player_iv_rotation"
android:visibility=
"gone"
/>
</RelativeLayout>
<LinearLayout
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<SeekBar
android:id=
"@+id/app_video_seekBar"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:maxHeight=
"2dp"
android:minHeight=
"2dp"
android:progressDrawable=
"@drawable/course_layer_progress"
android:thumb=
"@drawable/course_dot_seekbar"
/>
<LinearLayout
android:id=
"@+id/app_video_center"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"2dp"
android:layout_marginRight=
"2dp"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/app_video_currentTime"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:text=
"06:21"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:text=
"/"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
/>
<TextView
android:id=
"@+id/app_video_endTime"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:text=
"10:10"
android:textColor=
"@android:color/white"
android:textSize=
"12dp"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:id=
"@+id/app_video_fullscreen"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"8dp"
android:src=
"@drawable/course_ico_play_float_full"
/>
</LinearLayout>
<!--声音亮度控制-->
<LinearLayout
android:id=
"@+id/simple_player_settings_container"
android:layout_width=
"250dp"
android:layout_height=
"match_parent"
android:layout_alignParentLeft=
"true"
android:background=
"#80000000"
android:gravity=
"center_vertical"
android:orientation=
"vertical"
android:visibility=
"visible"
>
<LinearLayout
android:id=
"@+id/simple_player_volume_controller_container"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<ImageView
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:src=
"@drawable/qcloud_player_icon_audio_vol_mute"
/>
<SeekBar
android:id=
"@+id/simple_player_volume_controller"
style=
"?android:attr/progressBarStyleHorizontal"
android:layout_width=
"150dp"
android:layout_height=
"wrap_content"
/>
<ImageView
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:src=
"@drawable/qcloud_player_icon_audio_vol"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/simple_player_brightness_controller_container"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<ImageView
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:padding=
"5dp"
android:src=
"@drawable/qcloud_player_icon_brightness"
/>
<SeekBar
android:id=
"@+id/simple_player_brightness_controller"
style=
"?android:attr/progressBarStyleHorizontal"
android:layout_width=
"150dp"
android:layout_height=
"wrap_content"
/>
<ImageView
android:layout_width=
"30dp"
android:layout_height=
"30dp"
android:src=
"@drawable/qcloud_player_icon_brightness"
/>
</LinearLayout>
</LinearLayout>
<!--分辨率选择-->
<LinearLayout
android:id=
"@+id/simple_player_select_stream_container"
android:layout_width=
"150dp"
android:layout_height=
"match_parent"
android:layout_alignParentRight=
"true"
android:background=
"#80000000"
android:gravity=
"center_vertical"
android:visibility=
"gone"
>
<ListView
android:id=
"@+id/simple_player_select_streams_list"
android:layout_width=
"150dp"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
<RelativeLayout
android:id=
"@+id/rl_play_pause_layout"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:visibility=
"gone"
>
<ImageView
android:id=
"@+id/play_icon"
android:layout_width=
"40dp"
android:layout_height=
"40dp"
android:src=
"@drawable/simple_player_center_play"
/>
</RelativeLayout>
</RelativeLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/course_view_course_play_item.xml
0 → 100644
View file @
1e8f36a5
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<include
layout=
"@layout/course_videoplay_view"
android:layout_width=
"match_parent"
android:layout_height=
"211dp"
/>
</LinearLayout>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/fragment_course_list.xml
View file @
1e8f36a5
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
android:id=
"@+id/iv_course_list_empty_view"
android:id=
"@+id/iv_course_list_empty_view"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/blank"
android:src=
"@drawable/
course_
blank"
android:visibility=
"gone"
android:visibility=
"gone"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"50dp"
/>
android:layout_marginTop=
"50dp"
/>
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/res/layout/layout_title_bar.xml
View file @
1e8f36a5
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
android:paddingLeft=
"15dp"
android:paddingLeft=
"15dp"
android:paddingRight=
"10dp"
android:paddingRight=
"10dp"
android:src=
"@drawable/toolbar_back"
/>
android:src=
"@drawable/
course_
toolbar_back"
/>
<TextView
<TextView
android:id=
"@+id/tv_title"
android:id=
"@+id/tv_title"
...
...
This diff is collapsed.
Click to expand it.
m-course/src/main/res/values/colors.xml
View file @
1e8f36a5
...
@@ -128,4 +128,6 @@
...
@@ -128,4 +128,6 @@
<color
name=
"color_99000000"
>
#99000000
</color>
<color
name=
"color_99000000"
>
#99000000
</color>
<color
name=
"color_30FFFFFF"
>
#4DFFFFFF
</color>
<color
name=
"color_30FFFFFF"
>
#4DFFFFFF
</color>
<color
name=
"color_66000000"
>
#66000000
</color>
<color
name=
"color_66000000"
>
#66000000
</color>
<color
name=
"color_FFFFFF"
>
#FFFFFF
</color>
<color
name=
"color_ACACAC"
>
#ACACAC
</color>
</resources>
</resources>
\ No newline at end of file
This diff is collapsed.
Click to expand it.
m-course/src/xlzx/res/drawable-xhdpi/toolbar_back.png
→
m-course/src/xlzx/res/drawable-xhdpi/
course_
toolbar_back.png
View file @
1e8f36a5
File moved
This diff is collapsed.
Click to expand it.
m-course/src/ydl/res/drawable-xhdpi/toolbar_back.png
→
m-course/src/ydl/res/drawable-xhdpi/
course_
toolbar_back.png
View file @
1e8f36a5
File moved
This diff is collapsed.
Click to expand it.
ydl-platform/src/main/java/com/ydl/ydlcommon/utils/actionutil/BIConstants.kt
View file @
1e8f36a5
...
@@ -8,29 +8,11 @@ import com.ydl.ydlcommon.base.config.YDLConstants
...
@@ -8,29 +8,11 @@ import com.ydl.ydlcommon.base.config.YDLConstants
* Created by xj on 2019/7/1.
* Created by xj on 2019/7/1.
*/
*/
class
BIConstants
{
class
BIConstants
{
companion
object
{
companion
object
{
/**
/**
* 消息端来源
* 消息端来源
* ydl:ydl-app-android-user
* xlzx:ydl-app-android-xlzx
*/
*/
const
val
APP_ID
=
"ydl-app-android-user"
//这是用户端主包的
var
APP_ID
:
String
=
""
get
()
{
return
"ydl-app-android-"
+
(
if
(
BaseApp
.
instance
.
getGlobalConfig
().
appFrom
==
YDLConstants
.
FROM_XLZX
)
"xlzx"
else
"user"
)
}
var
APP_NAME
:
String
=
""
get
()
{
return
if
(
BaseApp
.
instance
.
getGlobalConfig
().
appFrom
==
YDLConstants
.
FROM_XLZX
)
"心理咨询"
else
"壹点灵心理咨询"
}
var
PACKAGE_NAME
:
String
=
""
get
()
{
return
if
(
BaseApp
.
instance
.
getGlobalConfig
().
appFrom
==
YDLConstants
.
FROM_XLZX
)
"com.cxzapp.xinlizixun"
else
"com.cxzapp.yidianling"
}
/**
/**
* 操作系统
* 操作系统
...
@@ -47,5 +29,133 @@ class BIConstants{
...
@@ -47,5 +29,133 @@ class BIConstants{
const
val
WELCOME_PAGE
=
"welcome_page"
const
val
WELCOME_PAGE
=
"welcome_page"
//百度监测 用户注册行为
//百度监测 用户注册行为
const
val
APP_REGISTER_PAGE
=
"app_register_page"
const
val
APP_REGISTER_PAGE
=
"app_register_page"
/**
* position
* 点击类型
*/
const
val
POSITION_LOGIN_CLICK
=
"login_click"
//登录点击
const
val
POSITION_LOGIN_SUCCESS_CLICK
=
"login_success_click"
//登录成功点击
//咨询筛选页
const
val
POSITION_CONSULT_TYPE_CLICK
=
"consult_type_click"
//咨询方式
const
val
POSITION_AVERAGE_SERVICE_INPUT
=
"average_service_input"
//服务均价
const
val
POSITION_AGE_CHOICE_CLICK
=
"age_choice_click"
//年龄选择
const
val
POSITION_QUALIFICATION_CHOICE_CLICK
=
"qualification_choice_click"
//资质选择
const
val
POSITION_OTHER_CHOICE_CLICK
=
"other_choice_click"
//其他选择
const
val
POSITION_CONSULT_FILTER_RESET_CLICK
=
"consult_filter_reset_click"
//重置
const
val
POSITION_CONSULT_FILTER_CHECKOUT_CLICK
=
"consult_filter_checkoutallconsultants_click"
//查看XXX位咨询师
//百度监测 应用启动
const
val
POSITION_APP_START_UP_CLICK
=
"app_start_up_click"
//应用启动
//百度监测 用户注册
const
val
POSITION_WX_REGISTER_CLICK
=
"wx_register_click"
//微信第一次登录
const
val
POSITION_QQ_REGISTER_CLICK
=
"qq_register_click"
//QQ第一次登录
const
val
POSITION_PHONE_REGISTER_CLICK
=
"phone_register_click"
//手机号密码第一次登录
const
val
POSITION_ALIYUN_REGISTER_CLICK
=
"aliyun_register_click"
//阿里云第一次一键登录
const
val
POSITION_CODE_REGISTER_CLICK
=
"code_register_click"
//短信第一次登录
//随便逛逛点击
const
val
POSITION_LOOK_AROUND_CLICK
=
"look_around_click"
//登录主页浏览事件(包含随便逛逛)
const
val
POSITION_LOGIN_ONE_PAGE_VISIT
=
"login_main_one_page_visit"
//登录主页浏览事件(不包含随便逛逛)
const
val
POSITION_LOGIN_TWO_PAGE_VISIT
=
"login_main_two_page_visit"
/**
* action type
* 行为数据埋点,sign1字段 是对同一key下多种不同行为的描述
*/
const
val
ACTION_TYPE_CODE_LOGIN
:
String
=
"code_login"
//验证码登录
const
val
ACTION_TYPE_RESET_PWD
:
String
=
"reset_pwd"
//重置密码登录
const
val
ACTION_TYPE_PWD_LOGIN
:
String
=
"pwd_login"
//手机号密码登录
const
val
ACTION_TYPE_DIRECT_LOGIN
:
String
=
"direct_login"
//一键登录
const
val
ACTION_TYPE_QQ_THIRD_LOGIN
:
String
=
"qq_login"
//QQ登录
const
val
ACTION_TYPE_WX_THIRD_LOGIN
:
String
=
"wx_login"
//WX登录
}
//====================壹点灵用户版首页(ydl_user_main_page)====================
class
UserMainEvent
{
companion
object
{
private
const
val
YDL_USER_MAIN_PAGE
:
String
=
"ydl_user_main_page|"
//壹点灵用户版首页 partId
const
val
YDL_USER_SEARCH_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_search_click"
//搜索栏
const
val
YDL_USER_TELEPHONE_CUSTOMER_SERVICE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_telephone_customer_service_click"
//电话客服
const
val
YDL_USER_BANNER_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_banner_click"
//banner
const
val
YDL_USER_NOTICE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_notice_click"
//公告
const
val
YDL_USER_CONSULT_CLASSIFICATION_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_consult_classification_click"
//首页咨询分类
const
val
YDL_USER_CONSULT_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_consult_click"
//四个大按钮 心理咨询点击人数
const
val
YDL_USER_TALK_IN_TIME_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_talk_in_time_click"
//四个大按钮 即时倾诉点击人数
const
val
YDL_USER_PSYCHOLOGICAL_CLASSROOM_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_psychological_classroom_click"
//四个大按钮 心理课堂点击人数
const
val
YDL_USER_PSYCHOLOGICAL_TEST_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_psychological_test_click"
//四个大按钮 心理测试点击人数
const
val
YDL_USER_CONSULT_MORE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_consult_more_click"
//咨询解惑更多
const
val
YDL_USER_CONSULT_TYPE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_consult_type_click"
//咨询解惑分类标签
const
val
YDL_USER_EXPERT_INTRODUCTION_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_expert_introduction_click"
//咨询师介绍模块
const
val
YDL_USER_PRIVATE_CHAT_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_private_chat_click"
//咨询师私聊按钮
const
val
YDL_USER_LISTEN_MORE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_listen_more_click"
//倾诉排解更多
const
val
YDL_USER_LISTEN_TYPE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_listen_type_click"
//倾诉排解分类标签
const
val
YDL_USER_LISTENER_INTRODUCTION_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_listener_introduction_click "
//倾诉师介绍模块
const
val
YDL_USER_COURSE_MORE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_course_more_click"
//课程成长更多
const
val
YDL_USER_COURSE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_course_click"
//课程标题图区域
const
val
YDL_USER_ASK_MORE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_ask_more_click"
//解忧问答更多
const
val
YDL_USER_ASK_COMMENT_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_ask_comment_click"
//问答评论区域
const
val
YDL_USER_HEART_RADIO_MORE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_heart_radio_more_click"
//心灵电台更多
const
val
YDL_USER_RADIO_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_radio_click "
//区域内四个标题
const
val
YDL_USER_RADIO_PLAY_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_radio_play_click"
//心灵电台play按钮点击
const
val
YDL_USER_ARTICLE_MORE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_article_more_click"
//文章阅读更多
const
val
YDL_USER_ARTICLE_CLICK
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_article_click"
//文章标题图区域
const
val
YDL_USER_MAIN_PAGE_VISIT
:
String
=
YDL_USER_MAIN_PAGE
+
"ydl_user_main_page_visit "
//首页浏览事件
}
}
//====================APP咨询列表页(app_consult_list_page)====================
class
ConsultEvent
{
companion
object
{
private
const
val
APP_CONSULT_LIST_PAGE
:
String
=
"app_consult_list_page|"
//APP咨询列表页 partId
const
val
APP_CONSULT_LIST_PAGE_VISIT
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_page_visit"
//列表页浏览事件
const
val
APP_CONSULT_LIST_CONSULT_GUIDE_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_consult_guide_click "
//咨询指南
const
val
APP_CONSULT_LIST_ONLINE_CUSTOMER_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_online_customer_click"
//在线客服
const
val
APP_CONSULT_LIST_THEME_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_theme_click "
//主题全部
const
val
APP_CONSULT_LIST_AREA_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_area_click"
//地区各个地区
const
val
APP_CONSULT_LIST_SORT_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_sort_click"
//排序综合排序
const
val
APP_CONSULT_LIST_DOCTOR_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_doctor_click"
//每个咨询师页面点击
const
val
APP_CONSULT_LIST_CHAT_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"app_consult_list_chat_click"
//每个咨询师私聊
}
}
//====================课程列表页(course_list_page)====================
class
CourseListEvent
{
companion
object
{
private
const
val
COURSE_LIST_PAGE
:
String
=
"course_list_page|"
//课程列表页 partId
const
val
POSITION_COURSE_LIST_RETURN_CLICK
=
COURSE_LIST_PAGE
+
"course_list_return_click"
//返回点击
const
val
POSITION_COURSE_LIST_SORT_CLICK
=
COURSE_LIST_PAGE
+
"course_list_sort_click"
//综合排序点击
const
val
POSITION_COURSE_LIST_FILTER_CLICK
=
COURSE_LIST_PAGE
+
"course_list_filter_click"
//筛选点击
const
val
POSITION_COURSE_LIST_CLASSIFICATION_CLICK
=
COURSE_LIST_PAGE
+
"course_list_classification_click"
//分类点击
const
val
POSITION_COURSE_LIST_AUDITION_CLICK
=
COURSE_LIST_PAGE
+
"course_list_audition_click"
//试听点击
const
val
POSITION_COURSE_LIST_PAGE_VISIT
=
COURSE_LIST_PAGE
+
"course_list_page_visit"
//课程列表页浏览点击
const
val
POSITION_COURSE_LIST_XXX_CLICK
=
COURSE_LIST_PAGE
+
"course_list_"
//课程点击
}
}
//====================课程频道页(course_home_page)====================
class
CourseHomeEvent
{
companion
object
{
private
const
val
COURSE_HOME_PAGE
:
String
=
"course_home_page|"
//课程频道页 partId
const
val
POSITION_COURSE_HOME_PAGE_VISIT
=
COURSE_HOME_PAGE
+
"course_home_page_visit"
//列表页浏览点击
const
val
POSITION_COURSE_HOME_MY_COUSE_CLICK
=
COURSE_HOME_PAGE
+
"course_home_my_couse_click"
//我的课程
const
val
POSITION_COURSE_HOME_SEACH_CLICK
=
COURSE_HOME_PAGE
+
"course_home_seach_click"
//搜索
const
val
POSITION_COURSE_HOME_BANNER_CLICK
=
COURSE_HOME_PAGE
+
"course_home_banner_click"
//banner-各位置
const
val
POSITION_COURSE_HOME_CLASSIFICATION_CLICK
=
COURSE_HOME_PAGE
+
"course_home_classification_click"
//分类点击
const
val
POSITION_COURSE_HOME_EXCELLENT_COURSES_PAY_XXX_CLICK
=
COURSE_HOME_PAGE
+
"course_home_excellent_courses_pay_"
//精品课程-付费课程-各课程页面点击
const
val
POSITION_COURSE_HOME_EXCELLENT_COURSES_FREE_XXX_CLICK
=
COURSE_HOME_PAGE
+
"course_home_excellent_courses_free_"
//精品课程-免费课程-各课程页面点击
const
val
POSITION_COURSE_HOME_EXCELLENT_COURSES_MORE_CLICK
=
COURSE_HOME_PAGE
+
"course_home_excellent_courses_more_click"
//精品课程-更多课程
const
val
POSITION_COURSE_HOME_CONSULTANT_COURSE_MORE_CLICK
=
COURSE_HOME_PAGE
+
"course_home_consultant_course_more_click"
//咨询师课程-更多课程
const
val
POSITION_COURSE_HOME_OFFLINE_CERTIFICATION_TRAINING_XXX_CLICK
=
COURSE_HOME_PAGE
+
"course_home_offline_certification_training_"
//线下考证培训-各课程页面点击
const
val
POSITION_COURSE_HOME_OFFLINE_CERTIFICATION_TRAINING_MORE_CLICK
=
COURSE_HOME_PAGE
+
"course_home_offline_certification_training_more_click"
//线下考证培训-更多课程
const
val
POSITION_COURSE_HOME_THEMATIC_COURSES_XXX_CLICK
=
COURSE_HOME_PAGE
+
"course_home_thematic_courses_"
//专题课程-各课程页面点击
const
val
POSITION_COURSE_HOME_THEMATIC_COURSES_MORE_CLICK
=
COURSE_HOME_PAGE
+
"course_home_thematic_courses_more_click"
//专题课程-更多
}
}
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
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