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
59882ebd
Commit
59882ebd
authored
May 19, 2022
by
万齐军
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 倾诉首页修改
parent
fd5ab45f
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
14 additions
and
141 deletions
+14
-141
ConfideHomeActivity.kt
m-confide/src/main/java/com/ydl/confide/home/ConfideHomeActivity.kt
+2
-47
IConfideHomeContract.kt
m-confide/src/main/java/com/ydl/confide/home/contract/IConfideHomeContract.kt
+0
-4
ConfideHomePresenterImpl.kt
m-confide/src/main/java/com/ydl/confide/home/presenter/ConfideHomePresenterImpl.kt
+7
-65
ConfideHomeUtils.kt
m-confide/src/main/java/com/ydl/confide/home/util/ConfideHomeUtils.kt
+5
-25
No files found.
m-confide/src/main/java/com/ydl/confide/home/ConfideHomeActivity.kt
View file @
59882ebd
...
...
@@ -6,7 +6,6 @@ import android.graphics.Color
import
android.os.Build
import
android.view.View
import
android.view.WindowManager
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.SimpleItemAnimator
import
com.alibaba.android.arouter.facade.annotation.Route
...
...
@@ -36,16 +35,12 @@ import com.ydl.webview.NewH5Activity
import
com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener
import
com.ydl.ydlcommon.base.config.HttpConfig.Companion.H5_URL
import
com.ydl.ydlcommon.base.config.HttpConfig.Companion.YDL_H5
import
com.ydl.ydlcommon.modular.ModularServiceManager
import
com.ydl.ydlcommon.mvp.lce.BaseLceActivity
import
com.ydl.ydlcommon.utils.BuryPointUtils
import
com.ydl.ydlcommon.utils.LogUtil
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.ydl.ydlcommon.view.DrawableRightTextView
import
com.ydl.ydlcommon.view.WrapContentLinearLayoutManager
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.im.api.service.IImService
import
kotlinx.android.synthetic.main.confide_home_activity.*
import
kotlinx.android.synthetic.main.confide_title_bar.*
...
...
@@ -140,6 +135,7 @@ class ConfideHomeActivity : BaseLceActivity<IConfideHomeContract.View,IConfideHo
//重置页
page
=
1
allFiltersBean
!!
.
page
=
page
clearCacheData
()
mPresenter
.
confideHomeRequest
(
true
)
recommendList
(
page
)
}
...
...
@@ -329,9 +325,8 @@ class ConfideHomeActivity : BaseLceActivity<IConfideHomeContract.View,IConfideHo
override
fun
confideHomeResponse
(
list
:
MutableList
<
ConfideHomeDataBean
>)
{
initParam
()
hideError
()
updateCacheData
(
list
)
cacheList
?.
addAll
(
0
,
list
)
updateAdapter
()
updateQuickConsultUrl
()
setSuspendListener
()
v_filterView
.
refreshView
()
}
...
...
@@ -350,18 +345,6 @@ class ConfideHomeActivity : BaseLceActivity<IConfideHomeContract.View,IConfideHo
}
/**
* 更新一键倾诉按钮url
*/
private
fun
updateQuickConsultUrl
()
{
//这边用try catch的原因是防止因为接口数据结构变化导致cacheList!![1].body!![1].linkUrl获取失败
quickConsultUrl
=
try
{
cacheList
!!
[
1
].
body
!!
[
1
].
linkUrl
}
catch
(
e
:
Exception
)
{
"https://h5.ydl.com/confideMatch"
}
}
/**
* 更新适配器数据
*/
private
fun
updateAdapter
()
{
...
...
@@ -391,34 +374,6 @@ class ConfideHomeActivity : BaseLceActivity<IConfideHomeContract.View,IConfideHo
}
/**
* 更新缓存数据
*/
private
fun
updateCacheData
(
list
:
List
<
ConfideHomeDataBean
>)
{
clearCacheData
()
var
soundBean
:
ConfideHomeDataBean
?
=
null
for
(
index
in
0
until
list
.
size
)
{
//将听声寻人数据取出 最后加入
when
{
//听声寻人
list
[
index
].
type
==
IConfideHomeConfig
.
TYPE_SOUND
->
soundBean
=
list
[
index
]
//为你推荐
list
[
index
].
type
==
IConfideHomeConfig
.
TYPE_RECOMMEND
->
{
//如果为你推荐的数量大于等于10条 就认为有下一页
hasMore
=
null
!=
list
[
index
].
body
&&
list
[
index
].
body
!!
.
size
>=
10
list
[
index
].
recommendId
=
page
(
cacheList
as
ArrayList
).
add
(
list
[
index
])
}
//其他模块正常添加
else
->
(
cacheList
as
ArrayList
).
add
(
list
[
index
])
}
}
//听声寻人 放在最后添加
if
(
null
!=
soundBean
)
{
(
cacheList
as
ArrayList
).
add
(
soundBean
)
}
}
/**
* 根据筛选条件 更新为你推荐数据
*/
private
fun
updateCacheDataByRecommend
(
bean
:
ConfideHomeDataBean
)
{
...
...
m-confide/src/main/java/com/ydl/confide/home/contract/IConfideHomeContract.kt
View file @
59882ebd
...
...
@@ -87,10 +87,6 @@ interface IConfideHomeContract{
interface
Presenter
:
IPresenter
<
View
>
{
/**
* 加载本地缓存
*/
fun
loadLocalData
(
context
:
Context
)
/**
* 倾诉首页数据请求
*/
fun
confideHomeRequest
(
isRefresh
:
Boolean
=
true
)
...
...
m-confide/src/main/java/com/ydl/confide/home/presenter/ConfideHomePresenterImpl.kt
View file @
59882ebd
package
com.ydl.confide.home.presenter
import
android.content.Context
import
android.text.TextUtils
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.ydl.confide.home.bean.ConfideHomeDataBean
import
com.ydl.confide.home.contract.IConfideHomeContract
import
com.ydl.confide.home.http.ConfideRecommendParam
import
com.ydl.confide.home.model.ConfideHomeModelImpl
import
com.ydl.confide.home.util.ConfideHomeUtils
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.mvp.base.BasePresenter
import
com.ydl.ydlcommon.mvp.base.IView
import
com.ydl.ydlcommon.utils.YDLAsyncUtils
import
com.ydl.ydlcommon.utils.YDLCacheUtils
import
com.yidianling.common.tools.RxNetTool
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
...
...
@@ -26,54 +18,18 @@ import io.reactivex.functions.Consumer
* @Company 壹点灵
* @date 2018/8/10
*/
class
ConfideHomePresenterImpl
:
BasePresenter
<
IConfideHomeContract
.
View
,
IConfideHomeContract
.
Model
>(),
IConfideHomeContract
.
Presenter
{
class
ConfideHomePresenterImpl
:
BasePresenter
<
IConfideHomeContract
.
View
,
IConfideHomeContract
.
Model
>(),
IConfideHomeContract
.
Presenter
{
override
fun
createModel
():
IConfideHomeContract
.
Model
{
return
ConfideHomeModelImpl
()
}
/**
* 加载本地缓存
*/
override
fun
loadLocalData
(
context
:
Context
)
{
YDLAsyncUtils
.
asyncAsResult
(
object
:
YDLAsyncUtils
.
AsyncObjecyerResult
{
override
fun
doAsyncAction
():
Any
{
//读取缓存数据
var
cacheData
=
YDLCacheUtils
.
getConfideHomeData
()
if
(
cacheData
.
isEmpty
())
{
cacheData
=
String
(
ConfideHomeUtils
.
getAssertsFile
(
context
,
"confide_home.json"
)
!!
)
}
return
cacheData
}
override
fun
asyncResult
(
`object`
:
Any
?)
{
//如果没有缓存数据,显示加载框
if
(
`object`
!
is
String
||
TextUtils
.
isEmpty
(
`object`
)){
mView
.
showLoading
()
}
if
(
`object`
is
String
){
val
gson
=
Gson
()
val
list
=
gson
.
fromJson
<
MutableList
<
ConfideHomeDataBean
>>(
`object`
,
object
:
TypeToken
<
MutableList
<
ConfideHomeDataBean
>>()
{
}.
type
)
if
(
null
!=
list
&&
!
list
.
isEmpty
()){
mView
.
confideHomeResponse
(
list
)
}
}
confideHomeRequest
(
false
)
}
})
}
/**
* 请求首页数据
*/
override
fun
confideHomeRequest
(
isRefresh
:
Boolean
)
{
if
(!
RxNetTool
.
isConnected
(
mView
.
getContext
())){
override
fun
confideHomeRequest
(
isRefresh
:
Boolean
)
{
if
(!
RxNetTool
.
isConnected
(
mView
.
getContext
()))
{
mView
.
confideHomeRequestFail
()
return
}
...
...
@@ -84,7 +40,6 @@ class ConfideHomePresenterImpl : BasePresenter<IConfideHomeContract.View,IConfid
.
doFinally
{
mView
.
hideLoading
()
}
.
subscribe
(
Consumer
{
mView
.
confideHomeResponse
(
it
)
updateCache
(
it
)
},
object
:
ThrowableConsumer
()
{
override
fun
accept
(
msg
:
String
)
{
mView
.
confideHomeRequestFail
()
...
...
@@ -93,23 +48,10 @@ class ConfideHomePresenterImpl : BasePresenter<IConfideHomeContract.View,IConfid
}
/**
* 更新本地缓存
*/
private
fun
updateCache
(
list
:
MutableList
<
ConfideHomeDataBean
>){
YDLAsyncUtils
.
async
(
object
:
YDLAsyncUtils
.
AsyncObjecyer
{
override
fun
doAsyncAction
()
{
var
gson
=
Gson
()
var
json
=
gson
.
toJson
(
list
)
YDLCacheUtils
.
saveConfideHomeData
(
json
)
}
})
}
/**
* 为你推荐列表(筛选调用)
*/
override
fun
recommendList
(
param
:
ConfideRecommendParam
)
{
if
(!
RxNetTool
.
isConnected
(
mView
.
getContext
())){
override
fun
recommendList
(
param
:
ConfideRecommendParam
)
{
if
(!
RxNetTool
.
isConnected
(
mView
.
getContext
()))
{
mView
.
showError1
(
"网络不给力"
)
return
}
...
...
@@ -131,7 +73,7 @@ class ConfideHomePresenterImpl : BasePresenter<IConfideHomeContract.View,IConfid
* 为你推荐列表(翻页时调用)
*/
override
fun
recommendListMore
(
param
:
ConfideRecommendParam
)
{
if
(!
RxNetTool
.
isConnected
(
mView
.
getContext
())){
if
(!
RxNetTool
.
isConnected
(
mView
.
getContext
()))
{
mView
.
showError1
(
"网络不给力"
)
return
}
...
...
m-confide/src/main/java/com/ydl/confide/home/util/ConfideHomeUtils.kt
View file @
59882ebd
package
com.ydl.confide.home.util
import
android.content.Context
import
androidx.core.content.ContextCompat
import
androidx.appcompat.widget.AppCompatTextView
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
android.text.TextUtils
import
android.view.View
import
android.view.animation.AnimationUtils
import
android.view.animation.LinearInterpolator
import
android.widget.ImageView
import
androidx.appcompat.widget.AppCompatTextView
import
androidx.core.content.ContextCompat
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
com.ydl.confide.R
import
com.ydl.confide.home.adapter.ConfideHomeAdapter
import
com.ydl.confide.home.bean.ConfideHomeAllFiltersBean
...
...
@@ -84,32 +84,12 @@ class ConfideHomeUtils {
* 数据重组
*/
fun
resetData
(
list
:
MutableList
<
ConfideHomeDataBean
>,
filterView
:
ConfideHomeFilterView
,
listScrollListener
:
ConfideHomeRecycleViewListener
)
{
val
recommendList
:
MutableList
<
ConfideHomeDataBean
>
=
ArrayList
()
var
soundDataBean
:
ConfideHomeDataBean
?
=
null
for
((
index
,
dataBean
)
in
list
.
withIndex
().
reversed
())
{
for
((
index
,
dataBean
)
in
list
.
withIndex
())
{
//给隐藏的为你推荐筛选view赋值
if
(
dataBean
.
type
==
IConfideHomeConfig
.
TYPE_RECOMMEND_FILTER
)
{
listScrollListener
.
setFilterIndex
(
index
)
filterView
.
initData
(
dataBean
)
}
//拆分为你推荐数据
if
(
dataBean
.
type
==
IConfideHomeConfig
.
TYPE_RECOMMEND
)
{
//如果是为你推荐数据 则进行筛分
recommendList
.
addAll
(
getRecommendList
(
dataBean
))
//移除当前 为你推荐数据
list
.
removeAt
(
index
)
}
//移除听声寻人数据 放在最后
if
(
dataBean
.
type
==
IConfideHomeConfig
.
TYPE_SOUND
)
{
soundDataBean
=
ConfideHomeDataBean
(
dataBean
.
type
,
dataBean
.
body
,
dataBean
.
head
,
dataBean
.
footer
,
dataBean
.
recommendId
)
list
.
removeAt
(
index
)
}
}
//添加 拆分后的 为你推荐数据
list
.
addAll
(
recommendList
)
//添加 听声寻人 数据
if
(
null
!=
soundDataBean
)
{
list
.
add
(
soundDataBean
)
}
}
...
...
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