extends RxFragmentAc createTime = System.currentTimeMillis(); method = "onCreate"; super.onCreate(savedInstanceState); + initStart(); setContentView(getContentViewResId()); toolBar = searchToolBar(findViewById(android.R.id.content)); initView(); @@ -120,6 +121,13 @@ public abstract class BaseActivity
extends RxFragmentAc } } + /** + * 加载布局前 + */ + public void initStart(){ + + }; + /** * 初始布局 */ diff --git a/libs/src/main/java/com/libs/fragment/BaseFragment.java b/libs/src/main/java/com/libs/fragment/BaseFragment.java index 7a3330d..93ef492 100644 --- a/libs/src/main/java/com/libs/fragment/BaseFragment.java +++ b/libs/src/main/java/com/libs/fragment/BaseFragment.java @@ -12,6 +12,7 @@ import androidx.annotation.Nullable; import com.trello.rxlifecycle4.LifecycleTransformer; import com.trello.rxlifecycle4.components.RxFragment; +import com.trello.rxlifecycle4.components.support.RxDialogFragment; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -21,9 +22,9 @@ import java.lang.reflect.Type; * Created by Ming * 2020-09-09 */ -public abstract class BaseFragment
extends RxFragment implements BaseView { +public abstract class BaseFragment
extends RxDialogFragment implements BaseView { private View mRootView; - private P p; + protected P p; @Nullable diff --git a/libs/src/main/java/com/libs/network/Concise.java b/libs/src/main/java/com/libs/network/Concise.java index e0e1945..90a0e42 100644 --- a/libs/src/main/java/com/libs/network/Concise.java +++ b/libs/src/main/java/com/libs/network/Concise.java @@ -5,11 +5,14 @@ import androidx.fragment.app.FragmentActivity; import com.libs.network.interceptor.ErrCodeInterceptor; import com.libs.network.interceptor.ErrorCodeCallBack; +import com.libs.network.interceptor.ErrorCodeCallBackString; import com.libs.network.interceptor.HeaderInterceptor; +import com.libs.utils.LogUtil; import com.trello.rxlifecycle4.components.RxActivity; import com.trello.rxlifecycle4.components.RxFragment; import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -84,7 +87,13 @@ public class Concise { return this; } - public Concise setErrCodeListener(String errCode, String tokenKey, ErrorCodeCallBack tokenCallBack) { + + public Concise setErrCodeListener(String errCode, ErrorCodeCallBack tokenCallBack) { + interceptorList.add(new ErrCodeInterceptor(errCode, tokenCallBack)); + return this; + } + + public Concise setErrCodeListener(String errCode, String tokenKey, ErrorCodeCallBackString tokenCallBack) { interceptorList.add(new ErrCodeInterceptor(errCode, tokenKey, tokenCallBack)); return this; } @@ -95,6 +104,10 @@ public class Concise { public Concise build() { + Type s = getClass().getGenericSuperclass(); + LogUtil.e(s); + ParameterizedType p = (ParameterizedType) s; + Class t = (Class) p.getActualTypeArguments()[0]; Class tClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; api = new Retrofit.Builder() .client(createClient()) diff --git a/libs/src/main/java/com/libs/network/interceptor/ErrCodeInterceptor.java b/libs/src/main/java/com/libs/network/interceptor/ErrCodeInterceptor.java index 00c9f26..74155be 100644 --- a/libs/src/main/java/com/libs/network/interceptor/ErrCodeInterceptor.java +++ b/libs/src/main/java/com/libs/network/interceptor/ErrCodeInterceptor.java @@ -20,13 +20,20 @@ import okio.BufferedSource; public class ErrCodeInterceptor implements Interceptor { private String errCode; private String tokenKey; + private ErrorCodeCallBackString errorCodeCallBackString; private ErrorCodeCallBack tokenCallBack; private static final Charset UTF8 = Charset.forName("UTF-8"); - public ErrCodeInterceptor(String errCode, String tokenKey, ErrorCodeCallBack tokenCallBack) { + + public ErrCodeInterceptor(String errCode, ErrorCodeCallBack tokenCallBack) { + this.errCode = errCode; + this.tokenCallBack = tokenCallBack; + } + + public ErrCodeInterceptor(String errCode, String tokenKey, ErrorCodeCallBackString errorCodeCallBackString) { this.errCode = errCode; this.tokenKey = tokenKey; - this.tokenCallBack = tokenCallBack; + this.errorCodeCallBackString = errorCodeCallBackString; } @Override @@ -44,13 +51,18 @@ public class ErrCodeInterceptor implements Interceptor { } String bodyString = buffer.clone().readString(charset); if (bodyString.contains(errCode)) { - String newToken = tokenCallBack.token(); - if (TextUtils.isEmpty(newToken)) { - return originalResponse; + if (tokenKey == null) { + tokenCallBack.token(); + return chain.proceed(null); + } else { + String newToken = errorCodeCallBackString.token(); + if (TextUtils.isEmpty(newToken)) { + return originalResponse; + } + Request newRequest = request.newBuilder().header(tokenKey, newToken).build(); + originalResponse.body().close(); + return chain.proceed(newRequest); } - Request newRequest = request.newBuilder().header(tokenKey, newToken).build(); - originalResponse.body().close(); - return chain.proceed(newRequest); } return originalResponse; } diff --git a/libs/src/main/java/com/libs/network/interceptor/ErrorCodeCallBack.java b/libs/src/main/java/com/libs/network/interceptor/ErrorCodeCallBack.java index 832892c..83b3b8a 100644 --- a/libs/src/main/java/com/libs/network/interceptor/ErrorCodeCallBack.java +++ b/libs/src/main/java/com/libs/network/interceptor/ErrorCodeCallBack.java @@ -5,5 +5,5 @@ package com.libs.network.interceptor; * 3/2/22 */ public interface ErrorCodeCallBack { - String token(); + void token(); } diff --git a/libs/src/main/java/com/libs/network/interceptor/ErrorCodeCallBackString.java b/libs/src/main/java/com/libs/network/interceptor/ErrorCodeCallBackString.java new file mode 100644 index 0000000..acd96a0 --- /dev/null +++ b/libs/src/main/java/com/libs/network/interceptor/ErrorCodeCallBackString.java @@ -0,0 +1,9 @@ +package com.libs.network.interceptor; + +/** + * @author Ming + * 3/2/22 + */ +public interface ErrorCodeCallBackString { + String token(); +}