Commit 79079b9e by 徐健

Merge branch 'feature/consultant_update' into feature/v3

# Conflicts:
#	app/build.gradle
#	app/src/main/java/com/ydl/component/MainActivity.kt
#	config.gradle
#	m-user/src/main/java/com/yidianling/user/constants/UserBIConstants.kt
parents c53b4393 1002a61b
......@@ -183,10 +183,11 @@ dependencies {
implementation project(':m-tests')
implementation project(':m-consultant')
implementation modularPublication('com.ydl:m-consultant-api')
implementation project(':m-confide')
// implementation project(':m-confide')
api project(':m-home')
// api project(':m-confide')
// api "com.ydl:m-consultant-api:0.0.2"
// api 'com.ydl:m-consultant-module-ydl:0.0.18@aar'
......@@ -201,7 +202,7 @@ dependencies {
implementation project(':m-muse')
// implementation project(':m-muse')
implementation project(':m-im')
implementation project(':m-dynamic')
......
......@@ -10,6 +10,7 @@ import android.net.Uri
import android.os.IBinder
import android.provider.Settings
import android.util.Log
import android.widget.LinearLayout
import com.alibaba.android.arouter.launcher.ARouter
import com.tbruyelle.rxpermissions2.RxPermissions
import com.umeng.analytics.MobclickAgent
......@@ -17,6 +18,7 @@ import com.ydl.component.home.HomeActivity
import com.ydl.component.music.FragmentContainerActivity
import com.ydl.component.mvp.DemoContract
import com.ydl.component.mvp.DemoPresenter
//import com.ydl.confide.home.ConfideHomeActivity
import com.ydl.media.audio.PlayService
import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydl_router.manager.YDLRouterParams
......
......@@ -190,6 +190,6 @@
<com.ydl.ydlcommon.mvp.lce.view.YDLStateView
android:id="@+id/lce_state_view"
android:layout_width="match_parent"
android:layout_height="300dp" />
android:layout_height="30dp" />
</LinearLayout>
\ No newline at end of file
......@@ -43,18 +43,19 @@ ext {
// -------------- 业务模块 --------------
//第三步 若干
"m-confide" : "0.0.40.2",
"m-consultant" : "0.0.50.2",
"m-fm" : "0.0.23.2",
"m-user" : "0.0.40.2",
"m-home" : "0.0.6.5",
"m-confide" : "0.0.41.1",
"m-consultant" : "0.0.51.1",
"m-fm" : "0.0.23.3",
"m-user" : "0.0.40.3",
"m-home" : "0.0.6.6",
"m-muse" : "0.0.20.2",
"m-muse" : "0.0.20.3",
"m-tests" : "0.0.15.2",
"m-course" : "0.0.34.2",
"m-course" : "0.0.34.3",
"m-im" : "0.0.3.1",
"m-dynamic" : "0.0.1.1",
//-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.5",
"m-confide-api" : "0.0.1.1",
......@@ -89,7 +90,7 @@ ext {
// -------------- 业务模块 --------------
//第三步 若干
"m-confide" : "0.0.40",
"m-consultant" : "0.0.26",
"m-consultant" : "0.0.28",
"m-course" : "0.0.22",
"m-fm" : "0.0.15",
"m-user" : "0.0.25",
......
......@@ -163,6 +163,8 @@ class AudioHomeActivity : BaseMvpActivity<IAudioHomeActivityContract.View, IAudi
//频道管理器
private var channelManager : ChannelManager? = null
private var isLeavelChannel:Boolean = false
/**
* 声网事件回调 (SDK 通过指定的事件通知应用程序 SDK 的运行事件,如: 加入或离开频道,新用户加入频道等)
*/
......@@ -917,7 +919,7 @@ class AudioHomeActivity : BaseMvpActivity<IAudioHomeActivityContract.View, IAudi
channelId
)
var cmd = NoticePushCommand()
cmd.data = Gson().toJson(msgBean)
cmd.data = msgBean
cmd.pushId = listenerUid
if (isCall) {
cmd.status = "CALL"
......@@ -932,11 +934,14 @@ class AudioHomeActivity : BaseMvpActivity<IAudioHomeActivityContract.View, IAudi
* 声网离开频道
*/
private fun leaveChannel() {
//刷新h5页面
EventBus.getDefault().post(RefreshWebEvent(false))
stopPlaying()
//播放结束音频
playFinishMusic()
if (!isLeavelChannel) {
isLeavelChannel = true
//刷新h5页面
EventBus.getDefault().post(RefreshWebEvent(false))
stopPlaying()
//播放结束音频
playFinishMusic()
}
}
override fun onResume() {
......
......@@ -50,7 +50,8 @@ interface AudioNetAPi {
/**
*通知服务端发送推送
*/
@POST("api/push/notify/doctor")
@Headers( YDL_DOMAIN+ YDL_DOMAIN_JAVA,"Content-Type:application/json")
@POST("push/notify/doctor")
fun noticeServerPush(@Body body: RequestBody): Observable<BaseResponse<Any>>
/**
......
package com.ydl.audioim.http.command;
import com.ydl.ydl_av.chat.bean.AudioMessageBean;
import com.ydl.ydlcommon.data.http.BaseCommand;
/**
......@@ -11,7 +12,7 @@ import com.ydl.ydlcommon.data.http.BaseCommand;
* @date 2018/11/17
*/
public class NoticePushCommand extends BaseCommand {
public String data;//AudioMessageBean的字符串
public AudioMessageBean data;//AudioMessageBean的字符串
public String pushId;//专家uid
public String status;//CALL 呼叫 CALL_OFF 取消呼叫
public String title = "您有一条倾诉消息";
......
......@@ -28,17 +28,14 @@ import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener
import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.ydl.ydl_router.manager.YDLRouterParams
import com.ydl.ydlcommon.base.BaseMvpActivity
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.bean.StatusBarOptions
import com.ydl.ydlcommon.router.IYDLRouterConstant
import com.ydl.ydlcommon.ui.LogoLoadingView
import com.ydl.ydlcommon.utils.BuryPointUtils
import com.ydl.ydlcommon.utils.StatusBarUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.ydl.ydlcommon.view.banner.GlideImageLoader
import com.ydl.ydlcommon.view.listener.EndlessRecyclerViewScrollListener
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.RxDeviceTool
......@@ -51,7 +48,6 @@ import com.yidianling.consultant.listener.OnFilterConfirmListener
import com.yidianling.consultant.listener.OnSortItemSelectedListener
import com.yidianling.consultant.model.bean.*
import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
import com.yidianling.consultant.modular.utils.TempH5RouteUtils
import com.yidianling.consultant.router.ConsultantIn
import com.yidianling.consultant.ui.view.AreaPopupWindow
import com.yidianling.consultant.ui.view.CategoryPopupWindow
......@@ -60,7 +56,6 @@ import com.yidianling.consultant.ui.view.SortPopupWindow
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_layout_search_content.*
import kotlinx.android.synthetic.main.consultant_layout_search_head_bg.*
import kotlinx.android.synthetic.main.consultant_layout_search_toolbar.*
import org.json.JSONObject
import java.util.concurrent.Executors
......@@ -227,11 +222,15 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
super.onScrollStateChanged(recyclerView, newState)
hideSoftInput()
if (newState == RecyclerView.SCROLL_STATE_DRAGGING || newState == RecyclerView.SCROLL_STATE_SETTLING) {
//滚动
ConsultAssistantDialogUtils.INSTANCE.hideAssistantActivity()
sIsScrolling = true
if (!this@ExpertSearchActivity.isFinishing) {
// GlideApp.with(this@ExpertSearchActivity).pauseRequests()
}
} else if (newState == RecyclerView.SCROLL_STATE_IDLE) {
//没有滚动
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this@ExpertSearchActivity, "doctor_list", true)
if (sIsScrolling) {
if (!this@ExpertSearchActivity.isFinishing) {
// GlideApp.with(this@ExpertSearchActivity).resumeRequests()
......@@ -363,8 +362,6 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
getPresenter().fetchListHead()
//加载本地缓存数据
getPresenter().localData(initShowType)
//加载banner
getPresenter().fetchBannerList()
refresh(false)
v_loading.visibility = View.VISIBLE
......@@ -375,34 +372,6 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
}
}
override fun onBannerListFetched(data: MutableList<ExpertBannerBean>?) {
if (null == data) {
if (bannerList.isEmpty()) {
bannerList.add("https://h2.yidianling.com/ct/list")
}
}
if (null != data && data.isNotEmpty()) {
bannerList.clear()
for (item in data) {
bannerList.add(item.image!!)
}
}
banner_search.setOnBannerListener {
if (null == data || data.isEmpty()) {
TempH5RouteUtils.tempH5Route(
IYDLRouterConstant.ROUTER_H5_H5,
YDLRouterParams().putExtra(IYDLRouterConstant.EXTRA_URL, "https://h2.yidianling.com/ct/list"), "")
} else {
if (it < data.size) {
TempH5RouteUtils.tempH5Route(data[it].linkUrl)
}
}
}
banner_search.setImageLoader(GlideImageLoader(R.drawable.consultant_expert_banner_default)).setImages(bannerList).start()
banner_search.setIndicatorBottomPadding(20)
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
initData(intent!!)
......@@ -1003,7 +972,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
}
filterPopupWindow.isClippingEnabled = false
filterPopupWindow.showAtLocation(viewSep2.rootView, Gravity.TOP + Gravity.RIGHT, 0, 0)
ConsultAssistantDialogUtils.INSTANCE.hide()
ConsultAssistantDialogUtils.INSTANCE.hideAssistantActivity()
filterPopupWindow.onFilterConfirmListener = this
updateFilterTextViewStatus(tvFilter, FILTER_STATUS_OPEN)
// viewDim.visibility = View.VISIBLE
......
......@@ -24,17 +24,14 @@ import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener
import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.ydl.ydl_router.manager.YDLRouterParams
import com.ydl.ydlcommon.base.BaseMvpFragment
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.router.IYDLRouterConstant
import com.ydl.ydlcommon.ui.LogoLoadingView
import com.ydl.ydlcommon.utils.BuryPointUtils
import com.ydl.ydlcommon.utils.DisplayUtils
import com.ydl.ydlcommon.utils.StatusBarUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.ydl.ydlcommon.view.banner.GlideImageLoader
import com.ydl.ydlcommon.view.listener.EndlessRecyclerViewScrollListener
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.RxDeviceTool
......@@ -47,7 +44,6 @@ import com.yidianling.consultant.listener.OnFilterConfirmListener
import com.yidianling.consultant.listener.OnSortItemSelectedListener
import com.yidianling.consultant.model.bean.*
import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
import com.yidianling.consultant.modular.utils.TempH5RouteUtils
import com.yidianling.consultant.router.ConsultantIn
import com.yidianling.consultant.ui.view.AreaPopupWindow
import com.yidianling.consultant.ui.view.CategoryPopupWindow
......@@ -56,7 +52,6 @@ import com.yidianling.consultant.ui.view.SortPopupWindow
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_layout_search_content.*
import kotlinx.android.synthetic.main.consultant_layout_search_head_bg.*
import kotlinx.android.synthetic.main.consultant_layout_search_toolbar.*
import org.json.JSONObject
import java.util.concurrent.Executors
......@@ -84,15 +79,21 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
}
override fun showImage(url: String?, imgView: ImageView) {
YDLImageCacheManager.showImage(activity, url, imgView)
if (isAdded) {
YDLImageCacheManager.showImage(activity, url, imgView)
}
}
override fun showImage(url: String?, imgView: ImageView, ops: SimpleImageOpConfiger) {
YDLImageCacheManager.showImage(activity, url, imgView, ops)
if (isAdded) {
YDLImageCacheManager.showImage(activity, url, imgView, ops)
}
}
override fun showImage(url: String?, imgView: ImageView, width: Int, heigh: Int, ops: SimpleImageOpConfiger) {
YDLImageCacheManager.showImage(activity, url, imgView, width, heigh, ops)
if (isAdded) {
YDLImageCacheManager.showImage(activity, url, imgView, width, heigh, ops)
}
}
//
// override fun getStatusViewOptions(): StatusBarOptions {
......@@ -180,8 +181,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
hideSoftInput()
if (newState == RecyclerView.SCROLL_STATE_DRAGGING || newState == RecyclerView.SCROLL_STATE_SETTLING) {
sIsScrolling = true
//滚动
hideConsultAssistantDialog()
} else if (newState == RecyclerView.SCROLL_STATE_IDLE) {
//没有滚动
showConsultAssistantDialog()
if (sIsScrolling) {
}
......@@ -313,8 +318,6 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
getPresenter().fetchListHead()
//加载本地缓存数据
getPresenter().localData(initShowType)
//加载banner
getPresenter().fetchBannerList()
//refresh(false)
v_loading.visibility = View.VISIBLE
......@@ -325,35 +328,6 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
}
}
override fun onBannerListFetched(data: MutableList<ExpertBannerBean>?) {
if (null == data) {
if (bannerList.isEmpty()) {
bannerList.add("https://h2.yidianling.com/ct/list")
}
}
if (null != data && data.isNotEmpty()) {
bannerList.clear()
for (item in data) {
bannerList.add(item.image!!)
}
}
banner_search.setOnBannerListener {
if (null == data || data.isEmpty()) {
TempH5RouteUtils.tempH5Route(
IYDLRouterConstant.ROUTER_H5_H5,
YDLRouterParams().putExtra(IYDLRouterConstant.EXTRA_URL, "https://h2.yidianling.com/ct/list"), "")
} else {
if (it < data.size) {
TempH5RouteUtils.tempH5Route(data[it].linkUrl)
}
}
}
banner_search.setImageLoader(GlideImageLoader(R.drawable.consultant_expert_banner_default)).setImages(bannerList).start()
banner_search.setIndicatorBottomPadding(20)
}
/**
* 初始化状态栏位置
*/
......
......@@ -42,26 +42,6 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
})
}
@SuppressLint("CheckResult")
fun fetchBannerList() {
ExpertSearchDataManager.getHttp().getBannerList()
.subscribeOn(Schedulers.io())
.compose(RxLifecycleUtils.bindToLifecycle(mView!!))
.compose(RxUtils.resultJavaData())
.map { it }
.filter { it != null }
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer {
mView.onBannerListFetched(it)
}, object : ThrowableConsumer() {
override fun accept(msg: String) {
mView.onBannerListFetched(null)
// mView.fetchFailed(msg)
}
})
}
/**
* 加载缓存
*/
......
......@@ -23,7 +23,6 @@ interface IExpertSearchView : IView {
fun fetchFailed(msg: String?)
fun fetchListFailed(msg: String?)
fun fetchListEmpty(msg: String?)
fun onBannerListFetched(data: MutableList<ExpertBannerBean>?)
/**
* 加载图片
*/
......
package com.yidianling.consultant.bean;
import java.util.List;
public class ExpertSearchBigShotBean {
/**
* id : 62
* specialTopicName : 1
* specialTopicType : 2
* specialTopicTitle : 大咖专场1
* specialTopicSubhead : 副标题1
* status : 0
* weight : 2
* jumpWay : 2
* createTime : Dec 13, 2019 9:56:26 PM
* updateTime : Dec 16, 2019 5:05:36 PM
* createrId : 22
* specialTopicUrl : https://testh2.yidianling.com/post/view-out/139?last_source=app
* topicImages : [{"id":88,"parentId":62,"iamgeType":2,"isShow":1,"createTime":"Dec 13, 2019 9:35:45 PM","updateTime":"Dec 16, 2019 4:31:42 PM","createrId":1,"imageUrl":"https://pic.ydlcdn.com/6n5AcChhYa.png"},{"id":133,"parentId":62,"iamgeType":1,"isShow":1,"createTime":"Dec 16, 2019 4:23:00 PM","updateTime":"Dec 16, 2019 4:34:48 PM","createrId":0,"imageUrl":"https://pic.ydlcdn.com/6n5AcChhYa.png"},{"id":134,"parentId":62,"iamgeType":1,"isShow":1,"createTime":"Dec 16, 2019 4:28:03 PM","updateTime":"Dec 16, 2019 4:29:58 PM","createrId":1,"imageUrl":"https://pic.ydlcdn.com/6n5AcChhYa.png"},{"id":146,"parentId":62,"iamgeType":3,"isShow":1,"createTime":"Dec 16, 2019 4:32:15 PM","updateTime":"Dec 16, 2019 4:34:01 PM","createrId":1,"imageUrl":"https://pic.ydlcdn.com/6n5AcChhYa.png"}]
*/
private int id;
private String specialTopicName;
private int specialTopicType;
private String specialTopicTitle;
private String specialTopicSubhead;
private int status;
private int weight;
private int jumpWay;
private String createTime;
private String updateTime;
private int createrId;
private String specialTopicUrl;
private List<TopicImagesBean> topicImages;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSpecialTopicName() {
return specialTopicName;
}
public void setSpecialTopicName(String specialTopicName) {
this.specialTopicName = specialTopicName;
}
public int getSpecialTopicType() {
return specialTopicType;
}
public void setSpecialTopicType(int specialTopicType) {
this.specialTopicType = specialTopicType;
}
public String getSpecialTopicTitle() {
return specialTopicTitle;
}
public void setSpecialTopicTitle(String specialTopicTitle) {
this.specialTopicTitle = specialTopicTitle;
}
public String getSpecialTopicSubhead() {
return specialTopicSubhead;
}
public void setSpecialTopicSubhead(String specialTopicSubhead) {
this.specialTopicSubhead = specialTopicSubhead;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public int getJumpWay() {
return jumpWay;
}
public void setJumpWay(int jumpWay) {
this.jumpWay = jumpWay;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public int getCreaterId() {
return createrId;
}
public void setCreaterId(int createrId) {
this.createrId = createrId;
}
public String getSpecialTopicUrl() {
return specialTopicUrl;
}
public void setSpecialTopicUrl(String specialTopicUrl) {
this.specialTopicUrl = specialTopicUrl;
}
public List<TopicImagesBean> getTopicImages() {
return topicImages;
}
public void setTopicImages(List<TopicImagesBean> topicImages) {
this.topicImages = topicImages;
}
public static class TopicImagesBean {
/**
* id : 88
* parentId : 62
* iamgeType : 2
* isShow : 1
* createTime : Dec 13, 2019 9:35:45 PM
* updateTime : Dec 16, 2019 4:31:42 PM
* createrId : 1
* imageUrl : https://pic.ydlcdn.com/6n5AcChhYa.png
*/
private int id;
private int parentId;
private int iamgeType;
private int isShow;
private String createTime;
private String updateTime;
private int createrId;
private String imageUrl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public int getIamgeType() {
return iamgeType;
}
public void setIamgeType(int iamgeType) {
this.iamgeType = iamgeType;
}
public int getIsShow() {
return isShow;
}
public void setIsShow(int isShow) {
this.isShow = isShow;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public int getCreaterId() {
return createrId;
}
public void setCreaterId(int createrId) {
this.createrId = createrId;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
}
}
package com.yidianling.consultant.bean;
import java.util.List;
public class ExpertSearchRecommandBean {
/**
* id : 68
* specialTopicName : 3
* specialTopicType : 1
* specialTopicTitle : 婚姻幸福
* specialTopicSubhead : 副标题副标题1
* status : 0
* weight : 1
* jumpWay : 1
* createTime : Dec 13, 2019 9:35:47 PM
* updateTime : Dec 16, 2019 5:44:47 PM
* createrId : 11
* specialTopicUrl : https://testh2.yidianling.com/post/view-out/139?last_source=app
* topicImages : [{"id":103,"parentId":68,"iamgeType":2,"isShow":1,"createTime":"Dec 13, 2019 9:35:47 PM","updateTime":"Dec 16, 2019 4:31:55 PM","createrId":1,"imageUrl":"https://pic.ydlcdn.com/6n5AcChhYa.png"},{"id":140,"parentId":68,"iamgeType":1,"isShow":1,"createTime":"Dec 16, 2019 4:28:05 PM","updateTime":"Dec 16, 2019 4:30:13 PM","createrId":1,"imageUrl":"https://pic.ydlcdn.com/6n5AcChhYa.png"},{"id":152,"parentId":68,"iamgeType":3,"isShow":1,"createTime":"Dec 16, 2019 4:32:18 PM","updateTime":"Dec 16, 2019 4:34:15 PM","createrId":1,"imageUrl":"https://pic.ydlcdn.com/6n5AcChhYa.png"}]
*/
private int id;
private String specialTopicName;
private int specialTopicType;
private String specialTopicTitle;
private String specialTopicSubhead;
private int status;
private int weight;
private int jumpWay;
private String createTime;
private String updateTime;
private int createrId;
private String specialTopicUrl;
private List<TopicImagesBean> topicImages;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSpecialTopicName() {
return specialTopicName;
}
public void setSpecialTopicName(String specialTopicName) {
this.specialTopicName = specialTopicName;
}
public int getSpecialTopicType() {
return specialTopicType;
}
public void setSpecialTopicType(int specialTopicType) {
this.specialTopicType = specialTopicType;
}
public String getSpecialTopicTitle() {
return specialTopicTitle;
}
public void setSpecialTopicTitle(String specialTopicTitle) {
this.specialTopicTitle = specialTopicTitle;
}
public String getSpecialTopicSubhead() {
return specialTopicSubhead;
}
public void setSpecialTopicSubhead(String specialTopicSubhead) {
this.specialTopicSubhead = specialTopicSubhead;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public int getJumpWay() {
return jumpWay;
}
public void setJumpWay(int jumpWay) {
this.jumpWay = jumpWay;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public int getCreaterId() {
return createrId;
}
public void setCreaterId(int createrId) {
this.createrId = createrId;
}
public String getSpecialTopicUrl() {
return specialTopicUrl;
}
public void setSpecialTopicUrl(String specialTopicUrl) {
this.specialTopicUrl = specialTopicUrl;
}
public List<TopicImagesBean> getTopicImages() {
return topicImages;
}
public void setTopicImages(List<TopicImagesBean> topicImages) {
this.topicImages = topicImages;
}
public static class TopicImagesBean {
/**
* id : 103
* parentId : 68
* iamgeType : 2
* isShow : 1
* createTime : Dec 13, 2019 9:35:47 PM
* updateTime : Dec 16, 2019 4:31:55 PM
* createrId : 1
* imageUrl : https://pic.ydlcdn.com/6n5AcChhYa.png
*/
private int id;
private int parentId;
private int iamgeType;
private int isShow;
private String createTime;
private String updateTime;
private int createrId;
private String imageUrl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public int getIamgeType() {
return iamgeType;
}
public void setIamgeType(int iamgeType) {
this.iamgeType = iamgeType;
}
public int getIsShow() {
return isShow;
}
public void setIsShow(int isShow) {
this.isShow = isShow;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public int getCreaterId() {
return createrId;
}
public void setCreaterId(int createrId) {
this.createrId = createrId;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
}
}
package com.yidianling.consultant.bean
class ExpertSearchTopShowBean (
var doctorSpecialTopics: ArrayList<ExpertSearchBigShotBean>,
var sceneSpecialTopic: ArrayList<ExpertSearchRecommandBean>
)
package com.yidianling.consultant.dialog
import android.animation.Animator
import android.animation.ObjectAnimator
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.os.Handler
import android.view.Gravity
import android.view.View
import android.view.WindowManager
import com.ydl.ydlcommon.utils.SharedPreferencesEditor
import com.yidianling.common.tools.RxImageTool
import com.yidianling.consultant.R
import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
import kotlinx.android.synthetic.main.consultant_expert_consult_assistant_popup_window.*
/**
......@@ -14,7 +21,13 @@ import kotlinx.android.synthetic.main.consultant_expert_consult_assistant_popup_
* Created by xj on 2019/10/30.
*/
class ConsultAssistantDialog(context: Context, val consultAssistantClickListener: OnConsultAssistantClickListener?) : Dialog(context, R.style.consultant_expert_dialog_default_style) {
class ConsultAssistantDialog(
mContext: Context,
val consultAssistantClickListener: OnConsultAssistantClickListener?
) : Dialog(mContext, R.style.consultant_expert_dialog_default_style) {
private var animate: ObjectAnimator? = null
private var minWidth: Int? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
......@@ -31,14 +44,87 @@ class ConsultAssistantDialog(context: Context, val consultAssistantClickListener
window.setWindowAnimations(R.style.consultant_expert_consult_assistant_dialog_animate)
consult_assistant.setOnClickListener {
if (!ConsultAssistantDialogUtils.INSTANCE.canShowDesc()) {
consultant_assistant_dialog_desc_ll.visibility = View.GONE
consultant_assistant_dialog_desc_outside_ll.visibility = View.GONE
refreshDialogLayout(ConsultAssistantDialogUtils.INSTANCE.minWidth)
}
consultant_assistant_dialog_close.setOnClickListener {
if (minWidth == null) {
minWidth = (consultant_assistant.measuredWidth * 1.5).toInt()
}
ConsultAssistantDialogUtils.INSTANCE.minWidth = minWidth!!
//一个dialog关闭左侧desc,所有导医左侧desc都关闭
SharedPreferencesEditor.putString(
ConsultAssistantDialogUtils.INSTANCE.ASSISTANT_DIALOG_SP_TAG,
System.currentTimeMillis().toString()
)
animate = ObjectAnimator.ofFloat(
consultant_assistant_dialog_desc_ll,
"translationX",
0.0f,
consultant_assistant_dialog_desc_ll.measuredWidth.toFloat()
)
animate?.setDuration(900)?.start()
animate?.addListener(object : Animator.AnimatorListener {
override fun onAnimationRepeat(animation: Animator?) {
}
override fun onAnimationEnd(animation: Animator?) {
ConsultAssistantDialogUtils.INSTANCE.setDescHide()
hide()
// show()
Handler().postDelayed({
show()
}, 10)
}
override fun onAnimationCancel(animation: Animator?) {
}
override fun onAnimationStart(animation: Animator?) {
}
})
}
consultant_assistant.setOnClickListener {
consultAssistantClickListener?.onClickAction()
}
setCanceledOnTouchOutside(false)
}
public fun setDescHide() {
if (null != consultant_assistant_dialog_desc_ll) {
consultant_assistant_dialog_desc_ll.visibility = View.GONE
consultant_assistant_dialog_desc_outside_ll.visibility = View.GONE
refreshDialogLayout(ConsultAssistantDialogUtils.INSTANCE.minWidth)
}
}
// 刷新dialog布局,减小拦截点击区域
fun refreshDialogLayout(width: Int) {
val params = window.attributes
if (width != 0) {
minWidth = width
} else {
minWidth = (RxImageTool.dp2px(60f) * 1.5).toInt()
}
params.width = minWidth!!
params.height = WindowManager.LayoutParams.WRAP_CONTENT
params.gravity = Gravity.RIGHT + Gravity.BOTTOM
params.verticalMargin = 0.07f
params.horizontalMargin = 0.01f
window.setWindowAnimations(0)
window.attributes = params
}
interface OnConsultAssistantClickListener {
fun onClickAction() //隐私设置
fun onClickAction()
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.yidianling.consultant.http
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlnet.YDLHttpUtils
import com.yidianling.consultant.bean.ExpertSearchTopShowBean
import com.yidianling.consultant.model.SearchApi
import com.yidianling.consultant.model.bean.ExpertBannerBean
import com.yidianling.consultant.model.bean.ExpertSearchBean
......@@ -49,8 +50,8 @@ class ExpertSearchHttpImpl : IExpertSearchHttp {
}
override fun getBannerList(): Observable<BaseAPIResponse<MutableList<ExpertBannerBean>>> {
return getSearchApi().expertBannerList()
override fun getBigShotData(): Observable<BaseAPIResponse<ExpertSearchTopShowBean>> {
return getSearchApi().getBigShotData()
}
......
package com.yidianling.consultant.http
import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.yidianling.consultant.bean.ExpertSearchTopShowBean
import com.yidianling.consultant.model.bean.ExpertBannerBean
import com.yidianling.consultant.model.bean.ExpertSearchBean
import io.reactivex.Observable
......@@ -19,12 +20,13 @@ interface IExpertSearchHttp{
fun searchDoctor(params : String?): Observable<BaseAPIResponse<ExpertSearchBean>>
/**
* 专家首页banner
* 获取当前筛选条件结果数
*/
fun getBannerList(): Observable<BaseAPIResponse<MutableList<ExpertBannerBean>>>
fun getFilterCount(params:String?): Observable<BaseAPIResponse<Int>>
/**
* 获取当前筛选条件结果数
* 获取大咖专区和顶部推荐数据数据
*/
fun getFilterCount(params:String?): Observable<BaseAPIResponse<Int>>
fun getBigShotData(): Observable<BaseAPIResponse<ExpertSearchTopShowBean>>
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlcommon.data.http.BaseResponse
import com.ydl.ydlnet.YDLHttpUtils
import com.yidianling.consultant.bean.ExpertSearchTopShowBean
import com.yidianling.consultant.bean.HotSearchBean
import com.yidianling.consultant.model.bean.ExpertBannerBean
import com.yidianling.consultant.model.bean.ExpertSearchBean
......@@ -46,11 +47,6 @@ interface SearchApi {
@GET
fun searchDoctorService(@Url url : String): Observable<BaseAPIResponse<ExpertSearchBean>>
@Headers( YDL_DOMAIN+ YDL_DOMAIN_JAVA,"Content-Type:application/json")
@GET("delivery/banner")
fun expertBannerList(@Query(value = "planId") planId:String?="32"): Observable<BaseAPIResponse<MutableList<ExpertBannerBean>>>
//搜索页面接口
@retrofit2.http.Headers(YDL_DOMAIN+ YDL_DOMAIN_JAVA,"Content-Type:application/json")
@GET("home/search-page")
......@@ -70,4 +66,9 @@ interface SearchApi {
@Headers( YDL_DOMAIN+ YDL_DOMAIN_JAVA,"Content-Type:application/json")
@GET("consult/assistant/chat-distribute")
fun getConsultAssistantUidRequest(): Observable<BaseAPIResponse<Long>>
//获取咨询助理uid
@Headers( YDL_DOMAIN+ YDL_DOMAIN_JAVA,"Content-Type:application/json")
@POST("doctor/querySpecialTopic")
fun getBigShotData(): Observable<BaseAPIResponse<ExpertSearchTopShowBean>>
}
\ No newline at end of file
package com.yidianling.consultant.ui.view.topView
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.module.GlideApp
import com.yidianling.consultant.R
import com.yidianling.consultant.bean.ExpertSearchBigShotBean
import kotlinx.android.synthetic.main.consultant_expert_search_big_shot_one.view.*
class BigShotOneView : LinearLayout {
constructor(context: Context) : super(context) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(
context,
attrs,
defStyle
) {
mContext = context
initView()
}
private var mContext: Context? = null
private fun initView() {
layoutParams = LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
orientation = HORIZONTAL
View.inflate(mContext, R.layout.consultant_expert_search_big_shot_one, this)
}
fun setUrl(bean: ExpertSearchBigShotBean) {
GlideApp.with(mContext).load(bean.topicImages[0]).into(consultant_one_img_1)
consultant_one_img_1.setOnClickListener {
val h5Params = H5Params(bean.specialTopicUrl, null)
NewH5Activity.start(context, h5Params)
}
}
}
\ No newline at end of file
package com.yidianling.consultant.ui.view.topView
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.module.GlideApp
import com.yidianling.consultant.R
import com.yidianling.consultant.bean.ExpertSearchBigShotBean
import kotlinx.android.synthetic.main.consultant_expert_search_big_shot_three.view.*
class BigShotThreeView : LinearLayout {
constructor(context: Context) : super(context) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(
context,
attrs,
defStyle
) {
mContext = context
initView()
}
private var mContext: Context? = null
private fun initView() {
layoutParams = LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
orientation = HORIZONTAL
View.inflate(mContext, R.layout.consultant_expert_search_big_shot_three, this)
}
fun setUrl(
bean1: ExpertSearchBigShotBean,
bean2: ExpertSearchBigShotBean,
bean3: ExpertSearchBigShotBean
) {
GlideApp.with(mContext).load(bean1.topicImages[2].imageUrl).into(consultant_three_img_1)
consultant_three_img_1.setOnClickListener {
val h5Params = H5Params(bean1.specialTopicUrl, null)
NewH5Activity.start(context, h5Params)
}
GlideApp.with(mContext).load(bean2.topicImages[2].imageUrl).into(consultant_three_img_2)
consultant_three_img_2.setOnClickListener {
val h5Params = H5Params(bean2.specialTopicUrl, null)
NewH5Activity.start(context, h5Params)
}
GlideApp.with(mContext).load(bean3.topicImages[2].imageUrl).into(consultant_three_img_3)
consultant_three_img_3.setOnClickListener {
val h5Params = H5Params(bean3.specialTopicUrl, null)
NewH5Activity.start(context, h5Params)
}
}
}
\ No newline at end of file
package com.yidianling.consultant.ui.view.topView
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.module.GlideApp
import com.yidianling.consultant.R
import com.yidianling.consultant.bean.ExpertSearchBigShotBean
import kotlinx.android.synthetic.main.consultant_expert_search_big_shot_two.view.*
class BigShotTwoView : LinearLayout {
constructor(context: Context) : super(context) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(
context,
attrs,
defStyle
) {
mContext = context
initView()
}
private var mContext: Context? = null
private fun initView() {
layoutParams = LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
orientation = HORIZONTAL
View.inflate(mContext, R.layout.consultant_expert_search_big_shot_two, this)
}
fun setUrl(bean1: ExpertSearchBigShotBean, bean2: ExpertSearchBigShotBean) {
GlideApp.with(mContext).load(bean1.topicImages[1].imageUrl).into(consultant_two_img_1)
consultant_two_img_1.setOnClickListener {
val h5Params = H5Params(bean1.specialTopicUrl, null)
NewH5Activity.start(context, h5Params)
}
GlideApp.with(mContext).load(bean2.topicImages[1].imageUrl).into(consultant_two_img_2)
consultant_two_img_2.setOnClickListener {
val h5Params = H5Params(bean2.specialTopicUrl, null)
NewH5Activity.start(context, h5Params)
}
}
}
\ No newline at end of file
package com.yidianling.consultant.ui.view.topView
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
import com.alibaba.android.arouter.launcher.ARouter
import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.module.GlideApp
import com.ydl.ydlcommon.base.config.HttpConfig
import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.common.tools.RxImageTool
import com.yidianling.consultant.R
import com.yidianling.consultant.bean.ExpertSearchRecommandBean
import kotlinx.android.synthetic.main.consultant_expert_search_top_item_view.view.*
import java.net.URLDecoder
class RecommendItemView : LinearLayout {
constructor(context: Context) : super(context) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
mContext = context
initView()
}
constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(
context,
attrs,
defStyle
) {
mContext = context
initView()
}
private var mContext: Context? = null
private fun initView() {
val mWidth: Int = RxDeviceTool.getScreenWidth(mContext) / 2
val mHeight: Int = RxImageTool.dp2px(60f)
val params = LayoutParams(
mWidth,
mHeight
)
params.height = mHeight
layoutParams = params
orientation = HORIZONTAL
setPadding(RxImageTool.dp2px(15f), RxImageTool.dp2px(9f), 0, RxImageTool.dp2px(11f))
View.inflate(mContext, R.layout.consultant_expert_search_top_item_view, this)
}
fun setData(bean: ExpertSearchRecommandBean) {
if (bean.topicImages.isNotEmpty() && bean.topicImages.size > 0 && bean.topicImages[0].imageUrl.isNotEmpty()) {
GlideApp.with(mContext).load(bean.topicImages[0].imageUrl).into(top_item_img)
}
top_item_title.text = bean.specialTopicTitle?:""
top_item_desc.text = bean.specialTopicSubhead?:""
setOnClickListener {
val h5Params = H5Params(bean.specialTopicUrl, null)
NewH5Activity.start(context, h5Params)
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:topLeftRadius="22dp"
android:bottomLeftRadius="22dp"/>
<gradient
android:angle="0"
android:startColor="#DDFF7A5C"
android:endColor="#DDFF406C"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:height="5dp"
android:width="15dp" />
<corners android:radius="2.5dp" />
<solid android:color="#000000"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:height="5dp"
android:width="5dp" />
<corners android:radius="2.5dp" />
<solid android:color="#dddddd"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<include
layout="@layout/consultant_layout_search_toolbar"
android:layout_width="match_parent"
android:layout_height="48dp" />
<android.support.design.widget.CoordinatorLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/consultant_colorBg"
tools:ignore="InefficientWeight">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/consultant_colorBg"
android:clipChildren="false"
android:clipToPadding="false"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="0dp">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<include layout="@layout/consultant_layout_search_head_bg" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/consultant_layout_search_content" />
<!--<include layout="@layout/layout_search_head_input"/>-->
<!--筛选弹窗半透明背景-->
<View
android:id="@+id/viewDim_filter"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#40000000"
android:visibility="gone" />
</android.support.design.widget.CoordinatorLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<include
layout="@layout/consultant_layout_search_toolbar"
android:layout_width="match_parent"
android:layout_height="48dp" />
<android.support.design.widget.CoordinatorLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/consultant_colorBg"
tools:ignore="InefficientWeight">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/consultant_colorBg"
android:clipChildren="false"
android:clipToPadding="false"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="0dp">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<com.yidianling.consultant.ui.view.topView.RecommendListView
android:id="@+id/recommendListView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</com.yidianling.consultant.ui.view.topView.RecommendListView>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/consultant_layout_search_content" />
<!--<include layout="@layout/layout_search_head_input"/>-->
<!--筛选弹窗半透明背景-->
<View
android:id="@+id/viewDim_filter"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#40000000"
android:visibility="gone" />
</android.support.design.widget.CoordinatorLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="60dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="11dp">
<LinearLayout
android:id="@+id/consultant_assistant_dialog_desc_outside_ll"
android:layout_width="wrap_content"
android:layout_height="84dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="25dp"
android:clipChildren="true"
android:gravity="center"
android:orientation="horizontal"
android:paddingRight="25dp"
android:paddingBottom="40dp">
<LinearLayout
android:id="@+id/consultant_assistant_dialog_desc_ll"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/consultant_assistant_dialog_text_bg"
android:gravity="center">
<ImageView
android:id="@+id/consultant_assistant_dialog_close"
android:layout_width="35dp"
android:layout_height="30dp"
android:paddingLeft="15dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
android:src="@drawable/consultant_assistant_dialog_close_icon" />
<View
android:layout_width="0.5dp"
android:layout_height="26dp"
android:layout_marginRight="8dp"
android:background="#ffffff" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="不知道如何选择?"
android:textColor="#ffffff"
android:textSize="12dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="为你精准匹配咨询师 "
android:textColor="#ffffff"
android:textSize="12dp" />
<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:src="@drawable/consultant_assistant_dialog_go_icon" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/consult_assistant"
android:layout_width="66dp"
android:layout_height="68dp"
android:id="@+id/consultant_assistant"
android:layout_width="61dp"
android:layout_height="101dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:scaleType="centerCrop"
android:src="@drawable/consultant_expert_consult_assistant_img"/>
android:src="@drawable/consultant_assistant_dialog_img"
android:paddingBottom="40dp" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="84dp"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardElevation="0dp"
app:cardCornerRadius="6dp">
<ImageView
android:id="@+id/consultant_one_img_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:background="#eeeeee"/>
</android.support.v7.widget.CardView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="84dp"
android:orientation="horizontal"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
app:cardElevation="0dp"
app:cardCornerRadius="6dp"
android:layout_marginRight="5dp">
<ImageView
android:id="@+id/consultant_three_img_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:background="#eeeeee"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
app:cardElevation="0dp"
app:cardCornerRadius="6dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp">
<ImageView
android:id="@+id/consultant_three_img_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:background="#eeeeee"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
app:cardElevation="0dp"
app:cardCornerRadius="6dp"
android:layout_marginLeft="5dp">
<ImageView
android:id="@+id/consultant_three_img_3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:background="#eeeeee"/>
</android.support.v7.widget.CardView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="84dp"
android:orientation="horizontal"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
app:cardElevation="0dp"
app:cardCornerRadius="6dp"
android:layout_marginRight="5dp">
<ImageView
android:id="@+id/consultant_two_img_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:background="#eeeeee"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
app:cardElevation="0dp"
app:cardCornerRadius="6dp"
android:layout_marginLeft="5dp">
<ImageView
android:id="@+id/consultant_two_img_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:background="#eeeeee"/>
</android.support.v7.widget.CardView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:parentTag="android.widget.LinearLayout">
</merge>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="true">
<android.support.v4.view.ViewPager
android:id="@+id/recommendViewPager"
android:paddingTop="11dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FAFAFA" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="15dp"
android:orientation="horizontal"
android:background="#FAFAFA"
android:gravity="center">
<View
android:id="@+id/leftIndicator"
android:layout_width="15dp"
android:layout_height="5dp"
android:layout_marginRight="3dp"/>
<View
android:id="@+id/rightIndicator"
android:layout_width="15dp"
android:layout_height="5dp"
android:layout_marginLeft="3dp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/itemListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingBottom="15dp"
android:orientation="vertical"
android:background="#FFFFFF">
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:parentTag="LinearLayout">
<android.support.v7.widget.CardView
android:layout_width="40dp"
android:layout_height="40dp"
android:background="#eeeeee"
android:layout_marginRight="10dp"
>
<ImageView
android:id="@+id/top_item_img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"/>
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/top_item_title"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="left|top"
android:text="标题"
android:textSize="14dp"
android:textColor="#242424"
android:textStyle="bold"/>
<TextView
android:id="@+id/top_item_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left|top"
android:text="我是描述"
android:textSize="11dp"
android:textColor="#999999"/>
</LinearLayout>
</merge>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<com.yidianling.consultant.ui.view.DisInterceptNestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/search_head_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/platform_white"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.8">
<android.support.v7.widget.CardView
android:id="@+id/user_head_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="10dp"
android:elevation="0dp"
android:orientation="vertical"
app:cardCornerRadius="4dp">
<com.ydl.ydlcommon.view.banner.Banner
android:id="@+id/banner_search"
android:layout_width="match_parent"
android:layout_height="99dp"
android:scaleType="centerCrop"
app:pa_indicator_different_width="14dp"
app:pa_indicator_drawable_selected="@drawable/consultant_banner_indicator_select"
app:pa_indicator_drawable_unselected="@drawable/consultant_banner_indicator_unselect"
app:pa_indicator_height="5dp"
app:pa_indicator_margin="1.25dp"
app:pa_is_selected_same_unselected="false"
app:pa_is_show_indicator="false" />
</android.support.v7.widget.CardView>
</com.yidianling.consultant.ui.view.DisInterceptNestedScrollView>
......@@ -55,7 +55,7 @@ class YDLCommonPlugin : MethodChannel.MethodCallHandler {
val loginBean = ModularServiceManager.getPlatformUserService()?.getUser()
val mMap = mutableMapOf<String, Any>()
var uid = loginBean?.userId ?: ""
mMap["isDevelopment"] =BuildConfig.DEBUG
mMap["isDevelopment"] = false
mMap["uid"] = if (TextUtils.isEmpty(uid)) "0" else uid
mMap["accessToken"] = loginBean?.token ?: ""
?: ""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment