LoginFragment.java
6.71 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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
package com.cnlive.gundam.user.fragment;
import android.accounts.Account;
import android.app.ProgressDialog;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.cnlive.gundam.R;
import com.cnlive.gundam.databinding.FragmentLoginBinding;
import com.cnlive.gundam.user.auth.UserService;
import com.cnlive.gundam.user.model.User;
import com.cnlive.gundam.user.util.ToastUtil;
import com.cnlive.libs.user.IUserService;
import com.cnlive.libs.user.UserUtil;
import com.cnlive.libs.user.model.DataEntity;
import com.cnlive.libs.user.model.UserData;
import com.cnlive.libs.util.data.network.Callback;
/**
* Created by luxiaoman on 2017/5/25.
*/
public class LoginFragment extends Fragment implements View.OnClickListener {
private FragmentLoginBinding binding;
//用户数据信息
public static DataEntity data;
private Account account;//密码登录的account
private Account account1;//第三方登录的account
//跳转页面的对话框
private ProgressDialog dialog;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_login, container, false);
return binding.getRoot();
}
public static Fragment newInstance() {
LoginFragment fragment = new LoginFragment();
return fragment;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();
initToolBar();
}
private void initToolBar() {
//整个页面的大标题
binding.loginIncludeLayout.toolbarTitle.setText("登录");
}
private void initView() {
//登录
binding.btnLogin.setOnClickListener(this);
//返回键
binding.backSelector.setOnClickListener(this);
//注册
binding.register.setOnClickListener(this);
//短信验证登录
binding.btnQucikLogin.setOnClickListener(this);
//忘记密码
binding.tvForgotPwd.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int i = v.getId();
if (i == R.id.back_selector) {//返回上一页面
getActivity().finish();
} else if (i == R.id.btn_login) {//登录
if (0 == binding.edtLoginNumber.getText().length()) {
ToastUtil.show(getActivity(), "请输入手机号");
return;
} else if (0 == binding.edtInputPassward.getText().length()) {
ToastUtil.show(getActivity(), "请输入密码");
return;
}
/**
* 用户名&密码登录
*
* @param userName 手机邮箱或ID
* @param pwd 密码
* @param frmId 渠道ID(非必传参数,可以传"")
* @param callback 回调
*/
//显示对话框
showDialog();
//可以请求服务器获取token
account = new Account(binding.edtLoginNumber.getText().toString(), User.ACCOUNT_TYPE);
Log.v("chinaUserInfoLogin1", String.valueOf(account));
//调用sdk的密码登录的方法
UserUtil.login(binding.edtLoginNumber.getText().toString(), binding.edtInputPassward.getText().toString(), "frmId", userdatacall);
} else if (i == R.id.register) {//进入注册页面
getFragmentManager()
.beginTransaction()
.addToBackStack(null)
.replace(R.id.login_fragment, RegisterFragment.newInstance()).commit();
} else if (i == R.id.btn_qucik_login) {//进入短信验证登录页面
getFragmentManager()
.beginTransaction()
.addToBackStack(null)
.replace(R.id.login_fragment, QuickLoginFragment.newInstance()).commit();
} else if (i == R.id.tv_forgot_pwd) {//进入忘记密码页面
getFragmentManager()
.beginTransaction()
.addToBackStack(null)
.replace(R.id.login_fragment, UserFindPasswardFragment.newInstance()).commit();
}
}
/**
* *密码登录的回调
*/
protected UserDataCall userdatacall = new UserDataCall();
private class UserDataCall implements Callback {
@Override
public void onState(int what, String extra, Object obj) {
switch (what) {
case IUserService.SUCCESS:
ToastUtil.show(getActivity(), "密码登录成功");
closeDialog();
UserData userData = (UserData) obj;
data = userData.getData();
UserService userService = UserService.getInstance(getActivity());
userService.setUserInfo(account, data);
//userService.isAutoLogin();
userService.autoLogin(binding.edtLoginNumber.toString(), binding.edtInputPassward.getText().toString(), data);
if (null != data.toString()) {
//getFragmentManager().popBackStack();
getActivity().finish();
}
break;
case IUserService.ERROR_PARAM:
ToastUtil.show(getActivity(), IUserService.message_error_param);
break;
case IUserService.ERROR_USER_NOT_FOUND:
ToastUtil.show(getActivity(), IUserService.message_error_user_not_found);
break;
case IUserService.ERROR_USERNAME_OR_PASSWORD:
ToastUtil.show(getActivity(), IUserService.message_error_username_or_password);
break;
case IUserService.ERROR_PASSWORD:
ToastUtil.show(getActivity(), IUserService.message_error_password);
break;
}
closeDialog();
}
}
/**
* 显示对话框
*/
public void showDialog() {
if (dialog == null) {
dialog = new ProgressDialog(getActivity());
dialog.setMessage("正在登录,请稍等...");
}
if (!dialog.isShowing()) {
dialog.show();
}
}
/**
* 关闭对话框
*/
public void closeDialog() {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
}
}