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
290aa8e9
Commit
290aa8e9
authored
Jul 13, 2022
by
fengquan
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/release' into feat/fq/fq_consulttant_revision_release
parents
1deb8fdc
98bbab77
Show whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
657 additions
and
386 deletions
+657
-386
build.gradle
api/consultant/build.gradle
+1
-1
OnBottomWordListener.kt
api/consultant/src/main/java/com/yidianling/consultant/OnBottomWordListener.kt
+9
-0
IConsultantService.kt
api/consultant/src/main/java/com/yidianling/consultant/api/IConsultantService.kt
+8
-2
FunctionWordConsultBean.kt
api/consultant/src/main/java/com/yidianling/consultant/bean/FunctionWordConsultBean.kt
+9
-0
config.gradle
config.gradle
+2
-2
ExpertSearchActivity.kt
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchActivity.kt
+41
-7
ExpertSearchFragment.kt
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchFragment.kt
+37
-5
ExpertSearchPresenter.kt
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchPresenter.kt
+19
-1
HotSearchActivity.kt
m-consultant/src/main/java/com/yidianling/consultant/HotSearchActivity.kt
+81
-18
IExpertSearchView.kt
m-consultant/src/main/java/com/yidianling/consultant/IExpertSearchView.kt
+4
-1
ExpertSearchAdapter.kt
m-consultant/src/main/java/com/yidianling/consultant/adapter/ExpertSearchAdapter.kt
+0
-2
SearchWordsBean.kt
m-consultant/src/main/java/com/yidianling/consultant/bean/SearchWordsBean.kt
+9
-6
ConsultBIConstants.kt
m-consultant/src/main/java/com/yidianling/consultant/constants/ConsultBIConstants.kt
+10
-4
IHotSearchContract.kt
m-consultant/src/main/java/com/yidianling/consultant/contract/IHotSearchContract.kt
+25
-3
HotSearchHttpImpl.kt
m-consultant/src/main/java/com/yidianling/consultant/http/hotsearch/HotSearchHttpImpl.kt
+7
-0
IHotSearchHttp.kt
m-consultant/src/main/java/com/yidianling/consultant/http/hotsearch/IHotSearchHttp.kt
+9
-2
HotSearchModelImpl.kt
m-consultant/src/main/java/com/yidianling/consultant/model/HotSearchModelImpl.kt
+9
-2
SearchApi.kt
m-consultant/src/main/java/com/yidianling/consultant/model/SearchApi.kt
+15
-6
FunctionWordBean.kt
m-consultant/src/main/java/com/yidianling/consultant/model/bean/FunctionWordBean.kt
+9
-0
ConsultantServiceImp.kt
m-consultant/src/main/java/com/yidianling/consultant/modular/ConsultantServiceImp.kt
+26
-3
HotSearchPresenterImpl.kt
m-consultant/src/main/java/com/yidianling/consultant/presenter/HotSearchPresenterImpl.kt
+23
-2
YdlHomeFragment.kt
m-home/src/xlzx/java/com/yidianling/home/ui/fragment/YdlHomeFragment.kt
+41
-1
YdlHomeFragment.kt
m-home/src/ydl/java/com/yidianling/home/ui/fragment/YdlHomeFragment.kt
+50
-23
AndroidManifest.xml
m-im/src/main/AndroidManifest.xml
+0
-11
build.gradle
m-user/build.gradle
+3
-1
AndroidManifest.xml
m-user/src/main/AndroidManifest.xml
+2
-2
AddAccountActivity.kt
m-user/src/main/java/com/yidianling/user/mine/AddAccountActivity.kt
+53
-45
ChooseAccountActivity.kt
m-user/src/main/java/com/yidianling/user/mine/ChooseAccountActivity.kt
+11
-4
AccountBean.kt
m-user/src/main/java/com/yidianling/user/mine/bean/AccountBean.kt
+49
-1
AddAliAccountFragment.kt
m-user/src/main/java/com/yidianling/user/mine/fragment/AddAliAccountFragment.kt
+0
-80
AddBankAccountFragment.kt
m-user/src/main/java/com/yidianling/user/mine/fragment/AddBankAccountFragment.kt
+0
-22
user_mine_img_yhk.jpg
m-user/src/main/res/drawable-xhdpi/user_mine_img_yhk.jpg
+0
-0
user_mine_activity_add_account.xml
m-user/src/main/res/layout/user_mine_activity_add_account.xml
+94
-12
user_mine_fragment_add_ali_account.xml
m-user/src/main/res/layout/user_mine_fragment_add_ali_account.xml
+0
-94
user_mine_fragment_add_bank_account.xml
m-user/src/main/res/layout/user_mine_fragment_add_bank_account.xml
+0
-23
NewH5Activity.java
ydl-webview/src/main/java/com/ydl/webview/NewH5Activity.java
+1
-0
No files found.
api/consultant/build.gradle
View file @
290aa8e9
...
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
...
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
apply
plugin:
'kotlin-android'
apply
plugin:
'kotlin-android'
apply
from:
"../../maven_push_api.gradle"
apply
from:
"../../maven_push_api.gradle"
version
=
'1.0.
0
'
version
=
'1.0.
2
'
android
{
android
{
compileSdkVersion
rootProject
.
ext
.
android
[
"compileSdkVersion"
]
compileSdkVersion
rootProject
.
ext
.
android
[
"compileSdkVersion"
]
...
...
api/consultant/src/main/java/com/yidianling/consultant/OnBottomWordListener.kt
0 → 100644
View file @
290aa8e9
package
com.yidianling.consultant
import
com.yidianling.consultant.bean.FunctionWordConsultBean
interface
OnBottomWordListener
{
fun
onBottomWord
(
wordList
:
MutableList
<
FunctionWordConsultBean
>)
}
\ No newline at end of file
api/consultant/src/main/java/com/yidianling/consultant/api/IConsultantService.kt
View file @
290aa8e9
...
@@ -6,6 +6,7 @@ import androidx.fragment.app.Fragment
...
@@ -6,6 +6,7 @@ import androidx.fragment.app.Fragment
import
com.alibaba.android.arouter.facade.template.IProvider
import
com.alibaba.android.arouter.facade.template.IProvider
import
com.yidianling.consultant.bean.GuideBean
import
com.yidianling.consultant.bean.GuideBean
import
com.yidianling.consultant.bean.Keyworks
import
com.yidianling.consultant.bean.Keyworks
import
com.yidianling.consultant.OnBottomWordListener
/**
/**
* Created by xj on 2019/11/14.
* Created by xj on 2019/11/14.
...
@@ -39,11 +40,15 @@ interface IConsultantService: IProvider {
...
@@ -39,11 +40,15 @@ interface IConsultantService: IProvider {
fun
requestGuideData
()
fun
requestGuideData
()
fun
jumpConsultAssistant
(
activity
:
Activity
,
location
:
Int
)
fun
jumpConsultAssistant
(
activity
:
Activity
,
location
:
Int
)
//根据返回Type跳转自主或者导医
//根据返回Type跳转自主或者导医
fun
dueToTypeJumpAutoOrGuide
(
activity
:
Activity
,
location
:
Int
,
doctorId
:
Int
,
url
:
String
)
fun
dueToTypeJumpAutoOrGuide
(
activity
:
Activity
,
location
:
Int
,
doctorId
:
Int
,
url
:
String
)
// 咨询列表页显示咨询助理弹框
// 咨询列表页显示咨询助理弹框
fun
showConfideListDialog
(
activity
:
Activity
)
fun
showConfideListDialog
(
activity
:
Activity
)
//获取底纹词
fun
getbottomWord
(
type
:
Int
,
listener
:
OnBottomWordListener
)
}
}
\ No newline at end of file
api/consultant/src/main/java/com/yidianling/consultant/bean/FunctionWordConsultBean.kt
0 → 100644
View file @
290aa8e9
package
com.yidianling.consultant.bean
data class
FunctionWordConsultBean
(
var
id
:
Long
?,
var
word
:
String
?,
var
type
:
Int
?,
var
jumpUrl
:
String
?
)
\ No newline at end of file
config.gradle
View file @
290aa8e9
...
@@ -8,7 +8,7 @@ ext {
...
@@ -8,7 +8,7 @@ ext {
"m-consultant"
:
"0.0.60.78"
,
"m-consultant"
:
"0.0.60.78"
,
"m-fm"
:
"0.0.30.09"
,
"m-fm"
:
"0.0.30.09"
,
"m-user"
:
"0.0.62.72"
,
"m-user"
:
"0.0.62.72"
,
"m-home"
:
"0.0.24.0
0
"
,
"m-home"
:
"0.0.24.0
4
"
,
"m-im"
:
"0.0.21.69"
,
"m-im"
:
"0.0.21.69"
,
"m-dynamic"
:
"0.0.7.80"
,
"m-dynamic"
:
"0.0.7.80"
,
"m-article"
:
"0.0.0.10"
,
"m-article"
:
"0.0.0.10"
,
...
@@ -231,7 +231,7 @@ ext {
...
@@ -231,7 +231,7 @@ ext {
"ydl-m-tests-api"
:
"com.ydl:m-tests-api:1.0.0"
,
"ydl-m-tests-api"
:
"com.ydl:m-tests-api:1.0.0"
,
"ydl-m-im-api"
:
"com.ydl:m-im-api:1.0.3"
,
"ydl-m-im-api"
:
"com.ydl:m-im-api:1.0.3"
,
"ydl-m-home-api"
:
"com.ydl:m-home-api:${ydlPublishVersion["
m
-
home
-
api
"]}"
,
"ydl-m-home-api"
:
"com.ydl:m-home-api:${ydlPublishVersion["
m
-
home
-
api
"]}"
,
"ydl-m-consultant-api"
:
"com.ydl:m-consultant-api:1.0.
0
"
,
"ydl-m-consultant-api"
:
"com.ydl:m-consultant-api:1.0.
2
"
,
"ydl-m-dynamic-api"
:
"com.ydl:m-dynamic-api:1.0.0"
,
"ydl-m-dynamic-api"
:
"com.ydl:m-dynamic-api:1.0.0"
,
"ydl-m-confide-api"
:
"com.ydl:m-confide-api:1.0.4"
,
"ydl-m-confide-api"
:
"com.ydl:m-confide-api:1.0.4"
,
"ydl-m-course-api"
:
"com.ydl:m-course-api:1.0.0"
,
"ydl-m-course-api"
:
"com.ydl:m-course-api:1.0.0"
,
...
...
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchActivity.kt
View file @
290aa8e9
...
@@ -40,6 +40,7 @@ import com.yidianling.common.tools.LogUtil
...
@@ -40,6 +40,7 @@ import com.yidianling.common.tools.LogUtil
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.consultant.adapter.ExpertSearchAdapter
import
com.yidianling.consultant.adapter.ExpertSearchAdapter
import
com.yidianling.consultant.bean.FunctionWordConsultBean
import
com.yidianling.consultant.constants.ConsultBIConstants
import
com.yidianling.consultant.constants.ConsultBIConstants
import
com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.YDL_USER_CONSULT_SEARCH_CLICK
import
com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.YDL_USER_CONSULT_SEARCH_CLICK
import
com.yidianling.consultant.listener.OnCategoriesSelectedListener
import
com.yidianling.consultant.listener.OnCategoriesSelectedListener
...
@@ -53,25 +54,32 @@ import com.yidianling.consultant.ui.view.CategoryPopupWindow
...
@@ -53,25 +54,32 @@ import com.yidianling.consultant.ui.view.CategoryPopupWindow
import
com.yidianling.consultant.ui.view.FilterPopupWindow
import
com.yidianling.consultant.ui.view.FilterPopupWindow
import
com.yidianling.consultant.ui.view.SortPopupWindow
import
com.yidianling.consultant.ui.view.SortPopupWindow
import
com.yidianling.consultant.ui.view.topView.RecommendListView
import
com.yidianling.consultant.ui.view.topView.RecommendListView
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.disposables.Disposable
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.main.consultant_activity_expert_search_list.*
import
kotlinx.android.synthetic.main.consultant_activity_expert_search_list.*
import
kotlinx.android.synthetic.main.consultant_item_filter_online.view.*
import
kotlinx.android.synthetic.main.consultant_item_filter_online.view.*
import
kotlinx.android.synthetic.main.consultant_layout_search_content.*
import
kotlinx.android.synthetic.main.consultant_layout_search_content.*
import
kotlinx.android.synthetic.main.consultant_layout_search_toolbar.*
import
kotlinx.android.synthetic.main.consultant_layout_search_toolbar.*
import
org.json.JSONObject
import
org.json.JSONObject
import
java.util.concurrent.Executors
import
java.util.concurrent.Executors
import
java.util.concurrent.TimeUnit
@Route
(
path
=
"/consult/list"
)
@Route
(
path
=
"/consult/list"
)
class
ExpertSearchActivity
:
BaseMvpActivity
<
IExpertSearchView
,
ExpertSearchPresenter
>(),
class
ExpertSearchActivity
:
BaseMvpActivity
<
IExpertSearchView
,
ExpertSearchPresenter
>(),
View
.
OnClickListener
,
IExpertSearchView
,
View
.
OnClickListener
,
IExpertSearchView
,
OnCategoriesSelectedListener
,
OnSortItemSelectedListener
,
OnFilterConfirmListener
,
OnCategoriesSelectedListener
,
OnSortItemSelectedListener
,
OnFilterConfirmListener
,
SwipeRefreshLayout
.
OnRefreshListener
{
SwipeRefreshLayout
.
OnRefreshListener
{
var
bottomWordDisposable
:
Disposable
?
=
null
private
lateinit
var
bottomWordlist
:
List
<
FunctionWordBean
>
private
var
searchWord
:
String
?
=
""
override
fun
showImage
(
url
:
String
?,
imgView
:
ImageView
)
{
override
fun
showImage
(
url
:
String
?,
imgView
:
ImageView
)
{
YDLImageCacheManager
.
showImage
(
ExpertSearchActivity
@
this
,
url
,
imgView
)
YDLImageCacheManager
.
showImage
(
ExpertSearchActivity
@
this
,
url
,
imgView
)
}
}
override
fun
showImage
(
url
:
String
?,
imgView
:
ImageView
,
ops
:
SimpleImageOpConfiger
)
{
override
fun
showImage
(
url
:
String
?,
imgView
:
ImageView
,
ops
:
SimpleImageOpConfiger
)
{
YDLImageCacheManager
.
showImage
(
ExpertSearchActivity
@
this
,
url
,
imgView
,
ops
)
YDLImageCacheManager
.
showImage
(
this
,
url
,
imgView
,
ops
)
}
}
override
fun
showImage
(
override
fun
showImage
(
...
@@ -383,7 +391,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
...
@@ -383,7 +391,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
initCategory
=
mIntent
.
getStringExtra
(
EXTRA_CATEGORY
)
?:
""
initCategory
=
mIntent
.
getStringExtra
(
EXTRA_CATEGORY
)
?:
""
initShowType
=
mIntent
.
getIntExtra
(
EXTRA_SHOW_TYPE
,
0
)
initShowType
=
mIntent
.
getIntExtra
(
EXTRA_SHOW_TYPE
,
0
)
val
relatedWord
=
mIntent
.
getStringExtra
(
EXTRA_RELATED_WORD
)
// 搜索内容的联想词
val
relatedWord
=
mIntent
.
getStringExtra
(
EXTRA_RELATED_WORD
)
// 搜索内容的联想词
val
searchWord
=
mIntent
.
getStringExtra
(
EXTRA_SEARCH_WORD
)
searchWord
=
mIntent
.
getStringExtra
(
EXTRA_SEARCH_WORD
)
val
isRecommendWords
=
mIntent
.
getBooleanExtra
(
EXTRA_IS_RECCOMMEND_WORD
,
false
)
val
isRecommendWords
=
mIntent
.
getBooleanExtra
(
EXTRA_IS_RECCOMMEND_WORD
,
false
)
if
(!
TextUtils
.
isEmpty
(
relatedWord
))
{
// 判断搜索内容的联想词为空,则用搜索词进行搜索
if
(!
TextUtils
.
isEmpty
(
relatedWord
))
{
// 判断搜索内容的联想词为空,则用搜索词进行搜索
allFilter
.
searchWord
=
relatedWord
allFilter
.
searchWord
=
relatedWord
...
@@ -394,7 +402,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
...
@@ -394,7 +402,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
getRouterParam
()
getRouterParam
()
allFilter
.
showType
.
key
=
initShowType
allFilter
.
showType
.
key
=
initShowType
if
(!
TextUtils
.
isEmpty
(
initCategory
)
&&
initCategory
!=
"0"
)
{
if
(!
TextUtils
.
isEmpty
(
initCategory
)
&&
initCategory
!=
"0"
)
{
allFilter
.
categoryId2List
.
add
(
initCategory
)
allFilter
.
categoryId2List
.
add
(
initCategory
)
}
}
if
(!
TextUtils
.
isEmpty
(
cateName
))
{
if
(!
TextUtils
.
isEmpty
(
cateName
))
{
...
@@ -414,11 +422,11 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
...
@@ -414,11 +422,11 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
LogUtil
.
e
(
"relatedWord:${relatedWord}"
)
LogUtil
.
e
(
"relatedWord:${relatedWord}"
)
if
(!
TextUtils
.
isEmpty
(
searchWord
)
&&
!
TextUtils
.
isEmpty
(
relatedWord
)
&&
searchWord
!=
relatedWord
)
{
if
(!
TextUtils
.
isEmpty
(
searchWord
)
&&
!
TextUtils
.
isEmpty
(
relatedWord
)
&&
searchWord
!=
relatedWord
)
{
if
(
doctorList
.
size
>
0
&&
doctorList
[
0
].
is_head_view
)
{
if
(
doctorList
.
size
>
0
&&
doctorList
[
0
].
is_head_view
)
{
doctorList
[
0
]
=
ExpertServiceItem
(
true
,
searchWord
,
relatedWord
)
doctorList
[
0
]
=
ExpertServiceItem
(
true
,
searchWord
.
toString
()
,
relatedWord
)
}
else
if
(
doctorList
.
size
>
0
)
{
}
else
if
(
doctorList
.
size
>
0
)
{
doctorList
.
add
(
0
,
ExpertServiceItem
(
true
,
searchWord
,
relatedWord
))
doctorList
.
add
(
0
,
ExpertServiceItem
(
true
,
searchWord
.
toString
()
,
relatedWord
))
}
else
{
}
else
{
doctorList
.
add
(
ExpertServiceItem
(
true
,
searchWord
,
relatedWord
))
doctorList
.
add
(
ExpertServiceItem
(
true
,
searchWord
.
toString
()
,
relatedWord
))
}
}
}
else
{
}
else
{
if
(
doctorList
.
size
>
0
&&
doctorList
[
0
].
is_head_view
)
{
if
(
doctorList
.
size
>
0
&&
doctorList
[
0
].
is_head_view
)
{
...
@@ -432,6 +440,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
...
@@ -432,6 +440,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
doctorAdapter
.
clickCount
=
0
doctorAdapter
.
clickCount
=
0
doctorAdapter
.
setIsRecommendWords
(
isRecommendWords
)
doctorAdapter
.
setIsRecommendWords
(
isRecommendWords
)
doctorAdapter
.
setEntrance
(
1
)
doctorAdapter
.
setEntrance
(
1
)
getPresenter
().
fetchFunctionWord
(
2
)
}
}
override
fun
onNewIntent
(
intent
:
Intent
?)
{
override
fun
onNewIntent
(
intent
:
Intent
?)
{
...
@@ -511,6 +520,30 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
...
@@ -511,6 +520,30 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
}
}
}
}
override
fun
onFunctionWordFetched
(
wordBean
:
MutableList
<
FunctionWordBean
>)
{
//获取底纹词
bottomWordlist
=
wordBean
if
(
bottomWordlist
.
isNullOrEmpty
())
return
if
(!
searchWord
.
isNullOrEmpty
())
{
tv_search_content
.
text
=
searchWord
}
else
{
if
(
bottomWordlist
.
size
==
1
)
{
tv_search_content
.
text
=
bottomWordlist
[
0
].
word
}
else
{
bottomWordDisposable
=
Observable
.
interval
(
0
,
3
,
TimeUnit
.
SECONDS
)
.
subscribeOn
(
Schedulers
.
computation
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
tv_search_content
.
text
=
bottomWordlist
[(
it
%
bottomWordlist
.
size
).
toInt
()].
word
},
{
},
{
})
}
}
}
/**
/**
* 热门
* 热门
*/
*/
...
@@ -1559,6 +1592,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
...
@@ -1559,6 +1592,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
override
fun
onDestroy
()
{
override
fun
onDestroy
()
{
super
.
onDestroy
()
super
.
onDestroy
()
mHandler
=
null
mHandler
=
null
bottomWordDisposable
?.
dispose
()
ConsultAssistantDialogUtils
.
INSTANCE
.
expertSearchResetStatus
()
ConsultAssistantDialogUtils
.
INSTANCE
.
expertSearchResetStatus
()
}
}
}
}
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchFragment.kt
View file @
290aa8e9
...
@@ -4,6 +4,7 @@ import android.animation.Animator
...
@@ -4,6 +4,7 @@ import android.animation.Animator
import
android.animation.AnimatorListenerAdapter
import
android.animation.AnimatorListenerAdapter
import
android.animation.ObjectAnimator
import
android.animation.ObjectAnimator
import
android.animation.PropertyValuesHolder
import
android.animation.PropertyValuesHolder
import
android.annotation.SuppressLint
import
android.content.Context
import
android.content.Context
import
android.graphics.Typeface
import
android.graphics.Typeface
import
android.os.Handler
import
android.os.Handler
...
@@ -41,6 +42,7 @@ import com.yidianling.common.tools.LogUtil
...
@@ -41,6 +42,7 @@ import com.yidianling.common.tools.LogUtil
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.consultant.adapter.ExpertSearchAdapter
import
com.yidianling.consultant.adapter.ExpertSearchAdapter
import
com.yidianling.consultant.bean.FunctionWordConsultBean
import
com.yidianling.consultant.constants.ConsultBIConstants
import
com.yidianling.consultant.constants.ConsultBIConstants
import
com.yidianling.consultant.listener.OnCategoriesSelectedListener
import
com.yidianling.consultant.listener.OnCategoriesSelectedListener
import
com.yidianling.consultant.listener.OnExpertClickListener
import
com.yidianling.consultant.listener.OnExpertClickListener
...
@@ -56,12 +58,17 @@ import com.yidianling.consultant.ui.view.SortPopupWindow
...
@@ -56,12 +58,17 @@ import com.yidianling.consultant.ui.view.SortPopupWindow
import
com.yidianling.consultant.ui.view.topView.RecommendListView
import
com.yidianling.consultant.ui.view.topView.RecommendListView
import
com.yidianling.home.api.event.HomeModuleTabEvent
import
com.yidianling.home.api.event.HomeModuleTabEvent
import
de.greenrobot.event.EventBus
import
de.greenrobot.event.EventBus
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.disposables.Disposable
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.main.consultant_activity_expert_search_list.*
import
kotlinx.android.synthetic.main.consultant_activity_expert_search_list.*
import
kotlinx.android.synthetic.main.consultant_item_filter_online.view.*
import
kotlinx.android.synthetic.main.consultant_item_filter_online.view.*
import
kotlinx.android.synthetic.main.consultant_layout_search_content.*
import
kotlinx.android.synthetic.main.consultant_layout_search_content.*
import
kotlinx.android.synthetic.main.consultant_layout_search_toolbar.*
import
kotlinx.android.synthetic.main.consultant_layout_search_toolbar.*
import
org.json.JSONObject
import
org.json.JSONObject
import
java.util.concurrent.Executors
import
java.util.concurrent.Executors
import
java.util.concurrent.TimeUnit
@Route
(
path
=
"/consultant/consultant"
)
@Route
(
path
=
"/consultant/consultant"
)
class
ExpertSearchFragment
:
BaseMvpFragment
<
IExpertSearchView
,
ExpertSearchPresenter
>(),
class
ExpertSearchFragment
:
BaseMvpFragment
<
IExpertSearchView
,
ExpertSearchPresenter
>(),
...
@@ -73,7 +80,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -73,7 +80,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
var
startTime
=
0L
var
startTime
=
0L
var
endTime
=
0L
var
endTime
=
0L
private
var
mIdssign1
:
String
=
""
// 列表埋点咨询师列表id拼接参数
private
var
mIdssign1
:
String
=
""
// 列表埋点咨询师列表id拼接参数
var
bottomWordDisposable
:
Disposable
?
=
null
private
lateinit
var
bottomWordlist
:
List
<
FunctionWordBean
>
override
fun
layoutResId
():
Int
{
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
consultant_activity_expert_search_list
return
R
.
layout
.
consultant_activity_expert_search_list
}
}
...
@@ -145,6 +153,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -145,6 +153,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
const
val
FROM_FIND_EXPERT
=
1
const
val
FROM_FIND_EXPERT
=
1
const
val
FROM_ONLINE_EXPERT
=
2
const
val
FROM_ONLINE_EXPERT
=
2
const
val
PAGE_SIZE
=
15
const
val
PAGE_SIZE
=
15
//列表点击回来不刷新列表
//列表点击回来不刷新列表
var
needRefresh
=
true
;
var
needRefresh
=
true
;
}
}
...
@@ -197,7 +206,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -197,7 +206,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
srlContainer
.
isEnabled
=
i
>=
0
srlContainer
.
isEnabled
=
i
>=
0
})
})
doctorAdapter
=
ExpertSearchAdapter
(
mContext
,
this
,
doctorList
,
object
:
OnExpertClickListener
{
doctorAdapter
=
ExpertSearchAdapter
(
mContext
,
this
,
doctorList
,
object
:
OnExpertClickListener
{
override
fun
onExpertClick
()
{
override
fun
onExpertClick
()
{
needRefresh
=
false
needRefresh
=
false
}
}
...
@@ -346,6 +356,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -346,6 +356,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
allFilter
.
showType
.
key
=
initShowType
allFilter
.
showType
.
key
=
initShowType
getPresenter
().
fetchListHead
()
getPresenter
().
fetchListHead
()
getPresenter
().
fetchFunctionWord
(
2
)
recommendListView
.
requestData
(
""
)
recommendListView
.
requestData
(
""
)
v_loading
.
visibility
=
View
.
VISIBLE
v_loading
.
visibility
=
View
.
VISIBLE
...
@@ -418,6 +429,26 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -418,6 +429,26 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
}
}
}
}
@SuppressLint
(
"CheckResult"
)
override
fun
onFunctionWordFetched
(
wordBean
:
MutableList
<
FunctionWordBean
>)
{
//获取底纹词
bottomWordlist
=
wordBean
if
(
bottomWordlist
.
isNullOrEmpty
())
return
if
(
bottomWordlist
.
size
==
1
)
{
tv_search_content
.
text
=
bottomWordlist
[
0
].
word
}
else
{
bottomWordDisposable
=
Observable
.
interval
(
0
,
3
,
TimeUnit
.
SECONDS
)
.
subscribeOn
(
Schedulers
.
computation
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
tv_search_content
.
text
=
bottomWordlist
[(
it
%
bottomWordlist
.
size
).
toInt
()].
word
},
{
},
{
})
}
}
/**
/**
* 热门
* 热门
*/
*/
...
@@ -1374,7 +1405,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -1374,7 +1405,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
srlContainer
.
isRefreshing
=
isShowRefresh
!!
srlContainer
.
isRefreshing
=
isShowRefresh
!!
val
key
=
tv_search_content
.
text
.
toString
()
val
key
=
tv_search_content
.
text
.
toString
()
if
(!
TextUtils
.
isEmpty
(
key
.
trim
()))
{
if
(!
TextUtils
.
isEmpty
(
key
.
trim
()))
{
allFilter
.
searchWord
=
key
.
trim
()
allFilter
.
searchWord
=
null
}
else
{
}
else
{
allFilter
.
searchWord
=
null
allFilter
.
searchWord
=
null
}
}
...
@@ -1430,9 +1461,9 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -1430,9 +1461,9 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
override
fun
onResume
()
{
override
fun
onResume
()
{
super
.
onResume
()
super
.
onResume
()
if
(
needRefresh
){
if
(
needRefresh
)
{
refresh
(
false
)
refresh
(
false
)
}
else
{
}
else
{
//
//
needRefresh
=
true
needRefresh
=
true
}
}
...
@@ -1444,6 +1475,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
...
@@ -1444,6 +1475,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
super
.
onDestroy
()
super
.
onDestroy
()
EventBus
.
getDefault
().
unregister
(
this
)
EventBus
.
getDefault
().
unregister
(
this
)
mHandler
=
null
mHandler
=
null
bottomWordDisposable
?.
dispose
()
ConsultAssistantDialogUtils
.
INSTANCE
.
resetStatus
()
ConsultAssistantDialogUtils
.
INSTANCE
.
resetStatus
()
}
}
}
}
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchPresenter.kt
View file @
290aa8e9
...
@@ -43,6 +43,24 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
...
@@ -43,6 +43,24 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
})
})
}
}
// 查询底纹词
@SuppressLint
(
"CheckResult"
)
fun
fetchFunctionWord
(
type
:
Int
)
{
val
map
=
HashMap
<
String
,
Any
>()
map
[
"type"
]
=
type
SearchApi
.
getSearchApi
()
.
searchFunctionWord
(
map
)
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mView
))
//使用 Rxlifecycle,使 Disposable 和 Activity 一起销毁
.
compose
(
RxUtils
.
resultJavaData
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
resp
->
mView
.
onFunctionWordFetched
(
resp
)
},
{
t
->
HttpErrorUtils
.
handleError
(
BaseApp
.
getApp
(),
t
)
mView
.
fetchFailed
(
t
.
message
)
})
}
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
fun
fetchListData
(
allFilter
:
AllFilter
,
extras
:
Extras
?)
{
fun
fetchListData
(
allFilter
:
AllFilter
,
extras
:
Extras
?)
{
...
@@ -53,7 +71,7 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
...
@@ -53,7 +71,7 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
// filter
// filter
val
filterMap
=
HashMap
<
String
,
Any
?>()
val
filterMap
=
HashMap
<
String
,
Any
?>()
// 搜索词
// 搜索词
if
(!
TextUtils
.
isEmpty
(
allFilter
.
searchWord
)){
if
(!
TextUtils
.
isEmpty
(
allFilter
.
searchWord
))
{
filterMap
[
"__keywords"
]
=
allFilter
.
searchWord
filterMap
[
"__keywords"
]
=
allFilter
.
searchWord
}
}
val
categoryList
=
ArrayList
<
Any
>()
val
categoryList
=
ArrayList
<
Any
>()
...
...
m-consultant/src/main/java/com/yidianling/consultant/HotSearchActivity.kt
View file @
290aa8e9
...
@@ -15,6 +15,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
...
@@ -15,6 +15,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.alibaba.android.arouter.facade.annotation.Route
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.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydl_image.module.GlideApp
import
com.ydl.ydl_image.module.GlideApp
import
com.ydl.ydl_router.manager.YDLRouterParams
import
com.ydl.ydl_router.manager.YDLRouterParams
import
com.ydl.ydlcommon.base.BaseMvpActivity
import
com.ydl.ydlcommon.base.BaseMvpActivity
...
@@ -30,7 +32,9 @@ import com.yidianling.consultant.adapter.SearchWordsAdapter
...
@@ -30,7 +32,9 @@ import com.yidianling.consultant.adapter.SearchWordsAdapter
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.bean.*
import
com.yidianling.consultant.bean.*
import
com.yidianling.consultant.constants.ConsultBIConstants
import
com.yidianling.consultant.constants.ConsultBIConstants
import
com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.SEARCH_BANNERWORD_CLICK
import
com.yidianling.consultant.contract.IHotSearchContract
import
com.yidianling.consultant.contract.IHotSearchContract
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
com.yidianling.consultant.modular.utils.ConsultAssistantEntryUtils
import
com.yidianling.consultant.modular.utils.ConsultAssistantEntryUtils
import
com.yidianling.consultant.modular.utils.TempH5RouteUtils
import
com.yidianling.consultant.modular.utils.TempH5RouteUtils
import
com.yidianling.consultant.presenter.HotSearchPresenterImpl
import
com.yidianling.consultant.presenter.HotSearchPresenterImpl
...
@@ -40,14 +44,20 @@ import kotlinx.android.synthetic.main.consultant_item_expert_hot_search.view.*
...
@@ -40,14 +44,20 @@ import kotlinx.android.synthetic.main.consultant_item_expert_hot_search.view.*
@Route
(
path
=
"/consult/hot_search"
)
@Route
(
path
=
"/consult/hot_search"
)
class
HotSearchActivity
:
BaseMvpActivity
<
IHotSearchContract
.
View
,
IHotSearchContract
.
Presenter
>(),
class
HotSearchActivity
:
BaseMvpActivity
<
IHotSearchContract
.
View
,
IHotSearchContract
.
Presenter
>(),
IHotSearchContract
.
View
{
IHotSearchContract
.
View
{
private
lateinit
var
searchWordsAdapter
:
SearchWordsAdapter
private
lateinit
var
searchWordsAdapter
:
SearchWordsAdapter
private
val
searchSuggestList
:
ArrayList
<
SearchSuggestListBean
>
=
ArrayList
()
private
val
searchSuggestList
:
ArrayList
<
SearchSuggestListBean
>
=
ArrayList
()
private
var
mSearchContent
:
String
=
""
private
var
mSearchContent
:
String
=
""
private
val
CACHE_CONSULT_SEARCH_HISTORY_DATA
=
"cache_consult_search_history_data"
private
val
HOT_SEARCH_DOCTOR_NAME
=
"hot_search_doctor_name"
private
var
historyList
:
FixSizeLinkedList
<
String
>
=
FixSizeLinkedList
(
15
)
private
var
historyList
:
FixSizeLinkedList
<
String
>
=
FixSizeLinkedList
(
15
)
private
val
bannerList
=
ArrayList
<
String
>()
private
val
bannerList
=
ArrayList
<
String
>()
companion
object
{
private
const
val
CACHE_CONSULT_SEARCH_HISTORY_DATA
=
"cache_consult_search_history_data"
private
const
val
HOT_SEARCH_DOCTOR_NAME
=
"hot_search_doctor_name"
private
const
val
JUMP_WORD
=
"jump_word"
}
//历史搜索内容的最大宽度
//历史搜索内容的最大宽度
private
var
maxWidth
:
Int
=
0
private
var
maxWidth
:
Int
=
0
...
@@ -82,7 +92,7 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -82,7 +92,7 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
private
fun
getDataFromIntent
()
{
private
fun
getDataFromIntent
()
{
val
doctorName
=
intent
.
getStringExtra
(
HOT_SEARCH_DOCTOR_NAME
)
val
doctorName
=
intent
.
getStringExtra
(
HOT_SEARCH_DOCTOR_NAME
)
if
(!
TextUtils
.
isEmpty
(
doctorName
))
{
if
(!
TextUtils
.
isEmpty
(
doctorName
))
{
etSearch
.
setText
(
doctorName
)
etSearch
.
hint
=
doctorName
iv_delete_icon
.
visibility
=
View
.
VISIBLE
iv_delete_icon
.
visibility
=
View
.
VISIBLE
}
}
}
}
...
@@ -109,11 +119,20 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -109,11 +119,20 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
if
(
TextUtils
.
isEmpty
(
relatedWords
)
&&
!
TextUtils
.
isEmpty
(
searchSuggestList
[
0
].
suggest_content
))
{
if
(
TextUtils
.
isEmpty
(
relatedWords
)
&&
!
TextUtils
.
isEmpty
(
searchSuggestList
[
0
].
suggest_content
))
{
relatedWords
=
searchSuggestList
[
0
].
suggest_content
relatedWords
=
searchSuggestList
[
0
].
suggest_content
}
}
if
(
searchSuggestList
?.
get
(
0
)
?.
suggest_types
?.
contains
(
JUMP_WORD
))
{
NewH5Activity
.
start
(
this
,
H5Params
(
searchSuggestList
[
0
].
jump_url
!!
,
null
))
}
else
{
if
(
etSearch
.
text
.
toString
().
isNullOrEmpty
())
{
doSearch
(
etSearch
.
hint
.
toString
(),
relatedWords
,
isRecommendWords
)
}
else
{
doSearch
(
etSearch
.
text
.
toString
(),
relatedWords
,
isRecommendWords
)
doSearch
(
etSearch
.
text
.
toString
(),
relatedWords
,
isRecommendWords
)
}
}
}
else
{
}
else
{
val
searchWords
=
etSearch
.
text
.
toString
()
val
searchWords
=
etSearch
.
text
.
toString
()
if
(
TextUtils
.
isEmpty
(
searchWords
))
{
if
(
TextUtils
.
isEmpty
(
searchWords
))
{
doSearch
(
searchWords
,
""
,
isRecommendWords
)
getSearchWords
(
etSearch
.
hint
.
toString
(),
true
)
}
else
{
}
else
{
getSearchWords
(
etSearch
.
text
.
toString
(),
true
)
getSearchWords
(
etSearch
.
text
.
toString
(),
true
)
}
}
...
@@ -164,7 +183,15 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -164,7 +183,15 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
relatedWords
=
searchSuggestList
[
position
].
suggest_content
relatedWords
=
searchSuggestList
[
position
].
suggest_content
}
}
}
}
doSearch
(
searchSuggestList
[
position
].
suggest_content
,
relatedWords
,
isRecommendWords
)
if
(
searchSuggestList
[
position
].
suggest_types
.
contains
(
JUMP_WORD
))
{
NewH5Activity
.
start
(
this
,
H5Params
(
searchSuggestList
[
position
].
jump_url
!!
,
null
))
}
else
{
doSearch
(
searchSuggestList
[
position
].
suggest_content
,
relatedWords
,
isRecommendWords
)
}
// 埋点
// 埋点
ActionCountUtils
.
baiDuCountSign3
(
ActionCountUtils
.
baiDuCountSign3
(
...
@@ -219,6 +246,7 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -219,6 +246,7 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
isClickWords
:
Boolean
isClickWords
:
Boolean
)
{
)
{
if
(
isClickWords
)
{
if
(
isClickWords
)
{
//判断 suggest_classify_types 有值则通过 jump_url跳转
// 搜索的关联词
// 搜索的关联词
var
relatedWords
=
""
var
relatedWords
=
""
var
isRecommendWords
=
false
var
isRecommendWords
=
false
...
@@ -231,7 +259,27 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -231,7 +259,27 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
relatedWords
=
searchWordsBean
.
search_suggests
[
0
].
suggest_content
relatedWords
=
searchWordsBean
.
search_suggests
[
0
].
suggest_content
}
}
}
}
if
(!
searchWordsBean
.
search_suggests
.
isNullOrEmpty
()
&&
searchWordsBean
.
search_suggests
.
get
(
0
).
suggest_types
.
contains
(
JUMP_WORD
)
)
{
//将数据增加到历史搜索中
if
(!
TextUtils
.
isEmpty
(
searchContent
))
{
historyList
.
remove
(
searchContent
)
historyList
.
add
(
searchContent
)
SharedPreferencesEditor
.
putString
(
CACHE_CONSULT_SEARCH_HISTORY_DATA
,
Gson
().
toJson
(
historyList
)
)
}
NewH5Activity
.
start
(
this
,
H5Params
(
searchWordsBean
.
search_suggests
[
0
].
jump_url
!!
,
null
)
)
finish
()
}
else
{
doSearch
(
searchContent
,
relatedWords
,
isRecommendWords
)
doSearch
(
searchContent
,
relatedWords
,
isRecommendWords
)
}
}
else
{
}
else
{
searchSuggestList
.
clear
()
searchSuggestList
.
clear
()
if
(!
searchWordsBean
.
search_suggests
.
isNullOrEmpty
())
{
if
(!
searchWordsBean
.
search_suggests
.
isNullOrEmpty
())
{
...
@@ -257,7 +305,9 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -257,7 +305,9 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
private
fun
initData
()
{
private
fun
initData
()
{
initHistoryData
()
initHistoryData
()
mPresenter
.
localData
(
this
)
mPresenter
.
localData
(
this
)
val
mapType
=
HashMap
<
String
,
Any
>()
mapType
[
"type"
]
=
1
mPresenter
.
searchHotWordData
(
mapType
)
if
(
etSearch
.
requestFocus
())
{
if
(
etSearch
.
requestFocus
())
{
val
imm
=
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
)
as
InputMethodManager
val
imm
=
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
)
as
InputMethodManager
val
isShowing
=
imm
.
showSoftInput
(
etSearch
,
InputMethodManager
.
SHOW_IMPLICIT
)
val
isShowing
=
imm
.
showSoftInput
(
etSearch
,
InputMethodManager
.
SHOW_IMPLICIT
)
...
@@ -276,30 +326,36 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -276,30 +326,36 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
refreshBanner
(
hotSearchBean
.
focusList
)
refreshBanner
(
hotSearchBean
.
focusList
)
}
}
override
fun
requestFail
()
{
override
fun
searchHotWordData
(
wordList
:
MutableList
<
FunctionWordBean
>)
{
refreshBanner
(
null
)
//热门词搜索结果
}
if
(
wordList
.
isEmpty
())
{
//刷新 热门搜索
private
fun
refreshHotSearchData
(
keywordData
:
MutableList
<
HotSearchKeyWordDataBean
>?)
{
if
(
null
==
keywordData
||
keywordData
.
isEmpty
())
{
llHotSearch
.
visibility
=
View
.
GONE
llHotSearch
.
visibility
=
View
.
GONE
return
return
}
}
llHotSearch
.
visibility
=
View
.
VISIBLE
llHotSearch
.
visibility
=
View
.
VISIBLE
flHotSearch
.
removeAllViews
()
flHotSearch
.
removeAllViews
()
for
(
index
in
keywordData
.
indices
)
{
for
(
index
in
wordList
.
indices
)
{
val
view
=
LayoutInflater
.
from
(
this
)
val
view
=
LayoutInflater
.
from
(
this
)
.
inflate
(
R
.
layout
.
consultant_item_expert_hot_search
,
flHotSearch
,
false
)
.
inflate
(
R
.
layout
.
consultant_item_expert_hot_search
,
flHotSearch
,
false
)
view
.
tvHotSearch
.
text
=
keywordData
[
index
].
key
word
view
.
tvHotSearch
.
text
=
wordList
[
index
].
word
view
.
setOnClickListener
{
view
.
setOnClickListener
{
getSearchWords
(
keywordData
[
index
].
keyword
!!
,
true
)
ActionCountUtils
.
count
(
SEARCH_BANNERWORD_CLICK
,
wordList
[
index
].
word
!!
,
"热门搜索"
)
getSearchWords
(
wordList
[
index
].
word
!!
,
true
)
}
}
flHotSearch
.
addView
(
view
)
flHotSearch
.
addView
(
view
)
}
}
}
}
override
fun
requestFail
()
{
refreshBanner
(
null
)
}
//刷新 热门搜索
private
fun
refreshHotSearchData
(
keywordData
:
MutableList
<
HotSearchKeyWordDataBean
>?)
{
//旧的热门搜索
}
//刷新 本周热门专家
//刷新 本周热门专家
private
fun
refreshHotExpertData
(
hotSearchExpert
:
MutableList
<
HotSearchPopularDoctorBean
>?)
{
private
fun
refreshHotExpertData
(
hotSearchExpert
:
MutableList
<
HotSearchPopularDoctorBean
>?)
{
if
(
null
==
hotSearchExpert
||
hotSearchExpert
.
isEmpty
())
{
if
(
null
==
hotSearchExpert
||
hotSearchExpert
.
isEmpty
())
{
...
@@ -326,7 +382,12 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -326,7 +382,12 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
}
}
}
}
view
.
setOnClickListener
{
view
.
setOnClickListener
{
getSearchWords
(
hotSearchExpert
[
index
].
name
!!
,
true
)
ActionCountUtils
.
count
(
SEARCH_BANNERWORD_CLICK
,
hotSearchExpert
[
index
].
name
.
toString
(),
"本周热门专家"
)
getSearchWords
(
hotSearchExpert
[
index
].
name
.
toString
(),
true
)
}
}
flHotExpert
.
addView
(
view
)
flHotExpert
.
addView
(
view
)
}
}
...
@@ -388,6 +449,8 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
...
@@ -388,6 +449,8 @@ class HotSearchActivity : BaseMvpActivity<IHotSearchContract.View, IHotSearchCon
break
break
}
}
view
.
setOnClickListener
{
view
.
setOnClickListener
{
//历史搜索
ActionCountUtils
.
count
(
SEARCH_BANNERWORD_CLICK
,
historyStr
,
"历史搜索"
)
getSearchWords
(
historyStr
,
true
)
getSearchWords
(
historyStr
,
true
)
}
}
fl_search_history
.
addView
(
view
)
fl_search_history
.
addView
(
view
)
...
...
m-consultant/src/main/java/com/yidianling/consultant/IExpertSearchView.kt
View file @
290aa8e9
...
@@ -3,8 +3,10 @@ package com.yidianling.consultant
...
@@ -3,8 +3,10 @@ package com.yidianling.consultant
import
android.widget.ImageView
import
android.widget.ImageView
import
com.ydl.ydl_image.config.SimpleImageOpConfiger
import
com.ydl.ydl_image.config.SimpleImageOpConfiger
import
com.ydl.ydlcommon.mvp.base.IView
import
com.ydl.ydlcommon.mvp.base.IView
import
com.yidianling.consultant.bean.FunctionWordConsultBean
import
com.yidianling.consultant.model.bean.ExpertServiceItem
import
com.yidianling.consultant.model.bean.ExpertServiceItem
import
com.yidianling.consultant.model.bean.Extras
import
com.yidianling.consultant.model.bean.Extras
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
com.yidianling.consultant.model.bean.HeadData
import
com.yidianling.consultant.model.bean.HeadData
/**
/**
...
@@ -16,7 +18,8 @@ interface IExpertSearchView : IView {
...
@@ -16,7 +18,8 @@ interface IExpertSearchView : IView {
fun
localData
()
fun
localData
()
fun
onHeadFetched
(
headData
:
HeadData
?)
fun
onHeadFetched
(
headData
:
HeadData
?)
fun
onDoctorListFetched
(
data
:
MutableList
<
ExpertServiceItem
>,
extras
:
Extras
?,
curPage
:
Int
)
fun
onFunctionWordFetched
(
wordBean
:
MutableList
<
FunctionWordBean
>)
fun
onDoctorListFetched
(
data
:
MutableList
<
ExpertServiceItem
>,
extras
:
Extras
?,
curPage
:
Int
)
fun
fetchFailed
(
msg
:
String
?)
fun
fetchFailed
(
msg
:
String
?)
fun
fetchListFailed
(
msg
:
String
?)
fun
fetchListFailed
(
msg
:
String
?)
fun
fetchListEmpty
(
msg
:
String
?)
fun
fetchListEmpty
(
msg
:
String
?)
...
...
m-consultant/src/main/java/com/yidianling/consultant/adapter/ExpertSearchAdapter.kt
View file @
290aa8e9
...
@@ -402,8 +402,6 @@ class ExpertSearchAdapter(
...
@@ -402,8 +402,6 @@ class ExpertSearchAdapter(
}
}
}
}
}
else
if
(
holder
is
FooterViewHolder
)
{
}
else
if
(
holder
is
FooterViewHolder
)
{
LogUtil
.
e
(
"${listData.size}"
)
LogUtil
.
e
(
"${hasMore}"
)
if
(
hasMore
)
{
if
(
hasMore
)
{
holder
.
itemView
.
visibility
=
View
.
VISIBLE
holder
.
itemView
.
visibility
=
View
.
VISIBLE
holder
.
pbLoading
.
visibility
=
View
.
VISIBLE
holder
.
pbLoading
.
visibility
=
View
.
VISIBLE
...
...
m-consultant/src/main/java/com/yidianling/consultant/bean/SearchWordsBean.kt
View file @
290aa8e9
...
@@ -8,11 +8,13 @@ data class SearchWordsBean(
...
@@ -8,11 +8,13 @@ data class SearchWordsBean(
)
)
data class
SearchSuggestListBean
(
data class
SearchSuggestListBean
(
val
id
:
String
,
val
id
:
String
,
val
score
:
String
,
val
score
:
String
,
val
suggest_content
:
String
,
val
suggest_content
:
String
,
val
suggest_relations
:
ArrayList
<
String
>,
val
suggest_relations
:
ArrayList
<
String
>,
val
search_count
:
Int
,
val
search_count
:
Int
,
val
suggest_classify_types
:
ArrayList
<
String
>,
val
suggest_classify_types
:
ArrayList
<
String
>?,
val
mapping_classify_type_exist
:
Boolean
val
mapping_classify_type_exist
:
Boolean
,
val
jump_url
:
String
?,
val
suggest_types
:
ArrayList
<
String
>
)
)
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/constants/ConsultBIConstants.kt
View file @
290aa8e9
...
@@ -58,10 +58,16 @@ class ConsultBIConstants {
...
@@ -58,10 +58,16 @@ class ConsultBIConstants {
const
val
YDL_USER_CONSULT_TYPE_CLICK
:
String
=
const
val
YDL_USER_CONSULT_TYPE_CLICK
:
String
=
APP_CONSULT_LIST_PAGE
+
"ydl_user_consult_type_click"
//咨询师顶部ICON 厌学专题、限时特惠、精神心理
APP_CONSULT_LIST_PAGE
+
"ydl_user_consult_type_click"
//咨询师顶部ICON 厌学专题、限时特惠、精神心理
const
val
POSITION_CONSULT_COUNSELOR_CARD_CLICK
=
"consult_counselor_card_click"
// 咨询师列表点击position
const
val
POSITION_CONSULT_COUNSELOR_CARD_CLICK
=
const
val
POSITION_CHOICE_FILTER_CLICK
=
"choice_filter_click"
// 热门点击项position
"consult_counselor_card_click"
// 咨询师列表点击position
const
val
POSITION_TWO_CATEGORY_CLICK
=
"two_category_click"
// 八大类标签选择埋点
const
val
POSITION_CHOICE_FILTER_CLICK
=
const
val
POSITION_GOODAT_CROWD_CLICK
=
"goodat_crowd_click"
// 擅长人群埋点
"choice_filter_click"
// 热门点击项position
const
val
POSITION_TWO_CATEGORY_CLICK
=
"two_category_click"
// 八大类标签选择埋点
const
val
POSITION_GOODAT_CROWD_CLICK
=
"goodat_crowd_click"
// 擅长人群埋点
const
val
SEARCH_BANNERWORD_CLICK
=
"$PART_ID_YDL_USER_MAIN_PAGE|search_bannerword_click"
//历史搜索、热门搜索、本周热门专家搜索
}
}
}
}
class
ConsultSearchListEvent
{
class
ConsultSearchListEvent
{
...
...
m-consultant/src/main/java/com/yidianling/consultant/contract/IHotSearchContract.kt
View file @
290aa8e9
package
com.yidianling.consultant.contract
package
com.yidianling.consultant.contract
import
android.content.Context
import
android.content.Context
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.mvp.base.IModel
import
com.ydl.ydlcommon.mvp.base.IModel
import
com.ydl.ydlcommon.mvp.base.IPresenter
import
com.ydl.ydlcommon.mvp.base.IPresenter
import
com.ydl.ydlcommon.mvp.base.IView
import
com.ydl.ydlcommon.mvp.base.IView
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
io.reactivex.Observable
import
io.reactivex.Observable
/**
/**
...
@@ -24,6 +26,11 @@ class IHotSearchContract {
...
@@ -24,6 +26,11 @@ class IHotSearchContract {
fun
searchDataResponse
(
hotSearchBean
:
HotSearchBean
)
fun
searchDataResponse
(
hotSearchBean
:
HotSearchBean
)
/**
/**
* 搜索页请求热门词
*/
fun
searchHotWordData
(
wordList
:
MutableList
<
FunctionWordBean
>)
/**
* 请求失败
* 请求失败
*/
*/
fun
requestFail
()
fun
requestFail
()
...
@@ -31,7 +38,11 @@ class IHotSearchContract {
...
@@ -31,7 +38,11 @@ class IHotSearchContract {
/**
/**
* 联想词请求成功结果
* 联想词请求成功结果
*/
*/
fun
getSearchWordsSuccess
(
searchWordsBean
:
SearchWordsBean
,
searchContent
:
String
,
isClickWords
:
Boolean
)
fun
getSearchWordsSuccess
(
searchWordsBean
:
SearchWordsBean
,
searchContent
:
String
,
isClickWords
:
Boolean
)
}
}
interface
Presenter
:
IPresenter
<
View
>
{
interface
Presenter
:
IPresenter
<
View
>
{
...
@@ -46,9 +57,14 @@ class IHotSearchContract {
...
@@ -46,9 +57,14 @@ class IHotSearchContract {
fun
searchData
()
fun
searchData
()
/**
/**
* 搜索页请求热门词
*/
fun
searchHotWordData
(
map
:
HashMap
<
String
,
Any
>)
/**
* 获取联想词
* 获取联想词
*/
*/
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>,
searchContent
:
String
,
isClickWords
:
Boolean
)
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>,
searchContent
:
String
,
isClickWords
:
Boolean
)
}
}
interface
Model
:
IModel
{
interface
Model
:
IModel
{
...
@@ -60,6 +76,11 @@ class IHotSearchContract {
...
@@ -60,6 +76,11 @@ class IHotSearchContract {
/**
/**
* 获取到联想词
* 获取到联想词
*/
*/
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
SearchWordsBean
>
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
SearchWordsBean
>
/**
* 搜索页请求热门词
*/
fun
searchHotWordData
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
MutableList
<
FunctionWordBean
>>>
}
}
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/http/hotsearch/HotSearchHttpImpl.kt
View file @
290aa8e9
...
@@ -3,10 +3,13 @@ package com.yidianling.consultant.http.hotsearch
...
@@ -3,10 +3,13 @@ package com.yidianling.consultant.http.hotsearch
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlnet.YDLHttpUtils
import
com.ydl.ydlnet.YDLHttpUtils
import
com.yidianling.consultant.bean.FunctionWordConsultBean
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.HotSearchKeyWordDataBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.http.ExpertSearchParam
import
com.yidianling.consultant.http.ExpertSearchParam
import
com.yidianling.consultant.model.SearchApi
import
com.yidianling.consultant.model.SearchApi
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
io.reactivex.Observable
import
io.reactivex.Observable
/**
/**
...
@@ -48,6 +51,10 @@ class HotSearchHttpImpl : IHotSearchHttp {
...
@@ -48,6 +51,10 @@ class HotSearchHttpImpl : IHotSearchHttp {
}
}
}
}
override
fun
searchHotWordData
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
MutableList
<
FunctionWordBean
>>>
{
return
getSearchApi
().
searchFunctionWord
(
map
)
}
override
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
SearchWordsBean
>>
{
override
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
SearchWordsBean
>>
{
return
getSearchApi
().
getSearchWords
(
map
)
return
getSearchApi
().
getSearchWords
(
map
)
}
}
...
...
m-consultant/src/main/java/com/yidianling/consultant/http/hotsearch/IHotSearchHttp.kt
View file @
290aa8e9
...
@@ -3,6 +3,7 @@ package com.yidianling.consultant.http.hotsearch
...
@@ -3,6 +3,7 @@ package com.yidianling.consultant.http.hotsearch
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
io.reactivex.Observable
import
io.reactivex.Observable
/**
/**
...
@@ -12,14 +13,19 @@ import io.reactivex.Observable
...
@@ -12,14 +13,19 @@ import io.reactivex.Observable
* @Company 壹点灵
* @Company 壹点灵
* @date 2018/7/26
* @date 2018/7/26
*/
*/
interface
IHotSearchHttp
{
interface
IHotSearchHttp
{
/**
/**
* 搜索页请求
* 搜索页请求
*/
*/
fun
searchData
():
Observable
<
BaseAPIResponse
<
HotSearchBean
>>
fun
searchData
():
Observable
<
BaseAPIResponse
<
HotSearchBean
>>
/**
/**
* 搜索页请求热门词
*/
fun
searchHotWordData
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
MutableList
<
FunctionWordBean
>>>
/**
* 搜索联想词请求
* 搜索联想词请求
*/
*/
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
SearchWordsBean
>>
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
SearchWordsBean
>>
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/model/HotSearchModelImpl.kt
View file @
290aa8e9
package
com.yidianling.consultant.model
package
com.yidianling.consultant.model
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.contract.IHotSearchContract
import
com.yidianling.consultant.contract.IHotSearchContract
import
com.yidianling.consultant.http.hotsearch.HotSearchDataManager
import
com.yidianling.consultant.http.hotsearch.HotSearchDataManager
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
io.reactivex.Observable
import
io.reactivex.Observable
/**
/**
...
@@ -14,12 +16,16 @@ import io.reactivex.Observable
...
@@ -14,12 +16,16 @@ import io.reactivex.Observable
* @Company 壹点灵
* @Company 壹点灵
* @date 2018/7/26
* @date 2018/7/26
*/
*/
class
HotSearchModelImpl
:
IHotSearchContract
.
Model
{
class
HotSearchModelImpl
:
IHotSearchContract
.
Model
{
override
fun
searchData
():
Observable
<
HotSearchBean
>
{
override
fun
searchData
():
Observable
<
HotSearchBean
>
{
return
HotSearchDataManager
.
getHttp
().
searchData
().
compose
(
RxUtils
.
resultJavaData
())
return
HotSearchDataManager
.
getHttp
().
searchData
().
compose
(
RxUtils
.
resultJavaData
())
}
}
override
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
SearchWordsBean
>
{
override
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
SearchWordsBean
>
{
return
HotSearchDataManager
.
getHttp
().
getSearchWords
(
map
).
compose
(
RxUtils
.
resultJavaData
())
return
HotSearchDataManager
.
getHttp
().
getSearchWords
(
map
).
compose
(
RxUtils
.
resultJavaData
())
}
}
override
fun
searchHotWordData
(
map
:
HashMap
<
String
,
Any
>):
Observable
<
BaseAPIResponse
<
MutableList
<
FunctionWordBean
>>>
{
return
HotSearchDataManager
.
getHttp
().
searchHotWordData
(
map
)
}
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/model/SearchApi.kt
View file @
290aa8e9
...
@@ -6,11 +6,9 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
...
@@ -6,11 +6,9 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
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.ydlnet.YDLHttpUtils
import
com.ydl.ydlnet.YDLHttpUtils
import
com.yidianling.consultant.bean.ExpertSearchTopShowBean
import
com.yidianling.consultant.bean.*
import
com.yidianling.consultant.bean.GuideBean
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.SearchWordsBean
import
com.yidianling.consultant.model.bean.ExpertBean
import
com.yidianling.consultant.model.bean.ExpertBean
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
com.yidianling.consultant.model.bean.HeadData
import
com.yidianling.consultant.model.bean.HeadData
import
io.reactivex.Observable
import
io.reactivex.Observable
import
retrofit2.http.*
import
retrofit2.http.*
...
@@ -43,13 +41,24 @@ interface SearchApi {
...
@@ -43,13 +41,24 @@ interface SearchApi {
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
fun
searchConditions
(
@Query
(
"cateSource"
)
cateSource
:
Int
):
Observable
<
BaseAPIResponse
<
HeadData
>>
fun
searchConditions
(
@Query
(
"cateSource"
)
cateSource
:
Int
):
Observable
<
BaseAPIResponse
<
HeadData
>>
//查询功能词、底纹词
//(1热门词,2底纹词,3跳转词)
@POST
(
"function/word/queryList"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
fun
searchFunctionWord
(
@Body
map
:
Map
<
String
,
@JvmSuppressWildcards
Any
>):
Observable
<
BaseAPIResponse
<
MutableList
<
FunctionWordBean
>>>
//查询功能词、底纹词
//(1热门词,2底纹词,3跳转词)
@POST
(
"function/word/queryList"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
)
fun
searchFunctionWordApi
(
@Body
map
:
Map
<
String
,
@JvmSuppressWildcards
Any
>):
Observable
<
BaseAPIResponse
<
MutableList
<
FunctionWordConsultBean
>>>
/**
/**
* 新咨询师列表接口(包含搜索、筛选咨询师)
* 新咨询师列表接口(包含搜索、筛选咨询师)
*/
*/
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
,
"X-App-Id: plough_cloud"
)
@Headers
(
YDL_DOMAIN
+
YDL_DOMAIN_JAVA
,
"X-App-Id: plough_cloud"
)
@POST
(
"smart-rank/v1/search"
)
@POST
(
"smart-rank/v1/search"
)
fun
getExpertList
(
@Body
map
:
Map
<
String
,
@JvmSuppressWildcards
Any
>):
Observable
<
BaseAPIResponse
<
ExpertBean
>>
fun
getExpertList
(
@Body
map
:
Map
<
String
,
@JvmSuppressWildcards
Any
>):
Observable
<
BaseAPIResponse
<
ExpertBean
>>
/**
/**
* 获取搜索联想词
* 获取搜索联想词
...
...
m-consultant/src/main/java/com/yidianling/consultant/model/bean/FunctionWordBean.kt
0 → 100644
View file @
290aa8e9
package
com.yidianling.consultant.model.bean
data class
FunctionWordBean
(
var
id
:
Long
?,
var
word
:
String
?,
var
type
:
Int
?,
var
jumpUrl
:
String
?
)
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/modular/ConsultantServiceImp.kt
View file @
290aa8e9
...
@@ -9,14 +9,17 @@ import android.text.TextUtils
...
@@ -9,14 +9,17 @@ import android.text.TextUtils
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.alibaba.android.arouter.facade.annotation.Route
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.base.BaseApp
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlcommon.utils.SharedPreferencesEditor
import
com.ydl.ydlcommon.utils.SharedPreferencesEditor
import
com.y
idianling.common.tools.LogUtil
import
com.y
dl.ydlcommon.utils.remind.HttpErrorUtils
import
com.yidianling.consultant.ExpertSearchActivity
import
com.yidianling.consultant.ExpertSearchActivity
import
com.yidianling.consultant.ExpertSearchFragment
import
com.yidianling.consultant.ExpertSearchFragment
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.bean.GuideBean
import
com.yidianling.consultant.bean.GuideBean
import
com.yidianling.consultant.bean.Keyworks
import
com.yidianling.consultant.bean.Keyworks
import
com.yidianling.consultant.data.ConsultantDataManager
import
com.yidianling.consultant.data.ConsultantDataManager
import
com.yidianling.consultant.OnBottomWordListener
import
com.yidianling.consultant.model.SearchApi
import
com.yidianling.consultant.model.SearchApi
import
com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
import
com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
import
com.yidianling.consultant.modular.utils.ConsultAssistantEntryUtils
import
com.yidianling.consultant.modular.utils.ConsultAssistantEntryUtils
...
@@ -118,14 +121,34 @@ class ConsultantServiceImp : IConsultantService {
...
@@ -118,14 +121,34 @@ class ConsultantServiceImp : IConsultantService {
ConsultAssistantEntryUtils
.
jumpConsultAssistant
(
activity
,
location
,
null
)
ConsultAssistantEntryUtils
.
jumpConsultAssistant
(
activity
,
location
,
null
)
}
}
override
fun
dueToTypeJumpAutoOrGuide
(
activity
:
Activity
,
location
:
Int
,
doctorId
:
Int
,
url
:
String
)
{
override
fun
dueToTypeJumpAutoOrGuide
(
ConsultAssistantEntryUtils
.
getTypeJump
(
activity
,
location
,
doctorId
,
url
)
activity
:
Activity
,
location
:
Int
,
doctorId
:
Int
,
url
:
String
)
{
ConsultAssistantEntryUtils
.
getTypeJump
(
activity
,
location
,
doctorId
,
url
)
}
}
override
fun
showConfideListDialog
(
activity
:
Activity
)
{
override
fun
showConfideListDialog
(
activity
:
Activity
)
{
ConsultAssistantDialogUtils
.
INSTANCE
.
showFromConfideListHome
(
activity
)
ConsultAssistantDialogUtils
.
INSTANCE
.
showFromConfideListHome
(
activity
)
}
}
@SuppressLint
(
"CheckResult"
)
override
fun
getbottomWord
(
type
:
Int
,
listener
:
OnBottomWordListener
)
{
val
map
=
hashMapOf
(
"type"
to
type
)
SearchApi
.
getSearchApi
()
.
searchFunctionWordApi
(
map
)
.
compose
(
RxUtils
.
resultJavaData
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
resp
->
listener
.
onBottomWord
(
resp
)
},
{
t
->
HttpErrorUtils
.
handleError
(
BaseApp
.
getApp
(),
t
)
})
}
override
fun
resetConsultAssistantDialogStatus
()
{
override
fun
resetConsultAssistantDialogStatus
()
{
ConsultAssistantDialogUtils
.
INSTANCE
.
resetStatus
()
ConsultAssistantDialogUtils
.
INSTANCE
.
resetStatus
()
}
}
...
...
m-consultant/src/main/java/com/yidianling/consultant/presenter/HotSearchPresenterImpl.kt
View file @
290aa8e9
...
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
...
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import
android.content.Context
import
android.content.Context
import
android.text.TextUtils
import
android.text.TextUtils
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.mvp.base.BasePresenter
import
com.ydl.ydlcommon.mvp.base.BasePresenter
import
com.ydl.ydlcommon.utils.RxLifecycleUtils
import
com.ydl.ydlcommon.utils.RxLifecycleUtils
...
@@ -13,6 +14,8 @@ import com.yidianling.common.tools.ToastUtil
...
@@ -13,6 +14,8 @@ import com.yidianling.common.tools.ToastUtil
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.bean.HotSearchBean
import
com.yidianling.consultant.contract.IHotSearchContract
import
com.yidianling.consultant.contract.IHotSearchContract
import
com.yidianling.consultant.model.HotSearchModelImpl
import
com.yidianling.consultant.model.HotSearchModelImpl
import
com.yidianling.consultant.model.bean.FunctionWordBean
import
io.reactivex.Observable
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
...
@@ -77,14 +80,32 @@ class HotSearchPresenterImpl : BasePresenter<IHotSearchContract.View, IHotSearch
...
@@ -77,14 +80,32 @@ class HotSearchPresenterImpl : BasePresenter<IHotSearchContract.View, IHotSearch
}
}
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
override
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>,
searchContent
:
String
,
isClickWords
:
Boolean
)
{
override
fun
searchHotWordData
(
map
:
HashMap
<
String
,
Any
>)
{
mModel
.
searchHotWordData
(
map
).
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mView
!!
))
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
Consumer
{
mView
.
searchHotWordData
(
it
.
data
)
},
object
:
ThrowableConsumer
()
{
override
fun
accept
(
msg
:
String
)
{
mView
.
requestFail
()
}
})
}
@SuppressLint
(
"CheckResult"
)
override
fun
getSearchWords
(
map
:
HashMap
<
String
,
Any
>,
searchContent
:
String
,
isClickWords
:
Boolean
)
{
mModel
.
getSearchWords
(
map
)
mModel
.
getSearchWords
(
map
)
// .debounce(500L, TimeUnit.MILLISECONDS)
// .debounce(500L, TimeUnit.MILLISECONDS)
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mView
))
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mView
))
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
Consumer
{
.
subscribe
(
Consumer
{
mView
.
getSearchWordsSuccess
(
it
,
searchContent
,
isClickWords
)
mView
.
getSearchWordsSuccess
(
it
,
searchContent
,
isClickWords
)
},
object
:
ThrowableConsumer
()
{
},
object
:
ThrowableConsumer
()
{
override
fun
accept
(
msg
:
String
)
{
override
fun
accept
(
msg
:
String
)
{
ToastUtil
.
toastShort
(
msg
)
ToastUtil
.
toastShort
(
msg
)
...
...
m-home/src/xlzx/java/com/yidianling/home/ui/fragment/YdlHomeFragment.kt
View file @
290aa8e9
...
@@ -22,7 +22,9 @@ import com.ydl.ydlcommon.utils.StatusBarUtils
...
@@ -22,7 +22,9 @@ import com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.Utils
import
com.ydl.ydlcommon.utils.Utils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.ydl.ydlcommon.utils.remind.ToastHelper
import
com.yidianling.consultant.OnBottomWordListener
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.bean.FunctionWordConsultBean
import
com.yidianling.home.R
import
com.yidianling.home.R
import
com.yidianling.home.adapter.YdlHomeAdapter
import
com.yidianling.home.adapter.YdlHomeAdapter
import
com.yidianling.home.constants.HomeBIConstants
import
com.yidianling.home.constants.HomeBIConstants
...
@@ -37,9 +39,14 @@ import com.yidianling.home.presenter.HomePresenterImpl
...
@@ -37,9 +39,14 @@ import com.yidianling.home.presenter.HomePresenterImpl
import
com.yidianling.home.ui.view.CouponDialog
import
com.yidianling.home.ui.view.CouponDialog
import
com.yidianling.im.api.service.IImService
import
com.yidianling.im.api.service.IImService
import
com.yidianling.user.api.service.IUserService
import
com.yidianling.user.api.service.IUserService
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.disposables.Disposable
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.xlzx.home_fragment_home_module.*
import
kotlinx.android.synthetic.xlzx.home_fragment_home_module.*
import
kotlinx.android.synthetic.xlzx.home_layout_home_module_content.*
import
kotlinx.android.synthetic.xlzx.home_layout_home_module_content.*
import
kotlinx.android.synthetic.xlzx.home_layout_home_module_input.*
import
kotlinx.android.synthetic.xlzx.home_layout_home_module_input.*
import
java.util.concurrent.TimeUnit
import
kotlin.properties.Delegates
import
kotlin.properties.Delegates
...
@@ -86,6 +93,8 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
...
@@ -86,6 +93,8 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
private
var
isFromCreate
:
Boolean
=
true
private
var
isFromCreate
:
Boolean
=
true
var
startTime
=
System
.
currentTimeMillis
()
var
startTime
=
System
.
currentTimeMillis
()
var
endTime
by
Delegates
.
notNull
<
Long
>()
var
endTime
by
Delegates
.
notNull
<
Long
>()
private
lateinit
var
bottomWordlist
:
MutableList
<
FunctionWordConsultBean
>
var
bottomWordDisposable
:
Disposable
?
=
null
override
fun
layoutResId
():
Int
{
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
home_fragment_home_module
return
R
.
layout
.
home_fragment_home_module
}
}
...
@@ -100,6 +109,7 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
...
@@ -100,6 +109,7 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
homeEvent
=
HomeImpl
(
mActivity
!!
,
this
)
homeEvent
=
HomeImpl
(
mActivity
!!
,
this
)
initView
()
initView
()
initAdapter
()
initAdapter
()
getBottomWord
()
}
}
private
fun
initAdapter
()
{
private
fun
initAdapter
()
{
...
@@ -126,7 +136,7 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
...
@@ -126,7 +136,7 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
)
)
home_swipe_refresh_layout
.
setProgressViewOffset
(
false
,
0
,
200
)
home_swipe_refresh_layout
.
setProgressViewOffset
(
false
,
0
,
200
)
home_swipe_refresh_layout
.
isEnabled
=
true
home_swipe_refresh_layout
.
isEnabled
=
true
etSearch
.
setOnClickListener
{
homeEvent
?.
searchTvClick
(
""
)
}
etSearch
.
setOnClickListener
{
homeEvent
?.
searchTvClick
(
etSearch
.
hint
.
toString
()
)
}
home_page_xiaoyi
.
setOnClickListener
{
home_page_xiaoyi
.
setOnClickListener
{
activity
?.
let
{
activity
?.
let
{
...
@@ -377,4 +387,33 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
...
@@ -377,4 +387,33 @@ class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterImpl>()
showConsultAssistantDialog
()
showConsultAssistantDialog
()
}
}
}
}
private
fun
getBottomWord
()
{
ModularServiceManager
.
provide
(
IConsultantService
::
class
.
java
)
.
getbottomWord
(
2
,
object
:
OnBottomWordListener
{
override
fun
onBottomWord
(
wordList
:
MutableList
<
FunctionWordConsultBean
>)
{
bottomWordlist
=
wordList
if
(
bottomWordlist
.
isNullOrEmpty
())
return
if
(
bottomWordlist
.
size
==
1
)
{
etSearch
.
hint
=
bottomWordlist
[
0
].
word
}
else
{
if
(
bottomWordDisposable
!=
null
)
{
bottomWordDisposable
?.
dispose
()
}
else
{
bottomWordDisposable
=
Observable
.
interval
(
0
,
3
,
TimeUnit
.
SECONDS
)
.
subscribeOn
(
Schedulers
.
computation
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
etSearch
.
hint
=
bottomWordlist
[(
it
%
bottomWordlist
.
size
).
toInt
()].
word
},
{
},
{
})
}
}
}
})
}
}
}
\ No newline at end of file
m-home/src/ydl/java/com/yidianling/home/ui/fragment/YdlHomeFragment.kt
View file @
290aa8e9
...
@@ -26,7 +26,9 @@ import com.ydl.ydlcommon.base.BaseMvpFragment
...
@@ -26,7 +26,9 @@ import com.ydl.ydlcommon.base.BaseMvpFragment
import
com.ydl.ydlcommon.modular.ModularServiceManager
import
com.ydl.ydlcommon.modular.ModularServiceManager
import
com.ydl.ydlcommon.utils.*
import
com.ydl.ydlcommon.utils.*
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.yidianling.consultant.OnBottomWordListener
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.api.IConsultantService
import
com.yidianling.consultant.bean.FunctionWordConsultBean
import
com.yidianling.home.R
import
com.yidianling.home.R
import
com.yidianling.home.adapter.YdlHomeAdapter
import
com.yidianling.home.adapter.YdlHomeAdapter
import
com.yidianling.home.constants.HomeBIConstants
import
com.yidianling.home.constants.HomeBIConstants
...
@@ -42,10 +44,15 @@ import com.yidianling.home.ui.view.CouponDialog
...
@@ -42,10 +44,15 @@ import com.yidianling.home.ui.view.CouponDialog
import
com.yidianling.home.ui.view.HomeSpaceItemDecoration
import
com.yidianling.home.ui.view.HomeSpaceItemDecoration
import
com.yidianling.home.utils.HomeAnimUtils
import
com.yidianling.home.utils.HomeAnimUtils
import
com.yidianling.user.api.service.IUserService
import
com.yidianling.user.api.service.IUserService
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.disposables.Disposable
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.ydl.home_fragment.*
import
kotlinx.android.synthetic.ydl.home_fragment.*
import
kotlinx.android.synthetic.ydl.home_fragment.tab_layout
import
kotlinx.android.synthetic.ydl.home_fragment.tab_layout
import
kotlinx.android.synthetic.ydl.home_muse_view.*
import
kotlinx.android.synthetic.ydl.home_muse_view.*
import
kotlinx.android.synthetic.ydl.home_muse_view.view.*
import
kotlinx.android.synthetic.ydl.home_muse_view.view.*
import
java.util.concurrent.TimeUnit
import
kotlin.properties.Delegates
import
kotlin.properties.Delegates
...
@@ -99,13 +106,15 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
...
@@ -99,13 +106,15 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
open
var
searchText
:
String
=
""
open
var
searchText
:
String
=
""
open
var
doctorName
:
String
=
""
open
var
doctorName
:
String
=
""
var
startTime
=
0L
var
startTime
=
0L
var
endTime
=
0L
var
endTime
=
0L
/**
/**
* 如果是第一次加载,则调用所有接口进行刷新,否则,只调用咨询和倾诉接口
* 如果是第一次加载,则调用所有接口进行刷新,否则,只调用咨询和倾诉接口
*/
*/
private
var
isFromCreate
:
Boolean
=
true
private
var
isFromCreate
:
Boolean
=
true
private
lateinit
var
bottomWordlist
:
MutableList
<
FunctionWordConsultBean
>
var
bottomWordDisposable
:
Disposable
?
=
null
override
fun
layoutResId
():
Int
{
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
home_fragment
return
R
.
layout
.
home_fragment
...
@@ -122,6 +131,7 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
...
@@ -122,6 +131,7 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
open
fun
initHomeEvent
()
{
open
fun
initHomeEvent
()
{
homeEvent
=
HomeImpl
(
mActivity
,
this
)
homeEvent
=
HomeImpl
(
mActivity
,
this
)
getBottomWord
()
}
}
private
fun
initAdapter
()
{
private
fun
initAdapter
()
{
...
@@ -173,17 +183,17 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
...
@@ -173,17 +183,17 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
}
}
open
fun
initSearchBar
()
{
open
fun
initSearchBar
()
{
if
(!
TextUtils
.
isEmpty
(
doctorName
))
{
//
if (!TextUtils.isEmpty(doctorName)) {
searchText
=
doctorName
//
searchText = doctorName
}
//
}
home_tv
.
setOnClickListener
{
home_tv
.
setOnClickListener
{
homeEvent
?.
searchTvClick
(
searchText
)
homeEvent
?.
searchTvClick
(
home_tv
.
text
.
toString
()
)
}
}
iv_search_icon
.
setOnClickListener
{
iv_search_icon
.
setOnClickListener
{
homeEvent
?.
searchTvClick
(
searchText
)
homeEvent
?.
searchTvClick
(
searchText
)
}
}
home_tv
.
text
=
searchText
//
home_tv.text = searchText
}
}
/**
/**
...
@@ -228,25 +238,11 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
...
@@ -228,25 +238,11 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
}
}
override
fun
startAnim
()
{
override
fun
startAnim
()
{
HomeAnimUtils
.
startAnim
(
mContext
,
rl_top
,
rl_search
,
home_service_call
,
home_tv
)
HomeAnimUtils
.
startSearchShow
(
ll_top_function
,
view_search_input_bg
,
home_tv
,
iv_search_icon
,
img_ad
)
}
}
override
fun
endAnim
()
{
override
fun
endAnim
()
{
HomeAnimUtils
.
endAnim
(
mContext
,
rl_top
,
rl_search
,
home_tv
,
home_service_call
,
this
)
HomeAnimUtils
.
startSearchHide
(
ll_top_function
,
view_search_input_bg
,
home_tv
,
iv_search_icon
,
img_ad
)
}
}
override
fun
getSearchContent
():
String
{
override
fun
getSearchContent
():
String
{
...
@@ -515,6 +511,35 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
...
@@ -515,6 +511,35 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
.
showConsultAssistantDialog
(
mActivity
)
.
showConsultAssistantDialog
(
mActivity
)
}
}
private
fun
getBottomWord
()
{
ModularServiceManager
.
provide
(
IConsultantService
::
class
.
java
)
.
getbottomWord
(
2
,
object
:
OnBottomWordListener
{
override
fun
onBottomWord
(
wordList
:
MutableList
<
FunctionWordConsultBean
>)
{
bottomWordlist
=
wordList
if
(
bottomWordlist
.
isNullOrEmpty
())
return
if
(
bottomWordlist
.
size
==
1
)
{
home_tv
.
text
=
bottomWordlist
[
0
].
word
}
else
{
if
(
bottomWordDisposable
!=
null
)
{
bottomWordDisposable
?.
dispose
()
}
else
{
bottomWordDisposable
=
Observable
.
interval
(
0
,
3
,
TimeUnit
.
SECONDS
)
.
subscribeOn
(
Schedulers
.
computation
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
home_tv
.
text
=
bottomWordlist
[(
it
%
bottomWordlist
.
size
).
toInt
()].
word
},
{
},
{
})
}
}
}
})
}
private
fun
hideConsultAssistantDialog
()
{
private
fun
hideConsultAssistantDialog
()
{
ModularServiceManager
.
provide
(
IConsultantService
::
class
.
java
).
hideConsultAssistantDialog
()
ModularServiceManager
.
provide
(
IConsultantService
::
class
.
java
).
hideConsultAssistantDialog
()
}
}
...
@@ -662,5 +687,6 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
...
@@ -662,5 +687,6 @@ open class YdlHomeFragment : BaseMvpFragment<IHomeContract.View, HomePresenterIm
override
fun
onDestroyView
()
{
override
fun
onDestroyView
()
{
super
.
onDestroyView
()
super
.
onDestroyView
()
HomeAnimUtils
.
clear
()
HomeAnimUtils
.
clear
()
bottomWordDisposable
?.
dispose
()
}
}
}
}
\ No newline at end of file
m-im/src/main/AndroidManifest.xml
View file @
290aa8e9
...
@@ -91,17 +91,6 @@
...
@@ -91,17 +91,6 @@
android:permission=
"android.permission.BIND_JOB_SERVICE"
android:permission=
"android.permission.BIND_JOB_SERVICE"
android:process=
":core"
/>
android:process=
":core"
/>
<!-- 云信SDK的监视系统启动和网络变化的广播接收器,用户开机自启动以及网络变化时候重新登录 -->
<receiver
android:name=
"com.netease.nimlib.service.NimReceiver"
android:exported=
"false"
android:process=
":core"
>
<intent-filter>
<action
android:name=
"android.intent.action.BOOT_COMPLETED"
/>
<action
android:name=
"android.net.conn.CONNECTIVITY_CHANGE"
/>
</intent-filter>
</receiver>
<!-- 云信进程间通信receiver -->
<!-- 云信进程间通信receiver -->
<receiver
android:name=
"com.netease.nimlib.service.ResponseReceiver"
/>
<receiver
android:name=
"com.netease.nimlib.service.ResponseReceiver"
/>
...
...
m-user/build.gradle
View file @
290aa8e9
...
@@ -35,7 +35,9 @@ android {
...
@@ -35,7 +35,9 @@ android {
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
}
}
}
dataBinding
{
enabled
true
}
compileOptions
{
compileOptions
{
sourceCompatibility
JavaVersion
.
VERSION_1_8
sourceCompatibility
JavaVersion
.
VERSION_1_8
targetCompatibility
JavaVersion
.
VERSION_1_8
targetCompatibility
JavaVersion
.
VERSION_1_8
...
...
m-user/src/main/AndroidManifest.xml
View file @
290aa8e9
...
@@ -157,10 +157,10 @@
...
@@ -157,10 +157,10 @@
android:name=
".mine.EditAccountActivity"
android:name=
".mine.EditAccountActivity"
android:screenOrientation=
"portrait"
android:screenOrientation=
"portrait"
android:theme=
"@style/platform_NoTitleTheme"
/>
android:theme=
"@style/platform_NoTitleTheme"
/>
<!--添加提现账号-->
<activity
<activity
android:name=
".mine.AddAccountActivity"
android:name=
".mine.AddAccountActivity"
android:screenOrientation=
"portrait"
android:screenOrientation=
"portrait"
/>
android:theme=
"@style/platform_NoTitleTheme"
/>
<activity
<activity
android:name=
".mine.RechargeResultActivity"
android:name=
".mine.RechargeResultActivity"
android:screenOrientation=
"portrait"
android:screenOrientation=
"portrait"
...
...
m-user/src/main/java/com/yidianling/user/mine/AddAccountActivity.kt
View file @
290aa8e9
package
com.yidianling.user.mine
package
com.yidianling.user.mine
import
android.annotation.SuppressLint
import
android.app.Activity
import
android.app.Activity
import
android.content.Intent
import
android.content.Intent
import
android
x.fragment.app.Fragment
import
android
.os.Bundle
import
android
x.viewpager.widget.ViewPager
import
android
.text.TextUtils
import
android
.view.View
import
android
x.appcompat.app.AppCompatActivity
import
com.ydl.ydlcommon.adapter.FragmentWithTabPagerAdapter
import
androidx.databinding.DataBindingUtil
import
com.ydl.ydlcommon.
base.BaseActivity
import
com.ydl.ydlcommon.
data.http.RxUtils
import
com.ydl.ydlcommon.
bean.StatusBarOptions
import
com.ydl.ydlcommon.
data.http.ThrowableConsumer
import
com.y
dl.ydlcommon.view.widgets.TopTabSelectLayout
import
com.y
idianling.common.tools.ToastUtil
import
com.yidianling.user.R
import
com.yidianling.user.R
import
com.yidianling.user.mine.fragment.AddAliAccountFragment
import
com.yidianling.user.databinding.UserMineActivityAddAccountBinding
import
com.yidianling.user.mine.fragment.AddBankAccountFragment
import
com.yidianling.user.mine.bean.AddAccountCmd
import
com.yidianling.user.mine.data.AppDataManager
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
import
kotlinx.android.synthetic.main.user_mine_activity_add_account.*
import
kotlinx.android.synthetic.main.user_mine_activity_add_account.*
/**
/**
* 添加提现帐号
* @author liupeng
*/
* 添加提现账号
class
AddAccountActivity
:
BaseActivity
()
{
* */
class
AddAccountActivity
:
AppCompatActivity
()
{
private
lateinit
var
binding
:
UserMineActivityAddAccountBinding
companion
object
{
companion
object
{
fun
startForResult
(
activity
:
Activity
,
request
:
Int
)
{
fun
startForResult
(
activity
:
Activity
,
request
:
Int
)
{
...
@@ -26,46 +33,47 @@ class AddAccountActivity : BaseActivity() {
...
@@ -26,46 +33,47 @@ class AddAccountActivity : BaseActivity() {
}
}
}
}
override
fun
getStatusViewOptions
():
StatusBarOptions
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
return
StatusBarOptions
(
true
,
true
)
super
.
onCreate
(
savedInstanceState
)
binding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
user_mine_activity_add_account
)
btn_ensure
.
setOnClickListener
{
saveAccount
()
}
}
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
user_mine_activity_add_account
}
override
fun
initDataAndEvent
()
{
var
titles
=
mutableListOf
<
String
>()
titles
.
add
(
"支付宝"
)
titles
.
add
(
"银行卡"
)
var
fragments
=
mutableListOf
<
Fragment
>()
fragments
.
add
(
AddAliAccountFragment
())
fragments
.
add
(
AddBankAccountFragment
())
var
adapter
=
FragmentWithTabPagerAdapter
(
supportFragmentManager
,
titles
,
fragments
)
top_layout
.
setButtonTitle
(
"支付宝"
,
"银行卡"
)
top_layout
.
setSelectIndex
(
0
)
top_layout
.
setLineViewVisible
(
View
.
GONE
)
top_layout
.
setOnSelectTabClickListener
(
object
:
TopTabSelectLayout
.
OnSelectTabClickListener
{
override
fun
selectTabClickListener
(
index
:
Int
)
{
viewpager
.
currentItem
=
index
}
}
override
fun
onReturnClickListener
()
{
/**
* 保存支付宝帐号
*/
@SuppressLint
(
"CheckResult"
)
private
fun
saveAccount
()
{
var
account
=
et_account
.
text
.
trim
().
toString
()
if
(
TextUtils
.
isEmpty
(
account
))
{
ToastUtil
.
toastShort
(
"支付宝帐号不能为空"
)
return
}
}
})
var
name
=
et_name
.
text
.
trim
().
toString
()
viewpager
.
currentItem
=
0
if
(
TextUtils
.
isEmpty
(
name
))
{
viewpager
.
adapter
=
adapter
ToastUtil
.
toastShort
(
"姓名不能为空"
)
viewpager
.
addOnPageChangeListener
(
object
:
ViewPager
.
OnPageChangeListener
{
return
override
fun
onPageScrolled
(
position
:
Int
,
positionOffset
:
Float
,
positionOffsetPixels
:
Int
)
{
}
}
override
fun
onPageSelected
(
position
:
Int
)
{
var
param
=
AddAccountCmd
(
name
,
account
,
"1"
)
top_layout
.
setSelectIndex
(
position
)
AppDataManager
.
getHttp
().
addAccount
(
param
)
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
Consumer
{
bean
->
if
(
bean
==
null
)
{
ToastUtil
.
toastShort
(
"返回数据错误"
)
}
else
{
ToastUtil
.
toastShort
(
"添加帐号成功"
)
var
intent
=
Intent
()
intent
.
putExtra
(
ChooseAccountActivity
.
ADD_ACCOUNT_REQUEST_KEY
,
bean
)
setResult
(
Activity
.
RESULT_OK
,
intent
)
finish
()
}
}
},
object
:
ThrowableConsumer
()
{
override
fun
onPageScrollStateChanged
(
state
:
Int
)
{
override
fun
accept
(
msg
:
String
)
{
ToastUtil
.
toastShort
(
msg
)
}
}
})
})
}
}
...
...
m-user/src/main/java/com/yidianling/user/mine/ChooseAccountActivity.kt
View file @
290aa8e9
...
@@ -138,18 +138,25 @@ class ChooseAccountActivity : BaseActivity() {
...
@@ -138,18 +138,25 @@ class ChooseAccountActivity : BaseActivity() {
TransferCacheUtils
.
removeTransferData
(
INTENT_DATA
)
TransferCacheUtils
.
removeTransferData
(
INTENT_DATA
)
}
}
if
(
requestCode
==
ADD_ACCOUNT_REQUEST_CODE
)
{
//添加帐号页面返回
try
{
//添加帐号页面返回
val
bean
:
AccountBean
=
TransferCacheUtils
.
getTransferData
(
ADD_ACCOUNT_REQUEST_CODE
)
as
AccountBean
val
bean
=
data
?.
getParcelableExtra
<
AccountBean
>(
ADD_ACCOUNT_REQUEST_KEY
)
dataLists
!!
.
add
(
1
,
bean
)
bean
?.
let
{
adapter
!!
.
notifyDataSetChanged
()
dataLists
?.
add
(
1
,
bean
)
adapter
?.
notifyDataSetChanged
()
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
}
}
}
companion
object
{
companion
object
{
const
val
INTENT_LIST
=
"intent_list"
const
val
INTENT_LIST
=
"intent_list"
const
val
INTENT_DATA
=
"intent_data"
const
val
INTENT_DATA
=
"intent_data"
const
val
INTENT_DATA_REQUEST_CODE
=
1024
const
val
INTENT_DATA_REQUEST_CODE
=
1024
//添加帐号
const
val
ADD_ACCOUNT_REQUEST_CODE
=
1025
const
val
ADD_ACCOUNT_REQUEST_CODE
=
1025
const
val
ADD_ACCOUNT_REQUEST_KEY
=
"add_key"
fun
startForResult
(
activity
:
Activity
,
list
:
MutableList
<
AccountBean
>,
code
:
Int
)
{
fun
startForResult
(
activity
:
Activity
,
list
:
MutableList
<
AccountBean
>,
code
:
Int
)
{
val
intent
=
Intent
(
activity
,
ChooseAccountActivity
::
class
.
java
)
val
intent
=
Intent
(
activity
,
ChooseAccountActivity
::
class
.
java
)
TransferCacheUtils
.
putTransferData
(
INTENT_LIST
,
list
)
TransferCacheUtils
.
putTransferData
(
INTENT_LIST
,
list
)
...
...
m-user/src/main/java/com/yidianling/user/mine/bean/AccountBean.kt
View file @
290aa8e9
package
com.yidianling.user.mine.bean
package
com.yidianling.user.mine.bean
import
android.os.Parcel
import
android.os.Parcelable
/**
/**
* Created by jiucheng on 2018/7/13.
* Created by jiucheng on 2018/7/13.
* 功能:
* 功能:
*/
*/
class
AccountBean
{
class
AccountBean
()
:
Parcelable
{
var
id
:
String
?
=
null
//id
var
id
:
String
?
=
null
//id
var
uid
:
String
?
=
null
//id
var
uid
:
String
?
=
null
//id
var
type
:
Int
?
=
-
1
//1,//账号类型:1、支付宝;2、微信;3、银行卡
var
type
:
Int
?
=
-
1
//1,//账号类型:1、支付宝;2、微信;3、银行卡
...
@@ -17,4 +20,48 @@ class AccountBean {
...
@@ -17,4 +20,48 @@ class AccountBean {
var
remark
:
String
?
=
null
//工作日9-18点,到账时间:2小时内;休息日顺延至下一个工作日
var
remark
:
String
?
=
null
//工作日9-18点,到账时间:2小时内;休息日顺延至下一个工作日
var
isDefault
:
Int
=
-
1
//默认账户 1默认2非默认
var
isDefault
:
Int
=
-
1
//默认账户 1默认2非默认
var
status
:
Int
=
-
1
//1' => "未审核", '2' => "审核中",'3' => "审核成功",'4' => "审核失败"5、
var
status
:
Int
=
-
1
//1' => "未审核", '2' => "审核中",'3' => "审核成功",'4' => "审核失败"5、
constructor
(
parcel
:
Parcel
)
:
this
()
{
id
=
parcel
.
readString
()
uid
=
parcel
.
readString
()
type
=
parcel
.
readValue
(
Int
::
class
.
java
.
classLoader
)
as
?
Int
cashName
=
parcel
.
readString
()
bankRealName
=
parcel
.
readString
()
bankName
=
parcel
.
readString
()
bankAddress
=
parcel
.
readString
()
account
=
parcel
.
readString
()
bankIcon
=
parcel
.
readString
()
remark
=
parcel
.
readString
()
isDefault
=
parcel
.
readInt
()
status
=
parcel
.
readInt
()
}
override
fun
writeToParcel
(
parcel
:
Parcel
,
flags
:
Int
)
{
parcel
.
writeString
(
id
)
parcel
.
writeString
(
uid
)
parcel
.
writeValue
(
type
)
parcel
.
writeString
(
cashName
)
parcel
.
writeString
(
bankRealName
)
parcel
.
writeString
(
bankName
)
parcel
.
writeString
(
bankAddress
)
parcel
.
writeString
(
account
)
parcel
.
writeString
(
bankIcon
)
parcel
.
writeString
(
remark
)
parcel
.
writeInt
(
isDefault
)
parcel
.
writeInt
(
status
)
}
override
fun
describeContents
():
Int
{
return
0
}
companion
object
CREATOR
:
Parcelable
.
Creator
<
AccountBean
>
{
override
fun
createFromParcel
(
parcel
:
Parcel
):
AccountBean
{
return
AccountBean
(
parcel
)
}
override
fun
newArray
(
size
:
Int
):
Array
<
AccountBean
?>
{
return
arrayOfNulls
(
size
)
}
}
}
}
\ No newline at end of file
m-user/src/main/java/com/yidianling/user/mine/fragment/AddAliAccountFragment.kt
deleted
100644 → 0
View file @
1deb8fdc
package
com.yidianling.user.mine.fragment
import
android.annotation.SuppressLint
import
android.app.Activity
import
android.content.Intent
import
android.text.TextUtils
import
com.yidianling.user.mine.ChooseAccountActivity
import
com.ydl.ydlcommon.base.BaseFragment
import
com.ydl.ydlcommon.data.http.RxUtils
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
import
com.ydl.ydlcommon.utils.TransferCacheUtils
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.user.R
import
com.yidianling.user.mine.bean.AddAccountCmd
import
com.yidianling.user.mine.data.AppDataManager
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.functions.Consumer
import
kotlinx.android.synthetic.main.user_mine_fragment_add_ali_account.*
/**
* 添加支付宝帐号
*/
class
AddAliAccountFragment
:
BaseFragment
()
{
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
user_mine_fragment_add_ali_account
}
override
fun
initDataAndEvent
()
{
btn_ensure
.
setOnClickListener
{
saveAccount
()
}
}
/**
* 保存支付宝帐号
*/
@SuppressLint
(
"CheckResult"
)
private
fun
saveAccount
()
{
var
account
=
et_account
.
text
.
trim
().
toString
()
if
(
TextUtils
.
isEmpty
(
account
))
{
ToastUtil
.
toastShort
(
"支付宝帐号不能为空"
)
return
}
var
name
=
et_name
.
text
.
trim
().
toString
()
if
(
TextUtils
.
isEmpty
(
name
))
{
ToastUtil
.
toastShort
(
"姓名不能为空"
)
return
}
var
param
=
AddAccountCmd
(
name
,
account
,
"1"
)
// showProgressDialog("")
AppDataManager
.
getHttp
().
addAccount
(
param
)
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
Consumer
{
// dismissProgressDialog()
if
(
it
==
null
)
{
ToastUtil
.
toastShort
(
"返回数据错误"
)
}
else
{
ToastUtil
.
toastShort
(
"添加帐号成功"
)
var
intent
=
Intent
()
TransferCacheUtils
.
putTransferData
(
ChooseAccountActivity
.
ADD_ACCOUNT_REQUEST_CODE
,
it
)
activity
!!
.
setResult
(
Activity
.
RESULT_OK
,
intent
)
activity
!!
.
finish
()
}
},
object
:
ThrowableConsumer
()
{
override
fun
accept
(
msg
:
String
)
{
// dismissProgressDialog()
ToastUtil
.
toastShort
(
msg
)
}
})
}
override
fun
initDataAndEventLazy
()
{
}
}
m-user/src/main/java/com/yidianling/user/mine/fragment/AddBankAccountFragment.kt
deleted
100644 → 0
View file @
1deb8fdc
package
com.yidianling.user.mine.fragment
import
com.ydl.ydlcommon.base.BaseFragment
import
com.yidianling.user.R
/**
* 添加银行卡(后续会增加添加银行卡功能,做成独立页面)
*/
class
AddBankAccountFragment
:
BaseFragment
()
{
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
user_mine_fragment_add_bank_account
}
override
fun
initDataAndEvent
()
{
}
override
fun
initDataAndEventLazy
()
{
}
}
m-user/src/main/res/drawable-xhdpi/user_mine_img_yhk.jpg
deleted
100644 → 0
View file @
1deb8fdc
12.3 KB
m-user/src/main/res/layout/user_mine_activity_add_account.xml
View file @
290aa8e9
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
xmlns:tools=
"http://schemas.android.com/tools"
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
android:orientation=
"vertical"
>
tools:context=
"com.yidianling.user.mine.AddAccountActivity"
>
<com.ydl.ydlcommon.view.TitleBar
<com.ydl.ydlcommon.view.TitleBar
android:id=
"@+id/title_bar"
android:id=
"@+id/title_bar"
...
@@ -21,15 +21,97 @@
...
@@ -21,15 +21,97 @@
android:background=
"#e5e5e5"
/>
android:background=
"#e5e5e5"
/>
<com.ydl.ydlcommon.view.widgets.TopTabSelectLayout
<LinearLayout
android:id=
"@+id/top_layout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<View
style=
"@style/platform_viewline"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
android:background=
"@color/white"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"111dp"
android:layout_height=
"match_parent"
android:gravity=
"center_vertical"
android:text=
"支付宝帐号"
android:textColor=
"@color/black"
android:textSize=
"17sp"
/>
<EditText
android:id=
"@+id/et_account"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:background=
"@null"
android:inputType=
"textEmailAddress"
android:hint=
"请输入您的支付宝帐号"
android:textColor=
"@color/black"
android:textColorHint=
"@color/platform_color_999999"
android:textSize=
"17sp"
/>
</LinearLayout>
<View
style=
"@style/platform_viewline"
android:layout_marginLeft=
"15dp"
android:layout_marginLeft=
"15dp"
android:layout_marginRight=
"15dp"
/>
android:layout_marginRight=
"15dp"
/>
<androidx.viewpager.widget.ViewPager
<LinearLayout
android:id=
"@+id/viewpager"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
android:layout_height=
"50dp"
</LinearLayout>
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
android:background=
"@color/white"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"111dp"
android:layout_height=
"match_parent"
android:gravity=
"center_vertical"
android:text=
"姓名"
android:textColor=
"@color/black"
android:textSize=
"17sp"
/>
<EditText
android:id=
"@+id/et_name"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:background=
"@null"
android:hint=
"请输入您的姓名"
android:textColor=
"@color/black"
android:textColorHint=
"@color/platform_color_999999"
android:textSize=
"17sp"
/>
</LinearLayout>
<View
style=
"@style/platform_viewline"
/>
<View
android:layout_width=
"1dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
/>
<com.ydl.ydlcommon.view.RoundCornerButton
android:id=
"@+id/btn_ensure"
style=
"?android:attr/borderlessButtonStyle"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_marginBottom=
"28dp"
android:layout_marginLeft=
"20dp"
android:layout_marginRight=
"20dp"
android:text=
"保存"
android:textColor=
"@color/white"
android:textSize=
"16sp"
app:pa_round_btn_bg=
"@color/platform_main_theme"
app:pa_round_btn_radio_size=
"4dp"
/>
</LinearLayout>
</LinearLayout>
</layout>
m-user/src/main/res/layout/user_mine_fragment_add_ali_account.xml
deleted
100644 → 0
View file @
1deb8fdc
<LinearLayout
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=
"match_parent"
android:orientation=
"vertical"
tools:context=
"com.yidianling.user.mine.fragment.AddAliAccountFragment"
>
<View
style=
"@style/platform_viewline"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
android:background=
"@color/white"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"111dp"
android:layout_height=
"match_parent"
android:gravity=
"center_vertical"
android:text=
"支付宝帐号"
android:textColor=
"@color/black"
android:textSize=
"17sp"
/>
<EditText
android:id=
"@+id/et_account"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:background=
"@null"
android:inputType=
"textEmailAddress"
android:hint=
"请输入您的支付宝帐号"
android:textColor=
"@color/black"
android:textColorHint=
"@color/platform_color_999999"
android:textSize=
"17sp"
/>
</LinearLayout>
<View
style=
"@style/platform_viewline"
android:layout_marginLeft=
"15dp"
android:layout_marginRight=
"15dp"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:paddingLeft=
"15dp"
android:paddingRight=
"15dp"
android:background=
"@color/white"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"111dp"
android:layout_height=
"match_parent"
android:gravity=
"center_vertical"
android:text=
"姓名"
android:textColor=
"@color/black"
android:textSize=
"17sp"
/>
<EditText
android:id=
"@+id/et_name"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:background=
"@null"
android:hint=
"请输入您的姓名"
android:textColor=
"@color/black"
android:textColorHint=
"@color/platform_color_999999"
android:textSize=
"17sp"
/>
</LinearLayout>
<View
style=
"@style/platform_viewline"
/>
<View
android:layout_width=
"1dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
/>
<com.ydl.ydlcommon.view.RoundCornerButton
android:id=
"@+id/btn_ensure"
style=
"?android:attr/borderlessButtonStyle"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_marginBottom=
"28dp"
android:layout_marginLeft=
"20dp"
android:layout_marginRight=
"20dp"
android:text=
"保存"
android:textColor=
"@color/white"
android:textSize=
"16sp"
app:pa_round_btn_bg=
"@color/platform_main_theme"
app:pa_round_btn_radio_size=
"4dp"
/>
</LinearLayout>
m-user/src/main/res/layout/user_mine_fragment_add_bank_account.xml
deleted
100644 → 0
View file @
1deb8fdc
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:gravity=
"center_horizontal"
android:orientation=
"vertical"
tools:context=
"com.yidianling.user.mine.fragment.AddBankAccountFragment"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"100dp"
android:src=
"@drawable/user_mine_img_yhk"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"26dp"
android:text=
"近期会持续开通提现到银行卡,敬请期待......"
android:textColor=
"@color/platform_color_999999"
android:textSize=
"15sp"
/>
</LinearLayout>
ydl-webview/src/main/java/com/ydl/webview/NewH5Activity.java
View file @
290aa8e9
...
@@ -829,6 +829,7 @@ public class NewH5Activity extends BaseActivity implements PtrHandler {
...
@@ -829,6 +829,7 @@ public class NewH5Activity extends BaseActivity implements PtrHandler {
super
.
onReceivedError
(
view
,
errorCode
,
description
,
failingUrl
);
super
.
onReceivedError
(
view
,
errorCode
,
description
,
failingUrl
);
AliYunRichLogsHelper
.
Companion
.
getInstance
()
AliYunRichLogsHelper
.
Companion
.
getInstance
()
.
sendRichLog
(
AliYunLogConfig
.
WEB
,
"onReceivedError---- errorCode: "
+
errorCode
+
"----failingUrl:"
+
failingUrl
);
.
sendRichLog
(
AliYunLogConfig
.
WEB
,
"onReceivedError---- errorCode: "
+
errorCode
+
"----failingUrl:"
+
failingUrl
);
LogUtil
.
e
(
"webviewErrorCode:"
+
errorCode
+
"description:"
+
description
);
loadFailed
=
true
;
loadFailed
=
true
;
tb_title
.
setTitle
(
"加载中"
);
tb_title
.
setTitle
(
"加载中"
);
if
(
wv_content
!=
null
)
{
if
(
wv_content
!=
null
)
{
...
...
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