Commit cfab77e2 by 徐健

Merge remote-tracking branch 'origin/dev' into feature/test_home_pager

# Conflicts:
#	config.gradle
parents 1717b7cf b1b6a6a5
......@@ -13,7 +13,6 @@ import android.util.Log
import com.alibaba.android.arouter.launcher.ARouter
import com.tbruyelle.rxpermissions2.RxPermissions
import com.umeng.analytics.MobclickAgent
import com.umeng.commonsdk.framework.UMModuleRegister.getAppContext
import com.ydl.audioim.YDLavManager
import com.ydl.component.music.MusicPlayActivity
import com.ydl.component.mvp.DemoContract
......@@ -137,7 +136,7 @@ class MainActivity : BaseLceActivity<DemoContract.View, DemoContract.Presenter>(
override fun reLoadData() {
mPresenter?.loadUsers()
mPresenter.loadHome()
}
......
......@@ -43,14 +43,14 @@ ext {
// -------------- 业务模块 --------------
//第三步 若干
"m-confide" : "0.0.28",
"m-consultant" : "0.0.39",
"m-fm" : "0.0.20",
"m-user" : "0.0.33",
"m-confide" : "0.0.29",
"m-consultant" : "0.0.44",
"m-fm" : "0.0.21",
"m-user" : "0.0.34",
// 接入flutter的模块
"m-tests" : "0.0.11.10",
"m-muse" : "0.0.17.10",
"m-course" : "0.0.28.10",
"m-tests" : "0.0.12",
"m-muse" : "0.0.19",
"m-course" : "0.0.30",
//-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.5",
......@@ -64,13 +64,13 @@ ext {
//-------------- 功能组件 --------------
//第一步
"ydl-platform" : "0.0.26",
"ydl-platform" : "0.0.27",
//第二步 若干
"ydl-webview" : "0.0.27",
"ydl-media" : "0.0.13",
"ydl-pay" : "0.0.10",
"m-audioim" : "0.0.28",
"ydl-webview" : "0.0.28",
"ydl-media" : "0.0.14",
"ydl-pay" : "0.0.11",
"m-audioim" : "0.0.29",
//以下 几乎不会动
"router" : "0.0.1",
......@@ -104,13 +104,13 @@ ext {
//-------------- 功能组件 --------------
//第一步
"ydl-platform" : "0.0.26",
"ydl-platform" : "0.0.27",
//第二步 若干
"ydl-webview" : "0.0.27",
"ydl-media" : "0.0.13",
"ydl-pay" : "0.0.10",
"m-audioim" : "0.0.28",
"ydl-webview" : "0.0.28",
"ydl-media" : "0.0.14",
"ydl-pay" : "0.0.11",
"m-audioim" : "0.0.29",
//以下 几乎不会动
......
......@@ -312,7 +312,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
image_scroll_top.setOnClickListener(this)
// initStatus()
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list")
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list", true)
}
private fun initNetLossView() {
......@@ -999,7 +999,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
} else {
updateFilterTextViewStatus(tvFilter, FILTER_STATUS_NORMAL)
}
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list")
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list", true)
}
filterPopupWindow.isClippingEnabled = false
filterPopupWindow.showAtLocation(viewSep2.rootView, Gravity.TOP + Gravity.RIGHT, 0, 0)
......@@ -1478,6 +1478,6 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
override fun onDestroy() {
super.onDestroy()
ConsultAssistantDialogUtils.INSTANCE.resetStatus()
ConsultAssistantDialogUtils.INSTANCE.expertSearchResetStatus()
}
}
......@@ -208,7 +208,7 @@ class ExpertSearchAdapter(private val context: Context, private val expertSearch
//私聊文案
if (TextUtils.isEmpty(itemBean.chatBtnText)){
holder.tvChat.text = "私聊"
holder.tvChat.setTextColor(ContextCompat.getColor(context,R.color.white))
holder.tvChat.setTextColor(ContextCompat.getColor(context,R.color.consultant_confirm_text_color))
holder.tvChat.background = ContextCompat.getDrawable(context,R.drawable.consultant_expert_search_chat)
}else{
holder.tvChat.text = itemBean.chatBtnText
......
......@@ -49,7 +49,7 @@ class FlutterCourseHomeFragment : BaseFlutterFragment() {
}
override fun initialRoute(): String {
return "native/course/home"
return "course/home"
}
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
......
......@@ -139,7 +139,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
filter_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
} else {
......@@ -233,7 +233,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
classify_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
} else {
......@@ -330,7 +330,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
classify_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
} else {
......@@ -352,7 +352,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
classify_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
classify_layout.setCompoundDrawablesWithIntrinsicBounds(
......@@ -399,7 +399,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
filter_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
} else {
......@@ -421,7 +421,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
filter_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
filter_layout.setCompoundDrawablesWithIntrinsicBounds(
......@@ -642,7 +642,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
classify_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
} else {
......@@ -689,7 +689,7 @@ class CourseListContainerActivity : BaseActivity(), PtrHandler, LoadMoreHandler
filter_layout.setTextColor(
ContextCompat.getColor(
this@CourseListContainerActivity,
R.color.course_color_1DA1F2
R.color.main_theme
)
)
} else {
......
......@@ -15,7 +15,7 @@ import org.json.JSONObject
@Route(path = "/module/muse")
class MuseActivity : BaseFlutterActivity() {
override fun initialRoute(): String {
return "native/muse/home"
return "muse/home"
}
override fun initChannelPlugin(jsonObject: JSONObject) {
......
......@@ -2,6 +2,7 @@ package com.ydl.ydlnet.builder.config;
import android.content.Context;
import android.text.TextUtils;
import com.ydl.ydlnet.builder.cookie.CookieJarImpl;
import com.ydl.ydlnet.builder.cookie.store.CookieStore;
import com.ydl.ydlnet.builder.factory.ApiFactory;
......@@ -9,19 +10,22 @@ import com.ydl.ydlnet.builder.http.SSLUtils;
import com.ydl.ydlnet.builder.interceptor.HeaderInterceptor;
import com.ydl.ydlnet.builder.interceptor.NetCacheInterceptor;
import com.ydl.ydlnet.builder.interceptor.NoNetCacheInterceptor;
import com.ydl.ydlnet.builder.interceptor.log.RequestHandler;
import com.ydl.ydlnet.builder.interceptor.log.RequestLogInterceptor;
import com.ydl.ydlnet.builder.manage.HttpUrlManager;
import com.ydl.ydlnet.client.interfaces.BuildHeadersListener;
import okhttp3.Cache;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import javax.net.ssl.HostnameVerifier;
import java.io.File;
import java.io.InputStream;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.HostnameVerifier;
import okhttp3.Cache;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
/**
* Created by haorui on 2019-09-02 .
* Des: 统一OkHttp配置信息
......@@ -80,6 +84,7 @@ public class OkHttpConfig {
private InputStream bksFile;
private String password;
private InputStream[] certificates;
private RequestHandler requestHandler;
private Interceptor[] interceptors;
private Interceptor[] netInterceptors;
private BuildHeadersListener buildHeadersListener;
......@@ -99,6 +104,11 @@ public class OkHttpConfig {
return this;
}
public Builder setRequestHandler(RequestHandler requestHandler) {
this.requestHandler= requestHandler;
return this;
}
public Builder setCache(boolean isCache) {
this.isCache = isCache;
return this;
......@@ -210,9 +220,7 @@ public class OkHttpConfig {
* 配置开发环境
*/
private void setDebugConfig() {
if (isDebug) {
okHttpClientBuilder.addInterceptor(new RequestLogInterceptor());
}
okHttpClientBuilder.addInterceptor(new RequestLogInterceptor(isDebug,requestHandler));
}
......
package com.ydl.ydlnet.builder.interceptor.log;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
/**
* Created by haorui on 2019-11-26 .
* Des:
*/
public interface RequestHandler {
Response onHttpResultResponse(String httpResult, Interceptor.Chain chain, Response response);
Request onHttpRequestBefore(Interceptor.Chain chain, Request request);
RequestHandler EMPTY = new RequestHandler() {
@Override
public Response onHttpResultResponse(String httpResult, Interceptor.Chain chain, Response response) {
//不管是否处理,都必须将response返回出去
return response;
}
@Override
public Request onHttpRequestBefore(Interceptor.Chain chain, Request request) {
//不管是否处理,都必须将request返回出去
return request;
}
};
}
package com.ydl.ydlnet.builder.interceptor.log;
import android.support.annotation.Nullable;
import com.ydl.ydlnet.utils.CharacterHandler;
import com.ydl.ydlnet.utils.NetLogUtils;
import com.ydl.ydlnet.utils.UrlEncoderUtils;
import com.ydl.ydlnet.utils.ZipHelper;
import okhttp3.*;
import okio.Buffer;
import okio.BufferedSource;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
......@@ -15,14 +13,27 @@ import java.net.URLDecoder;
import java.nio.charset.Charset;
import java.util.List;
import java.util.concurrent.TimeUnit;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okio.Buffer;
import okio.BufferedSource;
/**
* Created by haorui on 2019-09-01 .
* Des: 解析框架中的网络请求和响应结果并打印
*/
public class RequestLogInterceptor implements Interceptor {
private DefaultFormatPrinter mPrinter = new DefaultFormatPrinter();
private boolean mIsDebug ;
private RequestHandler mRequestHandler;
public RequestLogInterceptor() {
public RequestLogInterceptor(boolean isDebug, RequestHandler requestHandler) {
this.mIsDebug = isDebug;
this.mRequestHandler = requestHandler;
}
@Override
......@@ -36,6 +47,8 @@ public class RequestLogInterceptor implements Interceptor {
mPrinter.printFileRequest(request);
}
if (mRequestHandler != null)
request = mRequestHandler.onHttpRequestBefore(chain, request);
long t1 =System.nanoTime() ;
Response originalResponse;
......@@ -55,19 +68,24 @@ public class RequestLogInterceptor implements Interceptor {
bodyString = printResult(request, originalResponse);
}
final List<String> segmentList = request.url().encodedPathSegments();
final String header = originalResponse.headers().toString();
final int code = originalResponse.code();
final boolean isSuccessful = originalResponse.isSuccessful();
final String message = originalResponse.message();
final String url = originalResponse.request().url().toString();
if (responseBody != null && isParseable(responseBody.contentType())) {
mPrinter.printJsonResponse(TimeUnit.NANOSECONDS.toMillis(t2 - t1), isSuccessful,
code, header, responseBody.contentType(), bodyString, segmentList, message, url);
} else {
mPrinter.printFileResponse(TimeUnit.NANOSECONDS.toMillis(t2 - t1),
isSuccessful, code, header, segmentList, message, url);
if (mRequestHandler != null)
mRequestHandler.onHttpResultResponse(bodyString, chain, originalResponse);
if(mIsDebug) {
final List<String> segmentList = request.url().encodedPathSegments();
final String header = originalResponse.headers().toString();
final int code = originalResponse.code();
final boolean isSuccessful = originalResponse.isSuccessful();
final String message = originalResponse.message();
final String url = originalResponse.request().url().toString();
if (responseBody != null && isParseable(responseBody.contentType())) {
mPrinter.printJsonResponse(TimeUnit.NANOSECONDS.toMillis(t2 - t1), isSuccessful,
code, header, responseBody.contentType(), bodyString, segmentList, message, url);
} else {
mPrinter.printFileResponse(TimeUnit.NANOSECONDS.toMillis(t2 - t1),
isSuccessful, code, header, segmentList, message, url);
}
}
return originalResponse;
......
......@@ -83,7 +83,8 @@ dependencies {
api rootProject.ext.dependencies["ydl-utils"]
api rootProject.ext.dependencies["ydl-js"]
api rootProject.ext.dependencies["ydl-net"]
// api rootProject.ext.dependencies["ydl-net"]
api project(':ydl-net')
api rootProject.ext.dependencies["ydl-js"]
api rootProject.ext.dependencies["ptr-lib-release"]
api(rootProject.ext.dependencies["ydl-device"]) {
......
......@@ -91,6 +91,7 @@ class GlobalConfig private constructor(var builder: Builder) {
}
apiFactory.setOkClient(okHttpClient)
HttpConfig.getInstance().initAuth()
}
}
......
package com.ydl.ydlcommon.bean
/**
* Created by haorui on 2019-11-26.
* Des:
*/
class AuthBean {
/**
* id : 1
* appId : android_zhuzhan
* appKey : 123456
* version : 4.0.00
*/
var id: Int = 0
var appId: String? = null
var appKey: String? = null
var version: String? = null
}
package com.ydl.ydlcommon.data.http.api;
import com.google.gson.Gson;
import com.ydl.ydlcommon.bean.AuthBean;
import com.ydl.ydlcommon.bean.MustUP;
import com.ydl.ydlcommon.data.http.BaseAPIResponse;
import com.ydl.ydlcommon.data.http.BaseResponse;
......@@ -8,12 +9,13 @@ import com.ydl.ydlcommon.data.http.FormatText;
import com.ydl.ydlcommon.data.http.params.ActionDataBean;
import com.ydl.ydlcommon.utils.NetworkParamsUtils;
import com.ydl.ydlnet.YDLHttpUtils;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import java.util.List;
/**
* 模块请求工具类
* Created by hgw on 2018/1/23.
......@@ -39,4 +41,12 @@ public class ApiRequestUtil {
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new Gson().toJson(actionDataParams));
return YDLHttpUtils.Companion.obtainApi(NetApiStore.class).actionDataCount(body);
}
/**
* 获取动态密钥
* @return
*/
public static Observable<BaseAPIResponse<AuthBean>> getDynamicToken() {
return YDLHttpUtils.Companion.obtainApi(NetApiStore.class).getDynamicToken();
}
}
package com.ydl.ydlcommon.data.http.api;
import com.ydl.ydlcommon.bean.AuthBean;
import com.ydl.ydlcommon.bean.MustUP;
import com.ydl.ydlcommon.data.http.BaseAPIResponse;
import com.ydl.ydlcommon.data.http.BaseResponse;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.*;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import static com.ydl.ydlcommon.base.config.AppConfigKt.YDL_DOMAIN;
import static com.ydl.ydlcommon.base.config.AppConfigKt.YDL_DOMAIN_JAVA;
......@@ -32,4 +38,8 @@ interface NetApiStore {
@POST("data/bigdata/maidian/writeMaiDianData")
Observable<BaseAPIResponse<String>> actionDataCount(@Body RequestBody body);
@Headers(YDL_DOMAIN+ YDL_DOMAIN_JAVA)
@POST("risk/key/info")
Observable<BaseAPIResponse<AuthBean>> getDynamicToken();
}
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