Commit 00356c56 by 罗翻

抽离出baselibrary,新建provider作为中间件

parent d7c77731
Showing with 299 additions and 1980 deletions
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
compileSdkVersion compile_sdk_version
buildToolsVersion build_tools_version
aaptOptions {
cruncherEnabled = false
useNewCruncher = false
......@@ -19,13 +21,19 @@ android {
}
defaultConfig {
applicationId "com.dayu.bigfish"
minSdkVersion 16
targetSdkVersion 23
versionCode 7
versionName "1.3.0"
minSdkVersion min_sdk_version
targetSdkVersion target_sdk_version
versionCode version_code
versionName verson_name
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
javaCompileOptions {
annotationProcessorOptions {
arguments = [ moduleName : project.getName() ]
}
}
}
compileOptions {
......@@ -54,6 +62,7 @@ android {
assets.srcDirs = ['src/main/assets', 'src/main/assets/']
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
......@@ -87,32 +96,18 @@ dependencies {
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
//mutidex
compile 'com.android.support:multidex:1.0.2'
compile 'com.android.support:design:25.4.0'
//greendao数据库
compile 'org.greenrobot:greendao:3.2.0'
//日期选择器
compile 'com.contrarywind:Android-PickerView:3.2.7'
//eventBus
compile 'org.greenrobot:eventbus:3.1.1'
//图片选择
compile 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.5'
//retrofit
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
//jsbridge
compile 'com.github.lzyzsd:jsbridge:1.0.4'
annotationProcessor project(':apt')
compile project(':annotation_lib')
compile project(':provider')
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
}
......@@ -226,6 +226,12 @@ public static final int *;
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
##arouter
-keep public class com.alibaba.android.arouter.routes.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
#---------------------------------3.与js互相调用的类------------------------
#---------------------------------4.反射相关的类和方法-----------------------
......@@ -236,3 +242,5 @@ public static final int *;
......@@ -199,7 +199,7 @@
android:name=".ui.QrCodeActivity"
android:screenOrientation="portrait" />
<service android:name=".api.DownloadService" />
<service android:name="com.dayu.base.api.DownloadService" />
<receiver android:name=".utils.NetworkConnectChangedReceiver">
<intent-filter>
......
......@@ -15,9 +15,9 @@ import android.widget.Toast;
import com.dayu.bigfish.ui.LoginActivity;
import com.dayu.bigfish.ui.MainActivity;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.bigfish.utils.MPermissionUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import com.dayu.widgets.CustomDialog;
import com.umeng.analytics.MobclickAgent;
import java.util.concurrent.TimeUnit;
......
package com.dayu.bigfish;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.IntentFilter;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.support.multidex.MultiDex;
import android.support.multidex.MultiDexApplication;
import com.dayu.bigfish.greendao.GreenDaoManager;
import com.dayu.bigfish.utils.LocationUtils;
import com.dayu.bigfish.utils.NetworkConnectChangedReceiver;
import com.dayu.bigfish.utils.managers.HxManager;
import com.dayu.common.BaseApplication;
import com.dayu.common.Constants;
import com.umeng.analytics.MobclickAgent;
import com.umeng.analytics.MobclickAgent.EScenarioType;
import com.umeng.commonsdk.UMConfigure;
import java.util.Stack;
/**
* 全局的相关配置
* MrWang
* on 2017/8/20.
*/
public class MyApplication extends MultiDexApplication {
public class MyApplication extends BaseApplication {
private static Context mContext;
private static Handler mHandler;
private static int mMainThreadId;
private Stack<Activity> store;
private static MyApplication myApplication;
/**
......@@ -42,9 +36,7 @@ public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
store = new Stack<>();
myApplication = this;
registerActivityLifecycleCallbacks(new SwitchBackgroundCallbacks());
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
......@@ -64,7 +56,6 @@ public class MyApplication extends MultiDexApplication {
initUM();
//初始化环信
HxManager.getInstance().init(mContext);
MultiDex.install(this);
initTextSize();
}
......@@ -89,61 +80,7 @@ public class MyApplication extends MultiDexApplication {
res.updateConfiguration(config, res.getDisplayMetrics());
}
private class SwitchBackgroundCallbacks implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
store.add(activity);
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
store.remove(activity);
}
}
/**
* 退出所有activity.
*/
public void exiteAllActivity() {
for (Activity activity : store) {
activity.finish();
}
}
/**
* 获取当前的Activity
*
* @return
*/
public Activity getCurActivity() {
return store.lastElement();
}
public static MyApplication getAppContext() {
return myApplication;
......
package com.dayu.bigfish.api;
import android.net.ParseException;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.google.gson.JsonParseException;
import org.apache.http.conn.ConnectTimeoutException;
import org.json.JSONException;
import java.net.ConnectException;
import retrofit2.HttpException;
import static com.dayu.bigfish.api.APIException.ERROR.SERVER_ERROR;
/**
* Created by luofan on 2017/11/15.
*/
public class APIException {
public static final int UNAUTHORIZED = 401;
public static final int FORBIDDEN = 403;
public static final int NOT_FOUND = 404;
public static final int REQUEST_TIMEOUT = 408;
public static final int INTERNAL_SERVER_ERROR = 500;
public static final int BAD_GATEWAY = 502;
public static final int SERVICE_UNAVAILABLE = 503;
public static final int GATEWAY_TIMEOUT = 504;
public static ResponeThrowable APIException(Throwable e) {
ResponeThrowable ex;
if (e instanceof HttpException) {
HttpException httpException = (HttpException) e;
ex = new ResponeThrowable(e, ERROR.HTTP_ERROR);
switch (httpException.code()) {
case FORBIDDEN:
ex.message = MyApplication.getContext().getString(R.string.error_token);
ex.code = FORBIDDEN;
break;
case UNAUTHORIZED:
case NOT_FOUND:
case REQUEST_TIMEOUT:
ex.message = MyApplication.getContext().getString(R.string.error_time_out);
ex.code = REQUEST_TIMEOUT;
break;
case GATEWAY_TIMEOUT:
case INTERNAL_SERVER_ERROR:
ex.message = MyApplication.getContext().getString(R.string.error_connect);
ex.code = INTERNAL_SERVER_ERROR;
break;
case BAD_GATEWAY:
case SERVICE_UNAVAILABLE:
default:
ex.message = MyApplication.getContext().getString(R.string.error_internet);
break;
}
return ex;
} else if (e instanceof ServerException) {
ServerException resultException = (ServerException) e;
ex = new ResponeThrowable(resultException, SERVER_ERROR, resultException.code);
ex.message = resultException.message;
return ex;
} else if (e instanceof JsonParseException
|| e instanceof JSONException
|| e instanceof ParseException) {
ex = new ResponeThrowable(e, ERROR.PARSE_ERROR);
ex.message = MyApplication.getContext().getString(R.string.error_parse);
return ex;
} else if (e instanceof ConnectException) {
ex = new ResponeThrowable(e, ERROR.NETWORD_ERROR);
ex.message = MyApplication.getContext().getString(R.string.error_connect);
return ex;
} else if (e instanceof javax.net.ssl.SSLHandshakeException) {
ex = new ResponeThrowable(e, ERROR.SSL_ERROR);
ex.message = MyApplication.getContext().getString(R.string.error_ssl);
return ex;
} else if (e instanceof ConnectTimeoutException) {
ex = new ResponeThrowable(e, ERROR.TIMEOUT_ERROR);
ex.message = MyApplication.getContext().getString(R.string.error_time_out);
return ex;
} else if (e instanceof java.net.SocketTimeoutException) {
ex = new ResponeThrowable(e, ERROR.TIMEOUT_ERROR);
ex.message = MyApplication.getContext().getString(R.string.error_time_out);
return ex;
} else {
ex = new ResponeThrowable(e, ERROR.UNKNOWN);
ex.message = MyApplication.getContext().getString(R.string.error_unknow);
return ex;
}
}
/**
* 约定异常
*/
class ERROR {
/**
* 接口返回错误
*/
public static final int SERVER_ERROR = 999;
/**
* 未知错误
*/
public static final int UNKNOWN = 1000;
/**
* 解析错误
*/
public static final int PARSE_ERROR = 1001;
/**
* 网络错误
*/
public static final int NETWORD_ERROR = 1002;
/**
* 协议出错
*/
public static final int HTTP_ERROR = 1003;
/**
* 证书出错
*/
public static final int SSL_ERROR = 1005;
/**
* 连接超时
*/
public static final int TIMEOUT_ERROR = 1006;
}
public static class ResponeThrowable extends Exception {
public int code;
public String message;
public String subCode;
public ResponeThrowable(Throwable throwable, int code) {
super(throwable);
this.code = code;
}
public ResponeThrowable(Throwable throwable, int code, String subCode) {
super(throwable);
this.code = code;
this.subCode = subCode;
}
}
}
package com.dayu.bigfish.api;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.base.BasePageBean;
import com.dayu.bigfish.base.BaseResponse;
import com.dayu.common.Constants;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.base.api.protocol.BaseResponse;
import com.dayu.bigfish.bean.AccountBalance;
import com.dayu.bigfish.bean.AlipayInfo;
import com.dayu.bigfish.bean.EngineerInfo;
......
package com.dayu.bigfish.api;
import android.text.TextUtils;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.base.BaseResponse;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.utils.LogUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.ObservableTransformer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Created by luofan on 2017/11/09.
*/
public class Api {
private static Retrofit mRetrofit;
private static final int DEFAULT_TIMEOUT = 60;
private static Retrofit mDownloadRetrofit;
/**
* 普通retrofit.
*
* @return
*/
public static <T> T getService(Class<T> cls) {
return getmRetrofit().create(cls);
}
/**
* 下载的retrofit.
*
* @return
*/
public static <T> T getDownloadService(Class<T> cls) {
return getmDownloadRetrofit().create(cls);
}
private static Retrofit getmRetrofit() {
if (mRetrofit == null) {
mRetrofit = getRetrofit("");
}
return mRetrofit;
}
private static Retrofit getmDownloadRetrofit() {
if (mDownloadRetrofit == null) {
mDownloadRetrofit = getRetrofit("download");
}
return mDownloadRetrofit;
}
private static Retrofit getRetrofit(String type) {
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss")
.create();
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(m -> LogUtils.i("request", m));
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
TokenInterceptord tokenInterceptord = new TokenInterceptord();
OkHttpClient.Builder build = new OkHttpClient.Builder()
.addInterceptor(httpLoggingInterceptor)
.addInterceptor(tokenInterceptord)
.readTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
.writeTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS)
.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS);
if ("download".equals(type)) {
build.addNetworkInterceptor(chain -> {
Response response = chain.proceed(chain.request());
return response
.newBuilder()
.body(new FileResponseBody(response.body()))//将自定义的ResposeBody设置给它
.build();
});
}
return new Retrofit.Builder()
.client(build.build())
.baseUrl(Constants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
/**
* 统一加上token.
*/
public static class TokenInterceptord implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
UserInfo userInfo = UserManager.getInstance().getUser();
if (userInfo != null) {
String token = userInfo.getToken();
if (!TextUtils.isEmpty(token) && !request.url().toString().contains(Constants.BASE_URL + Constants.LOGIN_URL)) {
request = request.newBuilder()
.header("token", token)
.build();
}
}
return chain.proceed(request);
}
}
public static <T> ObservableTransformer<BaseResponse<T>, T> applySchedulers() {
return (ObservableTransformer<BaseResponse<T>, T>) transformer;
}
final static ObservableTransformer transformer = new ObservableTransformer() {
@Override
public ObservableSource apply(Observable upstream) {
return upstream.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap((response) -> flatResponse((BaseResponse<Object>) response));
}
};
/**
* 对网络接口返回的Response进行分割操作
*
* @param response
* @param <T>
* @return
*/
public static <T> Observable<T> flatResponse(final BaseResponse<T> response) {
return Observable.create(e -> {
if (response.isSuccess()) {
if (!e.isDisposed()) {
e.onNext(response.getData());
}
} else {
if (!e.isDisposed()) {
e.onError(new ServerException(response.getSubCode(), response.getMsg()));
}
return;
}
if (!e.isDisposed()) {
e.onComplete();
}
});
}
}
package com.dayu.bigfish.api;
import com.dayu.bigfish.base.BasePageBean;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.bigfish.bean.AccountBalance;
import com.dayu.bigfish.bean.AlipayInfo;
import com.dayu.bigfish.bean.EngineerInfo;
......
package com.dayu.bigfish.api;
import android.app.IntentService;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import com.dayu.bigfish.ui.listener.onDownloadListener;
import com.dayu.bigfish.utils.managers.DownloadManager;
import io.reactivex.disposables.CompositeDisposable;
/**
* An {@link IntentService} subclass for handling asynchronous task requests in
* a service on a separate handler thread.
* <p>
*/
public class DownloadService extends IntentService {
private static final String ACTION_DOWNLOAD = "intentservice.action.download";
private static final String DOWNLOAD_URL = "downloadUrl";
private static final String APK_PATH = "apkPath";
private static onDownloadListener mListener;
private CompositeDisposable cd = new CompositeDisposable();
private NotificationCompat.Builder builder;
private NotificationManager notificationManager;
public DownloadService() {
super("DownloadService");
}
public static void startUpdateService(Context context, String url, String apkPath, onDownloadListener listener) {
Intent intent = new Intent(context, DownloadService.class);
intent.setAction(ACTION_DOWNLOAD);
intent.putExtra(DOWNLOAD_URL, url);
intent.putExtra(APK_PATH, apkPath);
context.startService(intent);
mListener = listener;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
protected void onHandleIntent(Intent intent) {
if (intent != null) {
String action = intent.getAction();
if (ACTION_DOWNLOAD.equals(action)) {
String url = intent.getStringExtra(DOWNLOAD_URL);
String apkPath = intent.getStringExtra(APK_PATH);
handleUpdate(url, apkPath);
}
}
}
private void handleUpdate(String url, String apkPath) {
DownloadManager.download(this, url, apkPath, cd, mListener);
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
package com.dayu.bigfish.api;
import com.dayu.bigfish.bean.event.DownloadBean;
import org.greenrobot.eventbus.EventBus;
import java.io.IOException;
import okhttp3.MediaType;
import okhttp3.ResponseBody;
import okio.Buffer;
import okio.BufferedSource;
import okio.ForwardingSource;
import okio.Okio;
import okio.Source;
/**
* 下载文件
* Created by luofan on 2017/11/27.
*/
public class FileResponseBody extends ResponseBody {
private ResponseBody responseBody;
private BufferedSource bufferedSource;
public FileResponseBody(ResponseBody responseBody) {
this.responseBody = responseBody;
}
@Override
public MediaType contentType() {
return responseBody.contentType();
}
@Override
public long contentLength() {
return responseBody.contentLength();
}
@Override
public BufferedSource source() {
if (bufferedSource == null) {
bufferedSource = Okio.buffer(source(responseBody.source()));
}
return bufferedSource;
}
private Source source(Source source) {
return new ForwardingSource(source) {
long totalBytesRead = 0L;
@Override
public long read(Buffer sink, long byteCount) throws IOException {
long bytesRead = super.read(sink, byteCount);
// read() returns the number of bytes read, or -1 if this source is exhausted.
totalBytesRead += bytesRead != -1 ? bytesRead : 0;
EventBus.getDefault().post(new DownloadBean(contentLength(), totalBytesRead));
return bytesRead;
}
};
}
}
package com.dayu.bigfish.api;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
/**
* Created by luofan on 2017/11/15.
* 错误码统一处理类.
*/
public class ServerException extends Exception {
public String code;
public String message;
public ServerException(String code, String message) {
this.code = code;
this.message = message;
processCode(code);
}
private void processCode(String code) {
if (code == null) {
message = MyApplication.getContext().getString(R.string.get_info_failed);
return;
}
switch (code) {
/** order相关错误*/
case "ORDER0001":
message = MyApplication.getContext().getString(R.string.order_not_exite);
break;
case "ORDER0002":
message = MyApplication.getContext().getString(R.string.order_receive_already);
break;
case "ORDER0003":
message = MyApplication.getContext().getString(R.string.order_cancle_not_receive);
break;
case "ORDER0004":
message = MyApplication.getContext().getString(R.string.order_cancle_not_subcribe);
break;
case "ORDER0005":
message = MyApplication.getContext().getString(R.string.order_cancle_not_begin);
break;
case "ORDER0006":
message = MyApplication.getContext().getString(R.string.order_cancle_not_process);
break;
case "LOGISTICS0001":
message = MyApplication.getContext().getString(R.string.query_logistics_failed);
break;
/** 用户相关错误*/
case "USER0002":
message = MyApplication.getContext().getString(R.string.sms_code_unsend_or_expire);
break;
case "USER0004":
message = MyApplication.getContext().getString(R.string.not_engineer);
break;
case "USER0005":
message = MyApplication.getContext().getString(R.string.account_frozen);
break;
case "USER0020":
message = MyApplication.getContext().getString(R.string.sms_code_unsend_or_expire);
break;
case "USER0021":
message = MyApplication.getContext().getString(R.string.sms_code_error);
break;
case "USER0003":
case "USER0023":
message = MyApplication.getContext().getString(R.string.engineer_acount_notavialibe);
break;
case "USER0024":
message = MyApplication.getContext().getString(R.string.engineer_not_have_site);
break;
case "USER0062":
message = MyApplication.getContext().getString(R.string.identity_is_error);
break;
case "USER0051":
message = MyApplication.getContext().getString(R.string.not_audite_aviliable);
break;
/** 账户相关*/
case "SETTLEMENT0015":
message = Constants.NOT_SHOW;
break;
case "SETTLEMENT0001":
message = MyApplication.getContext().getString(R.string.perameter_is_null);
break;
/**全局错误*/
case "GLOBAL0001":
message = "未知错误GLOBAL0001"; //参数错误
break;
case "GLOBAL0002":
message = "未知错误GLOBAL0002"; //格式化序列化错误
break;
case "GLOBAL0003":
message = "未知错误GLOBAL0003"; //业务错误
break;
case "GLOBAL0004":
message = "未知错误GLOBAL0004"; //全局错误
break;
case "GLOBAL0100":
message = "未知错误GLOBAL0100"; //远程调用失败
break;
case "GLOBAL0101":
message = "验证码错误"; //短信验证失败
break;
case "GLOBAL0102":
message = "未知错误GLOBAL0102"; // unknowable error type
break;
case "GLOBAL0103":
message = "验证码错误";
break;
case "GLOBAL0104":
message = "用户名和密码错误";
break;
case "GLOBAL0400":
message = "未知错误GLOBAL0400"; //Bad Request!
break;
case "GLOBAL0406":
message = "未知错误GLOBAL0406"; //not Acceptable
break;
case "GLOBAL0405":
message = "未知错误GLOBAL0405"; //Method Not Allowed
break;
case "GLOBAL0500":
message = "未知错误GLOBAL0500"; //Method Not Allowed
break;
case "GLOBAL1001":
message = "未知错误GLOBAL1001"; //空指针异常
break;
case "GLOBAL1002":
message = "未知错误GLOBAL1002"; //类型转换异
break;
case "GLOBAL1003":
message = "未知错误GLOBAL1003"; //IO异常
break;
case "GLOBAL1004":
message = "未知错误GLOBAL1004"; //未知方法异
break;
case "GLOBAL1005":
message = "未知错误GLOBAL1005"; //数据越界异
break;
default:
message = MyApplication.getContext().getString(R.string.get_info_failed);
break;
}
}
}
package com.dayu.bigfish.base;
import android.content.Intent;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
import com.dayu.bigfish.BR;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.ui.LoginActivity;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.bigfish.utils.InstanceUtil;
import com.dayu.bigfish.utils.ProgressUtil;
import com.dayu.bigfish.utils.ToastUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import com.hyphenate.chat.EMClient;
import java.lang.reflect.ParameterizedType;
/**
* Created by luofan on 17/11/02.
*/
public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBinding> extends DataBindingActivity<B>
implements BaseView {
public P mPresenter;
private boolean isDialogShow = false;
@Override
protected void initPresenter() {
super.initPresenter();
if (this.getClass().getGenericSuperclass() instanceof ParameterizedType &&
((ParameterizedType) (this.getClass().getGenericSuperclass())).getActualTypeArguments().length > 0) {
Class mPresenterClass = (Class) ((ParameterizedType) (this.getClass()
.getGenericSuperclass())).getActualTypeArguments()[0];
mPresenter = InstanceUtil.getInstance(mPresenterClass);
if (mPresenter != null) {
mPresenter.setView(this);
mBind.setVariable(BR.presenter, mPresenter);
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mPresenter != null) {
mPresenter.onDetached();
}
}
public void showToast(String msg) {
ToastUtils.showShortToast(msg);
}
public void showToast(int resId) {
ToastUtils.showShortToast(resId);
}
public void showDialog() {
ProgressUtil.startLoad(this);
}
public void showDialog(String str) {
ProgressUtil.startLoad(this, str);
}
public void hideDialog() {
ProgressUtil.stopLoad();
}
public void dumpBack() {
mActivity.finish();
}
public void dumpBack(int requestCode, Intent intent) {
mActivity.setResult(requestCode, intent);
mActivity.finish();
}
public void startActivity(Class cls) {
mActivity.startActivity(new Intent(mActivity, cls));
}
public void startActivityForIntent(Intent intent) {
mActivity.startActivity(intent);
}
public void startActivity(Class<?> clz, Bundle bundle) {
Intent intent = new Intent(mActivity, clz);
if (bundle != null) {
intent.putExtra(Constants.BUNDLE, bundle);
}
mActivity.startActivity(intent);
}
public void startActivityForReult(Class<?> clz, Bundle bundle, int requestCode) {
Intent intent = new Intent(mActivity, clz);
if (bundle != null) {
intent.putExtra(Constants.BUNDLE, bundle);
}
mActivity.startActivityForResult(intent, requestCode);
}
public void startActivityForReult(Class<?> clz, int requestCode) {
mActivity.startActivityForResult(new Intent(mActivity, clz), requestCode);
}
public void startActvityAndFinish(Class<?> clz) {
mActivity.startActivity(new Intent(mActivity, clz));
mActivity.finish();
}
public void startActivityAndFinish(Class<?> clz, Bundle bundle) {
Intent intent = new Intent(mActivity, clz);
if (bundle != null) {
intent.putExtra(Constants.BUNDLE, bundle);
}
mActivity.startActivity(intent);
mActivity.finish();
}
public Bundle getBundle() {
return getIntent().getBundleExtra(Constants.BUNDLE);
}
/**
* token超时提示重新登录.
*/
public void showLoginDialog() {
if (isDialogShow) {
return;
}
CustomDialog mDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.login_state_no)
, (dialog, confirm) -> {
if (confirm) {
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
Intent intent = new Intent(mActivity, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity.startActivity(intent);
}
dialog.dismiss();
isDialogShow = false;
});
mDialog.setTitle(getString(R.string.notice))
.setPositiveButton(getString(R.string.login_again))
.setOneButton(true);
mDialog.show();
isDialogShow = true;
}
}
package com.dayu.bigfish.base;
import android.content.Intent;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
import com.dayu.bigfish.BR;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.ui.LoginActivity;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.bigfish.utils.InstanceUtil;
import com.dayu.bigfish.utils.ProgressUtil;
import com.dayu.bigfish.utils.ToastUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import com.hyphenate.chat.EMClient;
import java.lang.reflect.ParameterizedType;
/**
* Created by luo on 2017/11/14.
*/
public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBinding> extends DataBindingFragment<B>
implements BaseView {
public P mPresenter;
private boolean isDialogShow = false;
@Override
protected void initPresenter() {
super.initPresenter();
if (this.getClass().getGenericSuperclass() instanceof ParameterizedType &&
((ParameterizedType) (this.getClass().getGenericSuperclass())).getActualTypeArguments().length > 0) {
Class mPresenterClass = (Class) ((ParameterizedType) (this.getClass()
.getGenericSuperclass())).getActualTypeArguments()[0];
mPresenter = InstanceUtil.getInstance(mPresenterClass);
if (mPresenter != null) {
mPresenter.setView(this);
mBind.setVariable(BR.presenter, mPresenter);
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mPresenter != null) mPresenter.onDetached();
}
public void dumpBack() {
mActivity.finish();
}
public void dumpBack(int requestCode, Intent intent) {
mActivity.setResult(requestCode, intent);
mActivity.finish();
}
public void showToast(int resId) {
ToastUtils.showShortToast(resId);
}
public void showToast(String msg) {
ToastUtils.showShortToast(msg);
}
public void showDialog() {
ProgressUtil.startLoad(mActivity);
}
public void showDialog(String str) {
ProgressUtil.startLoad(mActivity, str);
}
public void hideDialog() {
ProgressUtil.stopLoad();
}
public void startActivity(Class cls) {
mActivity.startActivity(new Intent(mActivity, cls));
}
public void startActivityForIntent(Intent intent) {
mActivity.startActivity(intent);
}
public void startActivity(Class<?> clz, Bundle bundle) {
Intent intent = new Intent(mActivity, clz);
if (bundle != null) {
intent.putExtra(Constants.BUNDLE, bundle);
}
mActivity.startActivity(intent);
}
public void startActivityForReult(Class<?> clz, int requestCode) {
mActivity.startActivityForResult(new Intent(mActivity, clz), requestCode);
}
public void startActivityForReult(Class<?> clz, Bundle bundle, int requestCode) {
Intent intent = new Intent(mActivity, clz);
if (bundle != null) {
intent.putExtra(Constants.BUNDLE, bundle);
}
mActivity.startActivityForResult(intent, requestCode);
}
public void startActvityAndFinish(Class<?> clz) {
mActivity.startActivity(new Intent(mActivity, clz));
mActivity.finish();
}
public void startActivityAndFinish(Class<?> clz, Bundle bundle) {
Intent intent = new Intent(mActivity, clz);
if (bundle != null) {
intent.putExtra(Constants.BUNDLE, bundle);
}
mActivity.startActivity(intent);
mActivity.finish();
}
public Bundle getBundle() {
return getArguments();
}
public void showLoginDialog() {
if (isDialogShow) {
return;
}
CustomDialog mDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.login_state_no)
, (dialog, confirm) -> {
if (confirm) {
UserManager.getInstance().clearUserInfo();
EMClient.getInstance().logout(true);
UserManager.getInstance().clearUserInfo();
Intent intent = new Intent(mActivity, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity.startActivity(intent);
}
dialog.dismiss();
isDialogShow = false;
});
mDialog.setTitle(getString(R.string.notice))
.setPositiveButton(getString(R.string.login_again))
.setOneButton(true);
mDialog.show();
isDialogShow = true;
}
}
package com.dayu.bigfish.base;
import android.databinding.ObservableField;
/**
* Created by luofan on 2017/12/23.
*/
public abstract class BaseListPresenter<V> extends BasePresenter<V> {
/**
* 如果有下拉刷新,子类必须重写此方法.
*/
public void refresh() {
}
/**
* 如果有上拉加载,子类必须重写此方法.
*/
public void loadMore() {
}
/**
* 如果有头布局,子类重写此方法.
*
* @return 头布局数据源.
*/
public ObservableField<Object> getHeaderDatas() {
return null;
}
/**
*
* @return recy数据源.
*/
public abstract ObservableField<Object> getSourceDatas();
}
package com.dayu.bigfish.base;
import java.util.List;
/**
* 分页的basebean.
* Created by luofan on 2017/11/14.
*/
public class BasePageBean<T>{
private int pageNo;
private int pageSize;
private int totalRows;
private int totalPages;
private int previousPageNo;
private int nextPageNo;
private List<T> data;
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getPreviousPageNo() {
return previousPageNo;
}
public void setPreviousPageNo(int previousPageNo) {
this.previousPageNo = previousPageNo;
}
public int getNextPageNo() {
return nextPageNo;
}
public void setNextPageNo(int nextPageNo) {
this.nextPageNo = nextPageNo;
}
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
}
package com.dayu.bigfish.base;
import android.util.Log;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.api.APIException;
import com.dayu.bigfish.utils.ProgressUtil;
import io.reactivex.Observer;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
/**
* Created by luofan on 17/11/02.
*/
public abstract class BasePresenter<V> {
protected static final String TAG = "BasePresenter";
protected V mView;
protected CompositeDisposable mComDisposable = new CompositeDisposable();
public void setView(V v) {
this.mView = v;
this.onAttached();
}
public abstract void onAttached();
public void onDetached() {
mComDisposable.dispose();
}
/**
* 创建观察者
*
* @param consumer
* @return
*/
public <M> Observer<M> baseObserver(final Consumer<? super M> consumer) {
return new Observer<M>() {
@Override
public void onSubscribe(Disposable d) {
mComDisposable.add(d);
}
@Override
public void onNext(M o) {
ProgressUtil.stopLoad();
try {
consumer.accept(o);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable e) {
ProgressUtil.stopLoad();
processException(e);
}
@Override
public void onComplete() {
}
};
}
/**
* 创建带错误的观察者
*
* @param consumer
* @return
*/
public <M> Observer<M> baseObserver(final Consumer<? super M> consumer, final Consumer<APIException.ResponeThrowable> tconsumer) {
return new Observer<M>() {
@Override
public void onSubscribe(Disposable d) {
mComDisposable.add(d);
}
@Override
public void onNext(M o) {
ProgressUtil.stopLoad();
try {
consumer.accept(o);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable e) {
Log.d("reguest+error", e.toString());
APIException.ResponeThrowable exception = processException(e);
ProgressUtil.stopLoad();
try {
tconsumer.accept(exception);
} catch (Exception e1) {
e1.printStackTrace();
}
}
@Override
public void onComplete() {
}
};
}
private APIException.ResponeThrowable processException(Throwable e) {
APIException.ResponeThrowable exception = APIException.APIException(e);
int code = exception.code;
String message = exception.message;
if (code == APIException.FORBIDDEN) {
showLoginDialog();
return exception;
}
if (!Constants.NOT_SHOW.equals(message) && mView instanceof BaseView) {
((BaseView) mView).showToast(message);
}
return exception;
}
/**
* 重新登录的提示框.
*/
private void showLoginDialog() {
if (mView instanceof BaseActivity) {
((BaseActivity) mView).showLoginDialog();
} else if (mView instanceof BaseFragment) {
((BaseFragment) mView).showLoginDialog();
}
}
public void dumpBack() {
if (mView instanceof BaseActivity) {
((BaseActivity) mView).dumpBack();
}
}
}
package com.dayu.bigfish.base;
/**
* Created by luofan on 2016/07/14.
*/
public class BaseResponse<T> {
private int code;
private String subCode;
private String msg;
private T data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public boolean isSuccess() {
return code == 0;
}
public String getSubCode() {
return subCode;
}
public void setSubCode(String subCode) {
this.subCode = subCode;
}
}
package com.dayu.bigfish.base;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.StringRes;
/**
* Created by luofan on 17/11/02.
*/
public interface BaseView {
void showToast(@StringRes int resId);
void showToast(String str);
void showDialog();
void showDialog(String str);
void hideDialog();
void dumpBack();
void dumpBack(int requestCode, Intent intent);
void startActivity(Class cls);
void startActivityForIntent(Intent intent);
void startActivity(Class<?> clz, Bundle bundle);
void startActvityAndFinish(Class<?> clz);
void startActivityForReult(Class<?> clz, int requestCode);
void startActivityForReult(Class<?> clz, Bundle bundle, int requestCode);
void startActivityAndFinish(Class<?> clz, Bundle bundle);
Bundle getBundle();
}
package com.dayu.bigfish.base;
import android.databinding.ViewDataBinding;
import android.support.v7.widget.RecyclerView;
/**
* Created by luofan on 2017/12/9.
*/
public class BaseViewHolder<B extends ViewDataBinding> extends RecyclerView.ViewHolder {
public final B mBind;
public BaseViewHolder(B t) {
super(t.getRoot());
mBind = t;
}
}
package com.dayu.bigfish.base;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.support.annotation.LayoutRes;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.dayu.bigfish.BR;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.ui.listener.OnChildClickListener;
import com.dayu.bigfish.ui.listener.OnItemClickListener;
import java.util.ArrayList;
import java.util.List;
/**
* Created by luofan on 2017/12/9.
*/
@SuppressWarnings("unchecked")
public class CoreAdapter<M, B> extends RecyclerView.Adapter<BaseViewHolder> {
private TypeSelector<M> mTypeSelector;
private List<M> mItemList = new ArrayList<>();
public boolean isHasMore = true;
private List<Item> mHeadTypeDatas = new ArrayList<>();
private List<Item> mFootTypeDatas = new ArrayList<>();
private int viewType;
private int mFooterViewType = R.layout.lrecycler_foot;
protected Context mContext;
private int mTotalPage = 0;
private int mPage = 1;
public boolean isLoadFial = false;
private OnItemClickListener mOnItemClickListener;
protected BaseListPresenter mPresenter;
protected OnChildClickListener mOnChildClickListener;
private List<M> mOldDatas = new ArrayList<>();
@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
this.mContext = parent.getContext();
return new BaseViewHolder(DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), viewType, parent, false));
}
public CoreAdapter(boolean needFoot) {
if (needFoot) {
mFootTypeDatas.add(new Item(mFooterViewType, true));
}
}
public CoreAdapter(boolean needFoot, int viewType) {
if (needFoot) {
mFootTypeDatas.add(new Item(mFooterViewType, true));
}
this.viewType = viewType;
}
@Override
public void onBindViewHolder(BaseViewHolder holder, int position) {
Object item = getItem(position);
if (mPresenter != null) {
holder.mBind.setVariable(BR.presenter, mPresenter);
}
holder.mBind.setVariable(BR.item, item);
holder.mBind.setVariable(BR.position, position);
holder.mBind.executePendingBindings();
if (position >= mHeadTypeDatas.size() && position < (mHeadTypeDatas.size() + mFootTypeDatas.size() + mItemList.size())) {
if (item != null && !(item instanceof Boolean)) {
onBind((B) holder.mBind, (M) item, position);
holder.mBind.getRoot().setOnClickListener(v -> {
if (mOnItemClickListener != null) {
mOnItemClickListener.OnItemClick(item, holder.mBind);
}
});
}
}
}
public void setViewType(@LayoutRes int type) {
this.viewType = type;
}
public void setTypeSelector(TypeSelector mTypeSelector) {
this.mTypeSelector = mTypeSelector;
this.viewType = Constants.FLAG_MULTI_VH;
}
public void addHeadViewType(@LayoutRes int i, Object data) {
for (Item a : mHeadTypeDatas) {
if (a.type == i) {
return;
}
}
mHeadTypeDatas.add(new Item(i, data));
}
public void addFooterViewType(@LayoutRes int i, Object data) {
mFootTypeDatas.add(mFootTypeDatas.size() - 1, new Item(i, data));
}
public Object getItem(int position) {
if (position < mHeadTypeDatas.size()) {
return mHeadTypeDatas.get(position).data;
} else if (position >= (mHeadTypeDatas.size() + mItemList.size())) {
int index = position - (mHeadTypeDatas.size() + mItemList.size());
if (mFootTypeDatas.get(index).type == mFooterViewType && !isHasMore) {
if (isLoadFial) {
return null;
} else {
return false;
}
} else {
if (isLoadFial) {
return null;
} else {
return mFootTypeDatas.get(index).data;
}
}
} else {
return mItemList.get(position - mHeadTypeDatas.size());
}
}
@Override
public int getItemViewType(int position) {
if (position < mHeadTypeDatas.size()) {
return mHeadTypeDatas.get(position).type;
} else if (position >= (mHeadTypeDatas.size() + mItemList.size())) {
return mFootTypeDatas.get(position - (mHeadTypeDatas.size() + mItemList.size())).type;
} else {
return viewType == Constants.FLAG_MULTI_VH ?
mTypeSelector.getType((M) getItem(position)) :
viewType;
}
}
public void addPageData(BasePageBean<M> data) {
if (data == null) {
isHasMore = false;
notifyDataSetChanged();
return;
}
mPage += 1;
mTotalPage = data.getTotalPages();
if (mPage >= mTotalPage) {
isHasMore = false;
} else {
isHasMore = true;
}
this.mItemList.addAll(data.getData());
notifyDataSetChanged();
}
public void setPageData(BasePageBean<M> data) {
mOldDatas = mItemList;
mPage = 1;
mTotalPage = data.getTotalPages();
if (mPage >= mTotalPage) {
isHasMore = false;
} else {
isHasMore = true;
}
this.mItemList = data.getData();
// DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new DiffCallBack(mOldDatas, mItemList), true);
// diffResult.dispatchUpdatesTo(this);
notifyDataSetChanged();
}
public void setData(List<M> data) {
this.mItemList = data;
notifyDataSetChanged();
}
/**
* 是否允许加载更多.
*
* @param flag
*/
public void setLoadMore(boolean flag) {
isHasMore = flag;
if (mPage >= mTotalPage || mTotalPage == 0) {
isHasMore = false;
}
}
@Override
public int getItemCount() {
return mItemList.size() + mHeadTypeDatas.size() + mFootTypeDatas.size();
}
public void setPresenter(BaseListPresenter presenter) {
mPresenter = presenter;
}
public class Item {
int type;
Object data;
public Item(int type, Object data) {
this.type = type;
this.data = data;
}
}
/**
* 继承coreadapter需要重写此方法.
*
* @param holder
* @param item
* @param position
*/
protected void onBind(B holder, M item, int position) {
}
public void setOnItemClickListener(OnItemClickListener<M, B> listener) {
mOnItemClickListener = listener;
}
public void setOnChildClickListener(OnChildClickListener listener) {
mOnChildClickListener = listener;
}
/**
* 获取数据源.
*
* @return
*/
public List<M> getDatas() {
return mItemList;
}
public Context getContext() {
return mContext;
}
}
\ No newline at end of file
package com.dayu.bigfish.base;
import android.app.Activity;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import com.umeng.analytics.MobclickAgent;
public abstract class DataBindingActivity<B extends ViewDataBinding> extends AppCompatActivity {
public Activity mActivity;
public B mBind;
private String mClassName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View rootView = getLayoutInflater().inflate(this.getLayoutId(), null, false);
mBind = DataBindingUtil.bind(rootView);
this.setContentView(rootView);
mActivity = this;
mClassName = mActivity.getClass().getSimpleName();
initPresenter();
initView();
}
@Override
public void onResume() {
super.onResume();
if (!"MainActivity".equals(mActivity.getClass().getSimpleName())
&& !"OrderDetailsActivity".equals(mActivity.getClass().getSimpleName())) {
MobclickAgent.onPageStart(mClassName);
}
MobclickAgent.onResume(mActivity);
}
@Override
public void onPause() {
super.onPause();
if (!"MainActivity".equals(mActivity.getClass().getSimpleName())
&& !"OrderDetailsActivity".equals(mActivity.getClass().getSimpleName())) {
MobclickAgent.onPageEnd(mClassName);
}
MobclickAgent.onPause(mActivity);
}
protected void initPresenter() {
}
public abstract int getLayoutId();
public abstract void initView();
}
package com.dayu.bigfish.base;
import android.app.Activity;
import android.content.Context;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.disposables.CompositeDisposable;
public abstract class DataBindingFragment<B extends ViewDataBinding> extends Fragment {
public B mBind;
protected Activity mActivity;
private boolean isVisible; //是否可见状态
private boolean isPrepared; //标志位,View已经初始化完成。
private boolean isFirstLoad = true;
protected CompositeDisposable mDisposable = new CompositeDisposable();
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
onAttachToContext((Activity) context);
}
}
@SuppressWarnings("deprecation")
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
onAttachToContext(activity);
}
}
private void onAttachToContext(Activity context) {
mActivity = context;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isFirstLoad = true;
isPrepared = true;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(getLayoutId(), container, false);
mBind = DataBindingUtil.bind(view);
initPresenter();
initView();
return view;
}
public abstract void initView();
public abstract int getLayoutId();
protected void initPresenter() {
}
/**
* 如果是与ViewPager一起使用,调用的是setUserVisibleHint
*/
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (getUserVisibleHint()) {
isVisible = true;
//显示加载效果,延时
mDisposable.add(Observable.timer(300, TimeUnit.MILLISECONDS).subscribe(aLong -> onVisible()));
} else {
isVisible = false;
onInvisible();
}
}
/**
* 如果是通过FragmentTransaction的show和hide的方法来控制显示,调用的是onHiddenChanged.
* 若是初始就show的Fragment 为了触发该事件 需要先hide再show
*/
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!hidden) {
isVisible = true;
onVisible();
} else {
isVisible = false;
onInvisible();
}
}
protected void onVisible() {
doInit();
}
protected void onInvisible() {
}
protected void doInit() {
if (!isPrepared || !isVisible || !isFirstLoad) {
return;
}
isFirstLoad = false;
lazyLoad();
}
protected void lazyLoad() {
}
@Override
public void onDetach() {
super.onDetach();
mDisposable.dispose();
}
}
package com.dayu.bigfish.base;
/**
* Created by luofan on 2017/12/9.
*/
public interface TypeSelector<M> {
int getType(M m);
}
......@@ -169,7 +169,7 @@ public class EngineerInfo extends BaseObservable implements Serializable {
public void setMobile(String mobile) {
this.mobile = mobile;
notifyPropertyChanged(BR.mobile);
// notifyPropertyChanged(BR.mobile);
}
public Object getSiteId() {
......
package com.dayu.bigfish.bean.event;
/**
* Created by luofan on 2017/11/27.
* 下载进度.
*/
public class DownloadBean {
private long total;
private long bytesReaded;
public DownloadBean(long total, long bytesReaded) {
this.total = total;
this.bytesReaded = bytesReaded;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public long getBytesReaded() {
return bytesReaded;
}
public void setBytesReaded(long bytesReaded) {
this.bytesReaded = bytesReaded;
}
}
package com.dayu.bigfish.presenter;
import com.dayu.bigfish.base.BaseListPresenter;
import com.dayu.base.ui.presenter.BaseListPresenter;
/**
* Created by luofan on 2017/12/22.
......
package com.dayu.bigfish.presenter.Withdrawals;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.UserInfo;
......
package com.dayu.bigfish.presenter.accountbalance;
import com.dayu.bigfish.base.BaseListPresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.ui.WithdrawalsActivity;
......
package com.dayu.bigfish.presenter.commonSubmite;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
......
......@@ -5,12 +5,12 @@ import android.os.Bundle;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.event.RefreshApplyPart;
import com.dayu.bigfish.utils.ToastUtils;
import com.dayu.bigfish.utils.UIUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.bigfish.utils.UtilsUserAccountMatcher;
import com.dayu.bigfish.utils.managers.UserManager;
......
package com.dayu.bigfish.presenter.homefirsttab;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
package com.dayu.bigfish.presenter.homefourtab;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.bean.EngineerInfo;
import com.dayu.bigfish.bean.OrderRecord;
import com.dayu.bigfish.bean.TodayAchievement;
import com.dayu.bigfish.bean.TodayBalance;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
package com.dayu.bigfish.presenter.homeorder;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.bean.Tab;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
package com.dayu.bigfish.presenter.kaaddress;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.KaAddress;
......
package com.dayu.bigfish.presenter.login;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.common.BaseView;
import com.dayu.widgets.listener.OnCloseListener;
/**
......@@ -23,7 +23,7 @@ public interface LoginContract {
*/
void changeVoiceCodeBtn();
void showLoginDialog(CustomDialog.OnCloseListener listener);
void showLoginDialog(OnCloseListener listener);
}
abstract class Presenter extends BasePresenter<View> {
......
......@@ -11,7 +11,7 @@ import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.ui.AgreementActivity;
import com.dayu.bigfish.ui.MainActivity;
import com.dayu.bigfish.ui.PersonInfoActivity;
import com.dayu.bigfish.utils.ToastUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.bigfish.utils.UtilsUserAccountMatcher;
import com.dayu.bigfish.utils.managers.UserManager;
import com.hyphenate.EMCallBack;
......
package com.dayu.bigfish.presenter.logisticsinfo;
import com.dayu.bigfish.base.BaseListPresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.api.ApiFactory;
/**
......
package com.dayu.bigfish.presenter.main;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.bean.VersionInfo;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
......@@ -3,12 +3,12 @@ package com.dayu.bigfish.presenter.main;
import android.databinding.ObservableField;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.utils.AppUtils;
import com.dayu.bigfish.utils.SPUtils;
import com.dayu.utils.SPUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import org.json.JSONException;
......
package com.dayu.bigfish.presenter.message;
import com.dayu.bigfish.base.BaseListPresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.bigfish.bean.NewMessage;
/**
......@@ -34,16 +34,6 @@ public interface messageContract {
public abstract void readMessage(int id, int read);
/**
* 格式化时间.
*
* @param time
* @param srcPattern
* @param pattern
* @return
*/
public abstract String FomartTime(String time, String srcPattern, String pattern);
/**
* 阅读信息并跳转.
*
* @param message
......
......@@ -5,29 +5,22 @@ import android.os.Bundle;
import android.view.View;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.NewMessage;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.ui.MessageDetailActivity;
import com.dayu.bigfish.ui.fragment.MessageFragment;
import com.dayu.bigfish.utils.UIUtils;
import com.dayu.bigfish.utils.UtilsDate;
import com.dayu.bigfish.utils.managers.UserManager;
import com.dayu.common.Constants;
import com.umeng.analytics.MobclickAgent;
import org.json.JSONException;
import org.json.JSONObject;
import java.text.ParseException;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import static com.dayu.bigfish.utils.UtilsDate.LONG_TIME_FORMAT_TWO;
/**
* Created by luofan
* on 2017/11/8.
......@@ -85,24 +78,24 @@ public class messagePresenter extends messageContract.Presenter {
ApiFactory.readMessage(requestBody).subscribe(baseObserver(aBoolean -> {}));
}
@Override
public String FomartTime(String time, String srcPattern, String pattern) {
try {
if (pattern.equals(LONG_TIME_FORMAT_TWO)) {
return UtilsDate.changeFormat(time, srcPattern, pattern);
}
if (UtilsDate.IsToday(time)) {
return UIUtils.getString(R.string.today);
} else if (UtilsDate.IsNextday(time)) {
return UIUtils.getString(R.string.tomorrow);
} else {
return UtilsDate.changeFormat(time, srcPattern, pattern);
}
} catch (ParseException e) {
e.printStackTrace();
return "";
}
}
// @Override
// public String FomartTime(String time, String srcPattern, String pattern) {
// try {
// if (pattern.equals(LONG_TIME_FORMAT_TWO)) {
// return UtilsDate.changeFormat(time, srcPattern, pattern);
// }
// if (UtilsDate.IsToday(time)) {
// return UIUtils.getString(R.string.today);
// } else if (UtilsDate.IsNextday(time)) {
// return UIUtils.getString(R.string.tomorrow);
// } else {
// return UtilsDate.changeFormat(time, srcPattern, pattern);
// }
// } catch (ParseException e) {
// e.printStackTrace();
// return "";
// }
// }
@Override
public void readAndDump(NewMessage message, View view) {
......
package com.dayu.bigfish.presenter.modifyperson;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import com.dayu.widgets.listener.OnCloseListener;
/**
* Created by luo on 2016/8/4.
......@@ -15,7 +15,7 @@ public interface ModifyPersonContract {
void showTip();
void showSubmiteDialog(CustomDialog.OnCloseListener listener);
void showSubmiteDialog(OnCloseListener listener);
}
......
......@@ -6,7 +6,7 @@ import android.os.Bundle;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
......
package com.dayu.bigfish.presenter.myhead;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
package com.dayu.bigfish.presenter.orderdetail;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.bean.OrderDetail;
import com.dayu.common.BaseView;
/**
* Created by luo
......
......@@ -3,7 +3,7 @@ package com.dayu.bigfish.presenter.orderdetail;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.api.ApiFactory;
/**
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.UserInfo;
......
package com.dayu.bigfish.presenter.orderdoing;
import com.dayu.bigfish.base.BaseView;
import com.dayu.common.BaseView;
import com.dayu.bigfish.presenter.BaseOrderPresenter;
import io.reactivex.Observable;
......
package com.dayu.bigfish.presenter.orderpart;
import com.dayu.bigfish.base.BaseListPresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
import com.dayu.bigfish.bean.OrderPart;
import io.reactivex.Observable;
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
......@@ -13,7 +13,7 @@ import com.dayu.bigfish.bean.OrderPart;
import com.dayu.bigfish.ui.CommonSubmiteActivity;
import com.dayu.bigfish.ui.LogisticsInfoActivity;
import com.dayu.bigfish.ui.ReturnPartActivity;
import com.dayu.bigfish.utils.UIUtils;
import com.dayu.utils.UIUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import com.umeng.analytics.MobclickAgent;
......
package com.dayu.bigfish.presenter.personinfo;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo on 2016/8/4.
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.EngineerInfo;
......
package com.dayu.bigfish.presenter.processorder;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import java.util.ArrayList;
import java.util.List;
......
......@@ -7,7 +7,7 @@ import android.os.Bundle;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
......
package com.dayu.bigfish.presenter.receivingorder;
import com.dayu.bigfish.base.BaseView;
import com.dayu.common.BaseView;
import com.dayu.bigfish.presenter.BaseOrderPresenter;
......
......@@ -4,11 +4,11 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.base.BasePageBean;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.bigfish.bean.Order;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.bean.event.RefreshApoiment;
......
......@@ -2,8 +2,8 @@ package com.dayu.bigfish.presenter.returnpart;
import com.bigkoo.pickerview.OptionsPickerView;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import java.util.List;
......
......@@ -4,7 +4,7 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.OrderPart;
import com.dayu.bigfish.bean.ShipperCompany;
......
package com.dayu.bigfish.presenter.serverinstruction;
import com.dayu.bigfish.base.BaseListPresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
/**
* Created by luo
......
......@@ -4,9 +4,9 @@ import android.databinding.ObservableField;
import android.os.Bundle;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.base.BasePageBean;
import com.dayu.base.api.protocol.BasePageBean;
import com.dayu.bigfish.bean.ServerInstruction;
import com.dayu.bigfish.ui.WebViewActivity;
......
package com.dayu.bigfish.presenter.setting;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
import com.dayu.widgets.listener.OnCloseListener;
/**
* Created by luo on 2016/8/4.
......@@ -15,7 +15,7 @@ public interface SettingContract {
/**
* 清除缓存.
*/
void showCachDialog(CustomDialog.OnCloseListener listener);
void showCachDialog(OnCloseListener listener);
}
......
......@@ -8,7 +8,7 @@ import android.os.Environment;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
......@@ -18,8 +18,8 @@ import com.dayu.bigfish.ui.CommonSubmiteActivity;
import com.dayu.bigfish.ui.LoginActivity;
import com.dayu.bigfish.utils.AppUtils;
import com.dayu.bigfish.utils.DataCleanManager;
import com.dayu.bigfish.utils.SPUtils;
import com.dayu.bigfish.utils.UIUtils;
import com.dayu.utils.SPUtils;
import com.dayu.utils.UIUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import com.hyphenate.EMCallBack;
import com.hyphenate.chat.EMClient;
......
......@@ -2,8 +2,8 @@ package com.dayu.bigfish.presenter.subcribeTime;
import com.bigkoo.pickerview.TimePickerView;
import com.dayu.bigfish.base.BasePresenter;
import com.dayu.bigfish.base.BaseView;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
/**
* Created by luo
......
......@@ -6,14 +6,14 @@ import android.text.TextUtils;
import android.view.View;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.event.OrderState;
import com.dayu.bigfish.bean.event.RefreshApoiment;
import com.dayu.bigfish.bean.event.RefreshServe;
import com.dayu.bigfish.bean.event.RefreshTab;
import com.dayu.bigfish.utils.UIUtils;
import com.dayu.utils.UIUtils;
import com.dayu.bigfish.utils.UtilsDate;
import com.dayu.bigfish.utils.UtilsUserAccountMatcher;
......
package com.dayu.bigfish.presenter.worksRecord;
import com.dayu.bigfish.base.BaseView;
import com.dayu.common.BaseView;
import com.dayu.bigfish.presenter.BaseOrderPresenter;
/**
......
......@@ -6,7 +6,7 @@ import android.os.Bundle;
import android.text.TextUtils;
import com.app.annotation.apt.InstanceFactory;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.api.ApiFactory;
import com.dayu.bigfish.bean.Order;
......
package com.dayu.bigfish.ui;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.AboutUsBinding;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
/**
* 关于我们
......
package com.dayu.bigfish.ui;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.databinding.AccountbalanceLayoutBinding;
import com.dayu.bigfish.presenter.accountbalance.AccountBalanceContract;
import com.dayu.bigfish.presenter.accountbalance.AccountBalancePresenter;
......@@ -21,4 +21,9 @@ public class AccountBalanceActivity extends BaseActivity<AccountBalancePresenter
@Override
public void initView() {
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
}
package com.dayu.bigfish.ui;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.databinding.ActivityAgreementBinding;
/**
......
package com.dayu.bigfish.ui;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.databinding.ActivityFeedbackBinding;
import com.dayu.bigfish.presenter.commonSubmite.CommonSubmiteContract;
import com.dayu.bigfish.presenter.commonSubmite.CommonSubmitePresenter;
......@@ -22,4 +22,8 @@ public class CommonSubmiteActivity extends BaseActivity<CommonSubmitePresenter,
@Override
public void initView() {
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
}
package com.dayu.bigfish.ui;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.databinding.ActivityKaAddressLayoutBinding;
import com.dayu.bigfish.presenter.kaaddress.KaAddressContract;
import com.dayu.bigfish.presenter.kaaddress.KaAddressPresenter;
......@@ -19,4 +19,8 @@ public class KaAddressActivity extends BaseActivity<KaAddressPresenter, Activity
@Override
public void initView() {
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
}
package com.dayu.bigfish.ui;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.LoginBinding;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.presenter.login.LoginContract;
import com.dayu.bigfish.presenter.login.LoginPresenter;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.bigfish.utils.TimeCountUtil;
import com.dayu.common.BaseConstant;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener;
import com.umeng.analytics.MobclickAgent;
......@@ -15,6 +18,7 @@ import com.umeng.analytics.MobclickAgent;
* 2017/11/08.
*/
@Route(path = BaseConstant.PATH_LOGIN)
public class LoginActivity extends BaseActivity<LoginPresenter, LoginBinding> implements LoginContract.View {
@Override
......@@ -27,21 +31,26 @@ public class LoginActivity extends BaseActivity<LoginPresenter, LoginBinding> im
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void changeCodeBtn() {
TimeCountUtil timeCountUtil = new TimeCountUtil(mActivity, 60000, 1000, mBind.btnSendCode);
timeCountUtil.start();
MobclickAgent.onEvent(mActivity,"sms_code");
MobclickAgent.onEvent(mActivity, "sms_code");
}
@Override
public void changeVoiceCodeBtn() {
mBind.tvVoiceCode.setTextColor(getResources().getColor(R.color.cl_text));
mBind.tvVoiceCode.setClickable(false);
MobclickAgent.onEvent(mActivity,"sms_voice");
MobclickAgent.onEvent(mActivity, "sms_voice");
}
@Override
public void showLoginDialog(CustomDialog.OnCloseListener listener) {
public void showLoginDialog(OnCloseListener listener) {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.engineer_identity_not_audite)
, listener);
customDialog.setTitle(getString(R.string.identity_not_audite))
......
package com.dayu.bigfish.ui;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.databinding.ActivityLogisticsInfoBinding;
import com.dayu.bigfish.presenter.logisticsinfo.LogisticsInfoContract;
import com.dayu.bigfish.presenter.logisticsinfo.LogisticsInfoPresenter;
......@@ -22,4 +22,8 @@ public class LogisticsInfoActivity extends BaseActivity<LogisticsInfoPresenter,
LogisticsAdapter adapter = new LogisticsAdapter(false);
mBind.lvPart.setAdapter(adapter);
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
}
......@@ -15,15 +15,14 @@ import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.BuildConfig;
import com.dayu.bigfish.Constants;
import com.dayu.bigfish.MyApplication;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.DownloadService;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.api.DownloadService;
import com.dayu.bigfish.bean.InformBean;
import com.dayu.bigfish.bean.VersionInfo;
import com.dayu.bigfish.bean.event.DownloadBean;
import com.dayu.event.DownloadBean;
import com.dayu.bigfish.bean.event.RefreshReceivingNum;
import com.dayu.bigfish.bean.event.SwtichFragment;
import com.dayu.bigfish.databinding.ActivityMainBinding;
......@@ -33,9 +32,10 @@ import com.dayu.bigfish.ui.fragment.HomeFirstTabFragment;
import com.dayu.bigfish.ui.fragment.HomeMessageFragment;
import com.dayu.bigfish.ui.fragment.HomeOrderFragment;
import com.dayu.bigfish.ui.fragment.HomePersonFragment;
import com.dayu.bigfish.ui.listener.onDownloadListener;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.widgets.listener.onDownloadListener;
import com.dayu.bigfish.utils.LocationUtils;
import com.dayu.common.Constants;
import com.dayu.widgets.CustomDialog;
import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.EventBus;
......@@ -81,6 +81,11 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
EventBus.getDefault().register(this);
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
private void initListener() {
mBind.tabFirst.setOnClickListener(o -> showHideFragment(0, mPosition));
mBind.tabSecond.setOnClickListener(o -> showHideFragment(1, mPosition));
......
......@@ -5,9 +5,9 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.bean.NewMessage;
import com.dayu.bigfish.databinding.ActivityMessageDetailBinding;
import com.dayu.bigfish.utils.UtilsDate;
......
......@@ -4,13 +4,14 @@ import android.content.Intent;
import android.os.Environment;
import android.text.TextUtils;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.databinding.ActivityModifyPersonActivityBinding;
import com.dayu.bigfish.presenter.modifyperson.ModifyPersonContract;
import com.dayu.bigfish.presenter.modifyperson.ModifyPersonPresenter;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.bigfish.utils.ToastUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener;
import com.luck.picture.lib.PictureSelectionModel;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
......@@ -36,6 +37,11 @@ public class ModifyPersonInfoActivity extends BaseActivity<ModifyPersonPresenter
public void initView() {
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void showPicDialog() {
......@@ -83,7 +89,7 @@ public class ModifyPersonInfoActivity extends BaseActivity<ModifyPersonPresenter
}
@Override
public void showSubmiteDialog(CustomDialog.OnCloseListener listener) {
public void showSubmiteDialog(OnCloseListener listener) {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.audite_tip_submite)
, listener);
customDialog.setTitle(getString(R.string.audite_tip_submite_title))
......
......@@ -3,9 +3,9 @@ package com.dayu.bigfish.ui;
import android.content.Intent;
import android.os.Environment;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.databinding.MyHeaderActivityBinding;
import com.dayu.bigfish.presenter.myhead.MyHeadContract;
import com.dayu.bigfish.presenter.myhead.MyHeadPresenter;
......@@ -38,6 +38,11 @@ public class MyHeaderIvActivity extends BaseActivity<MyHeadPresenter, MyHeaderAc
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void showPicDialog() {
PictureSelectionModel selector = PictureSelector.create(mActivity)
.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
......
......@@ -6,7 +6,7 @@ import android.support.v4.app.FragmentTransaction;
import android.view.View;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.bean.OrderDetail;
import com.dayu.bigfish.databinding.ActivityOrderDetailsBinding;
import com.dayu.bigfish.presenter.orderdetail.OrderDetailContract;
......@@ -43,6 +43,10 @@ public class OrderDetailsActivity extends BaseActivity<OrderDetailPresenter, Act
}
@Override
public void setPresenter() {
}
@Override
public void init(OrderDetail detail) {
mFragments = new ArrayList<>();
orderDatailsFragment = OrderDetaillsFragment.newInstance(detail);
......
......@@ -4,12 +4,15 @@ import android.content.Context;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.bean.Order;
import com.dayu.bigfish.databinding.ActivityOrderRecordBinding;
import com.dayu.bigfish.databinding.FragmentOrderdoingItemBinding;
import com.dayu.bigfish.presenter.worksRecord.OrderRecordContract;
import com.dayu.bigfish.presenter.worksRecord.OrderRecordPresenter;
import com.dayu.bigfish.ui.adapter.OrderAdapter;
import com.dayu.widgets.listener.OnItemClickListener;
import com.umeng.analytics.MobclickAgent;
/**
......@@ -33,6 +36,17 @@ public class OrderRecordActivity extends BaseActivity<OrderRecordPresenter, Acti
mBind.tvTitle.setText(getString(R.string.history_order));
mAdapter = new OrderAdapter(true, R.layout.fragment_orderdoing_item);
mBind.recyclerView.setAdapter(mAdapter);
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order,FragmentOrderdoingItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
mPresenter.dumpDetail(item.getId());
}
});
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
......
......@@ -2,12 +2,12 @@ package com.dayu.bigfish.ui;
import android.content.Intent;
import com.dayu.bigfish.Constants;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.databinding.ActivityPersonInfoBinding;
import com.dayu.bigfish.presenter.personinfo.PersonInfoContract;
import com.dayu.bigfish.presenter.personinfo.PersonInfoPresenter;
import com.dayu.common.Constants;
public class PersonInfoActivity extends BaseActivity<PersonInfoPresenter, ActivityPersonInfoBinding> implements PersonInfoContract.View {
@Override
......@@ -20,6 +20,11 @@ public class PersonInfoActivity extends BaseActivity<PersonInfoPresenter, Activi
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && data != null) {
......
......@@ -6,9 +6,9 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.databinding.ActivtyPreviewBinding;
import com.dayu.bigfish.utils.GlideImageLoader;
......
......@@ -8,9 +8,9 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.databinding.ActivityProcessOrderBinding;
import com.dayu.bigfish.presenter.processorder.ProcessOrderContract;
import com.dayu.bigfish.presenter.processorder.ProcessOrderPresenter;
......@@ -53,6 +53,11 @@ public class ProcessOrderActivity extends BaseActivity<ProcessOrderPresenter, Ac
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void initAddIv() {
mIvWeight = (UtilsScreen.getScreenWidth(mActivity) - UtilsScreen.dip2px(mActivity, 20)) / 5;
mAddIV = new ImageView(mActivity);
......
package com.dayu.bigfish.ui;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.bigfish.databinding.QrCodeLayoutBinding;
/**
......
package com.dayu.bigfish.ui;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.bean.Order;
import com.dayu.bigfish.databinding.ActivityCommomRecycleBinding;
import com.dayu.bigfish.databinding.FragmentOrderdoingItemBinding;
import com.dayu.bigfish.presenter.receivingorder.ReceivingContract;
import com.dayu.bigfish.presenter.receivingorder.ReceivingPresenter;
import com.dayu.bigfish.ui.adapter.OrderAdapter;
import com.dayu.widgets.listener.OnItemClickListener;
import com.umeng.analytics.MobclickAgent;
......@@ -32,6 +34,17 @@ public class ReceivingActivity extends BaseActivity<ReceivingPresenter, Activity
mAdapter = new OrderAdapter(true, R.layout.fragment_orderdoing_item);
mBind.recyclerView.setAdapter(mAdapter);
initListener();
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
mPresenter.dumpDetail(item.getId());
}
});
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
private void initListener() {
......
......@@ -2,11 +2,11 @@ package com.dayu.bigfish.ui;
import com.bigkoo.pickerview.OptionsPickerView;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.databinding.ActivityReturnPartBinding;
import com.dayu.bigfish.presenter.returnpart.ReturnPartContract;
import com.dayu.bigfish.presenter.returnpart.ReturnPartPresenter;
import com.dayu.bigfish.utils.UIUtils;
import com.dayu.utils.UIUtils;
import java.util.List;
......@@ -26,6 +26,11 @@ public class ReturnPartActivity extends BaseActivity<ReturnPartPresenter, Activi
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void showCouriesDialog(List<String> cardItem, OptionsPickerView.OnOptionsSelectListener listener) {
//条件选择器
OptionsPickerView pvOptions = new OptionsPickerView.Builder(this, listener)
......
package com.dayu.bigfish.ui;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.bean.ServerInstruction;
import com.dayu.bigfish.databinding.ActivityInstrcutionLayoutBinding;
import com.dayu.bigfish.databinding.ItemOrderInstructionBinding;
import com.dayu.bigfish.presenter.serverinstruction.ServerInstructionContract;
import com.dayu.bigfish.presenter.serverinstruction.ServerInstructionPresenter;
import com.dayu.widgets.listener.OnItemClickListener;
/**
* Created by luofan on 2018/1/19.
......@@ -20,5 +23,16 @@ public class ServerInstructionActivity extends BaseActivity<ServerInstructionPre
@Override
public void initView() {
mBind.tvTitle.setText(getResources().getString(R.string.order_instruction));
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<ServerInstruction, ItemOrderInstructionBinding>() {
@Override
public void OnItemClick(ServerInstruction item, ItemOrderInstructionBinding bind) {
mPresenter.dumpDetail(item.getId());
}
});
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
}
package com.dayu.bigfish.ui;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.bigfish.databinding.ActivitySettingBinding;
import com.dayu.bigfish.presenter.setting.SettingContract;
import com.dayu.bigfish.presenter.setting.SettingPresenter;
import com.dayu.bigfish.ui.views.CustomDialog;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener;
/**
* 设置页面
......@@ -25,7 +26,12 @@ public class SettingActivity extends BaseActivity<SettingPresenter, ActivitySett
}
@Override
public void showCachDialog(CustomDialog.OnCloseListener listener) {
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void showCachDialog(OnCloseListener listener) {
CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, getString(R.string.sure_clear_data)
, listener);
dialog.setTitle(getString(R.string.notice))
......
......@@ -12,14 +12,14 @@ import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.LinearLayout;
import com.dayu.bigfish.Constants;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.bean.event.OrderState;
import com.dayu.bigfish.databinding.ActivityWebviewBinding;
import com.dayu.bigfish.utils.ProgressUtil;
import com.dayu.bigfish.utils.ToastUtils;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.ToastUtils;
import com.dayu.bigfish.utils.managers.UserManager;
import com.github.lzyzsd.jsbridge.BridgeHandler;
import com.github.lzyzsd.jsbridge.BridgeWebView;
......
......@@ -4,7 +4,7 @@ import android.graphics.Color;
import com.bigkoo.pickerview.TimePickerView;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.BaseActivity;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.databinding.ActivitySubscribeTimeBinding;
import com.dayu.bigfish.presenter.subcribeTime.SubcribeContract;
import com.dayu.bigfish.presenter.subcribeTime.SubcribeTimePresenter;
......@@ -30,6 +30,11 @@ public class SubcribeTimeActivity extends BaseActivity<SubcribeTimePresenter, Ac
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public void selectTime(boolean[] type, TimePickerView.OnTimeSelectListener listener) {
TimePickerView pvTime = new TimePickerView.Builder(mActivity, listener)
.setType(type)//默认全部显示
......
......@@ -13,12 +13,12 @@ import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.LinearLayout;
import com.dayu.bigfish.Constants;
import com.dayu.base.ui.activity.DataBindingActivity;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.base.DataBindingActivity;
import com.dayu.bigfish.bean.UserInfo;
import com.dayu.bigfish.databinding.ActivityWebviewBinding;
import com.dayu.bigfish.utils.ProgressUtil;
import com.dayu.utils.ProgressUtil;
import com.dayu.bigfish.utils.managers.UserManager;
import com.github.lzyzsd.jsbridge.BridgeHandler;
import com.github.lzyzsd.jsbridge.BridgeWebView;
......
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 sign in to comment