package com.hanju.video.app.ui.login;
|
|
import android.app.ProgressDialog;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.content.SharedPreferences.Editor;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.util.Log;
|
import android.view.KeyEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.CheckBox;
|
import android.widget.EditText;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.hanju.video.app.util.HanJuConstant;
|
import com.lcjian.library.util.SingleToast;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.umeng.analytics.MobclickAgent;
|
import com.umeng.socialize.UMShareAPI;
|
import com.hanju.video.app.BasicTextHttpResponseHandler;
|
import com.hanju.video.app.HttpApiUtil;
|
import com.hanju.video.app.R;
|
import com.hanju.video.app.ui.BaseActivity;
|
import com.hanju.video.app.ui.mine.BrowserActivity;
|
import com.hanju.video.app.util.XGPush;
|
import com.hanju.video.app.util.ui.LoginUiUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
public class LoginActivity extends BaseActivity implements OnClickListener {
|
public static final int RESULT_LOGIN = 10;
|
private ProgressDialog dialog;
|
private TextView tv_cancel;// 取消
|
private boolean isTouchLogin;// 用户是否点击登录
|
private String uid;
|
private String loginType = "";// 登录类型 默认为空字符 QQ为1
|
private String openId = "";// 用户第三方登录唯一识别码
|
|
private LinearLayout ll_login_content;
|
private EditText et_name;
|
private EditText et_pwd;
|
private CheckBox cb_user_agreement;
|
private TextView tv_forget_pwd;
|
private TextView tv_register;
|
private TextView tv_login;
|
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_login);
|
LoginUiUtil.initStatusBar(this);
|
|
|
uid = getSharedPreferences("user", Context.MODE_PRIVATE).getString(
|
"uid", "");
|
tv_cancel = findViewById(R.id.login_tv_cancel);
|
|
tv_cancel.setOnClickListener(this);
|
|
dialog = new ProgressDialog(this);
|
ll_login_content = findViewById(R.id.ll_login_content);
|
|
int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
|
ll_login_content.measure(w, h);
|
|
et_name = findViewById(R.id.et_name);
|
et_pwd = findViewById(R.id.et_pwd);
|
cb_user_agreement = findViewById(R.id.cb_user_agreement);
|
tv_forget_pwd = findViewById(R.id.tv_forget_pwd);
|
tv_register = findViewById(R.id.tv_register);
|
tv_login = findViewById(R.id.tv_login);
|
tv_forget_pwd.setOnClickListener(this);
|
tv_register.setOnClickListener(this);
|
tv_login.setOnClickListener(this);
|
findViewById(R.id.tv_user_agreement).setOnClickListener(this);
|
findViewById(R.id.tv_privacy_policy).setOnClickListener(this);
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.login_tv_cancel:// 取消
|
finish();
|
break;
|
case R.id.tv_forget_pwd:
|
startActivity(new Intent(LoginActivity.this, ForgetPwdActivity.class));
|
break;
|
case R.id.tv_user_agreement:
|
Intent intent = new Intent(LoginActivity.this, BrowserActivity.class);
|
intent.putExtra("url", HanJuConstant.USER_AGREEMENT);
|
startActivity(intent);
|
break;
|
case R.id.tv_privacy_policy:
|
Intent intent1 = new Intent(this, BrowserActivity.class);
|
intent1.putExtra("url", HanJuConstant.PRIVACY_POLICY);
|
startActivity(intent1);
|
break;
|
case R.id.tv_register:
|
startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
|
break;
|
case R.id.tv_login:
|
if (cb_user_agreement.isChecked())
|
emailLogin();
|
else
|
SingleToast.showToast(LoginActivity.this, "选择同意用户协议后方可登录");
|
break;
|
}
|
}
|
|
/**
|
* Email登录
|
*/
|
private void emailLogin() {
|
SharedPreferences preferences = getSharedPreferences("user", MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
String name = et_name.getText().toString();
|
String pwd = et_pwd.getText().toString();
|
if (StringUtils.isEmpty(name) || StringUtils.isEmpty(pwd)) {
|
SingleToast.showToast(this, "账号或密码为空!");
|
return;
|
}
|
SingleToast.showToast(this, "开始登录了");
|
HttpApiUtil.emailLogin(this, uid, name, pwd, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
Log.i("mResult", "登录后返回的值为:" + jsonObject.toString());
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
Editor edit = sp.edit();
|
edit.putString("portrait", jsonObject.optJSONObject("Data").optString("Portrait"));
|
edit.putString("LoginUid",
|
jsonObject.getJSONObject("Data")
|
.getString("Id"));
|
edit.putString("name",
|
jsonObject.optJSONObject("Data").optString("Nickname"));
|
edit.commit();
|
SingleToast.showToast(LoginActivity.this, "登录成功" + "昵称为:" + jsonObject.optJSONObject("Data").optString("Nickname"));
|
finish();
|
} else {
|
SingleToast.showToast(LoginActivity.this, "登录失败");
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
SingleToast.showToast(LoginActivity.this, "登录失败");
|
}
|
});
|
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
if (!StringUtils.isEmpty(getSharedPreferences("user", Context.MODE_PRIVATE).getString("LoginUid", ""))) {
|
finish();
|
}
|
MobclickAgent.onPageStart("登录页");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("登录页");
|
}
|
|
/**
|
* 锁定返回
|
*/
|
private void lockBack(boolean isSure) {
|
tv_cancel.setEnabled(!isSure);
|
isTouchLogin = isSure;
|
|
}
|
|
@Override
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
if (isTouchLogin && keyCode == KeyEvent.KEYCODE_BACK) {
|
return false;
|
}
|
return super.onKeyDown(keyCode, event);
|
}
|
|
@Override
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
super.onActivityResult(requestCode, resultCode, data);
|
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
|
}
|
|
Handler mHandler = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
if (msg.what == 0) {
|
final JSONObject response = (JSONObject) msg.obj;
|
try {
|
Log.i("mResult", "头像路径:----" + response
|
.getString("figureurl_qq_2"));
|
// SingleToast.showToast(LoginActivity.this, "第三方登录成功,开始上传数据!");
|
HttpApiUtil.userLogin(LoginActivity.this, uid,
|
response.getString("nickname"), openId,
|
response.getString("figureurl_qq_2"),
|
response.getString("gender"), response.getString("province"), response.getString("city"), loginType,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
Log.i("mResult", "上传数据到服务器成功!");
|
// SingleToast.showToast(LoginActivity.this, "数据上传成功!");
|
// 写入sharedpreference
|
Editor edit = getSharedPreferences("user",
|
Context.MODE_PRIVATE).edit();
|
edit.putString("portrait", response
|
.getString("figureurl_qq_2"));
|
edit.putString("LoginUid",
|
jsonObject.getJSONObject("Data")
|
.getString("LoginUid"));
|
edit.putString("name",
|
response.getString("nickname"));
|
edit.putString("sex",
|
response.getString("gender"));
|
edit.commit();
|
|
SingleToast.showToast(LoginActivity.this,
|
"登录成功");
|
XGPush.registerPush(LoginActivity.this);
|
finish();
|
}
|
|
@Override
|
public void onFailure(int statusCode,
|
Header[] headers,
|
String responseString,
|
Throwable throwable) {
|
super.onFailure(statusCode, headers,
|
responseString, throwable);
|
SingleToast.showToast(LoginActivity.this,
|
"登录失败");
|
// Log.i("mResult", "上传数据到服务器成功!");
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
dialog.dismiss();
|
}
|
});
|
} catch (JSONException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
};
|
}
|