BaseActivity.java
4.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.dayu.base.ui.activity;
import android.content.Intent;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
import com.dayu.base.R;
import com.dayu.base.common.Constants;
import com.dayu.base.presenter.BasePresenter;
import com.dayu.base.ui.BaseView;
import com.dayu.base.utils.InstanceUtil;
import com.dayu.base.utils.ProgressUtil;
import com.dayu.base.utils.ToastUtils;
import com.dayu.base.widgets.CustomDialog;
import java.lang.reflect.ParameterizedType;
/**
* Created by luofan on 17/11/02.
*/
public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBinding> extends BaseBindingActivity<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;
}
}