package com.yidianling.consultant.modular import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.content.Intent import android.support.v4.app.Fragment import android.text.TextUtils import com.alibaba.android.arouter.facade.annotation.Route import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.ydl.ydlcommon.utils.SharedPreferencesEditor import com.yidianling.common.tools.LogUtil import com.yidianling.consultant.ExpertSearchActivity import com.yidianling.consultant.ExpertSearchFragment import com.yidianling.consultant.api.IConsultantService import com.yidianling.consultant.bean.GuideBean import com.yidianling.consultant.bean.Keyworks import com.yidianling.consultant.data.ConsultantDataManager import com.yidianling.consultant.model.SearchApi import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils import com.yidianling.consultant.modular.utils.ConsultAssistantEntryUtils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers /** * Created by xj on 2019/11/14. */ @Route(path = "/consultant/ConsultantService") class ConsultantServiceImp : IConsultantService { override fun init(context: Context?) { } override fun expertSearchIntent( activity: Activity, category: Int, showType: Int, isInitShowHot: Boolean ): Intent { return ExpertSearchActivity.newIntent(activity, category, showType, isInitShowHot) } override fun getHotSearch(): MutableList<Keyworks> { return ConsultantDataManager.getRam().getHotSearch(); } override fun setHotSearch(hotSearch: MutableList<Keyworks>) { return ConsultantDataManager.getRam().setHotSearch(hotSearch); } /** * 首页咨询助理入口 */ override fun showConsultAssistantDialog(activity: Activity) { ConsultAssistantDialogUtils.INSTANCE.fitRequest(activity, "home_index") } override fun hideConsultAssistantDialog() { ConsultAssistantDialogUtils.INSTANCE.hideFromHomePage() } override fun showConsultAssistantMineDialog(activity: Activity) { ConsultAssistantDialogUtils.INSTANCE.fitRequest(activity, "mine_index") } override fun hideConsultAssistantMineDialog() { ConsultAssistantDialogUtils.INSTANCE.hideFromMine() } override fun startExpertSearchActivity( mContext: Context, category: Int, categoryName: String, showType: Int ) { ExpertSearchActivity.start(mContext, category, categoryName, showType) } override fun startExpertSearchActivity(mContext: Context, category: Int) { ExpertSearchActivity.start(mContext, category) } override fun getExpertSearchFragment(): Fragment { return ExpertSearchFragment() } override fun getGuideImage(source: Int): List<GuideBean>? { val dataString = SharedPreferencesEditor.getString("guide_data") return if (TextUtils.isEmpty(dataString)) { null } else { val gson = Gson() val map: java.util.HashMap<String, List<GuideBean>> = gson.fromJson( dataString, object : TypeToken<java.util.HashMap<String, List<GuideBean>>>() {}.type ) map[source.toString()] } } @SuppressLint("CheckResult") override fun requestGuideData() { SearchApi.getSearchApi().getGuideData() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ if (it.data != null && it.data.isNotEmpty()) { SharedPreferencesEditor.putString("guide_data", Gson().toJson(it.data)) } }, {}) } override fun jumpConsultAssistant(activity: Activity, location: Int) { ConsultAssistantEntryUtils.jumpConsultAssistant(activity,location,null) } override fun dueToTypeJumpAutoOrGuide(activity: Activity, location: Int, doctorId: Int,url:String) { ConsultAssistantEntryUtils.getTypeJump(activity,location,doctorId,url) } override fun resetConsultAssistantDialogStatus() { ConsultAssistantDialogUtils.INSTANCE.resetStatus() } }