XiMengJianYu/.svn/pristine/14/146b9cde02881c84556c0c8a96071231451d3721.svn-base

327 lines
15 KiB
Plaintext
Raw Normal View History

2023-04-17 17:58:44 +08:00
package com.example.administrator.ximengjianyu.activity;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.AnimationDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.cm.utils.net.HttpUtils;
import com.cm.utils.net.response.GsonResponseHandler;
import com.example.administrator.ximengjianyu.R;
import com.example.administrator.ximengjianyu.activity.home.HomeActivity;
import com.example.administrator.ximengjianyu.activity.home.NewPwdActivity;
import com.example.administrator.ximengjianyu.beans.AppCriminalUserBean;
import com.example.administrator.ximengjianyu.global.Constants;
import com.example.administrator.ximengjianyu.global.UserInfo;
import com.example.administrator.ximengjianyu.mqtt.push.MQTTService;
import com.example.administrator.ximengjianyu.utils.AndroidManager;
import com.example.administrator.ximengjianyu.utils.CacheUtils;
import com.example.administrator.ximengjianyu.utils.EdittextUtils;
import com.example.administrator.ximengjianyu.utils.PinYinUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//import de.eclipsemagazin.mqtt.push.BlackIceActivity;
//import de.eclipsemagazin.mqtt.push.MQTTService;
public class LoginActivity extends AppCompatActivity {
public static final String SERVICE_CLASSNAME = "com.example.administrator.ximengjianyu.mqtt.push.MQTTService";
private EditText mLoginUsername;
private EditText mLoginPassword;
private Button btn_login;
public Activity mActivity;
private AnimationDrawable animationDrawable;
private Map<String, String> tuichumap;
/**
* 该变量表明是否是被挤下线跳转
*/
//sp中的用户名密码
String password, username;
private String TAG = "LoginActivity";
/**
* 声明一个集合,内部装入点击登录按钮,当联网失败或者成功后,从该集合中移除请求
*/
private List<String> clickList;
PackageInfo packageInfo = null;
private boolean first = true;
private ImageView mIvUsernameDelete;
private ImageView mIvPasswordDelete;
private View.OnClickListener on;
private Intent intent;
private Dialog dialog;
public Dialog baseDialog;
private String msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_login);
getSupportActionBar().hide();//隐藏标题栏
//初始化视图
initView();
//数据
initData();
//通知栏
// updateButton();
}
//
//
public boolean serviceIsRunning() {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (SERVICE_CLASSNAME.equals(service.service.getClassName())) {
return true;
}
}
return false;
}
private void initView() {
mLoginUsername = (EditText) findViewById(R.id.login_name);
mLoginPassword = (EditText) findViewById(R.id.login_pwd);
mIvUsernameDelete = (ImageView) findViewById(R.id.iv_username_delete);
mIvPasswordDelete = (ImageView) findViewById(R.id.iv_password_delete);
btn_login = (Button) findViewById(R.id.btn_login);
}
private void initData() {
clickList = new ArrayList<>();
// 获取sp缓存中的用户名密码
// password = CacheUtils.getCache(this, Constants.LOGIN_PASSWORD_SP);
// username = CacheUtils.getCache(this, Constants.LOGIN_USERNAME_SP);
//点击登录按钮
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (clickList.size() == 0) { //长度为0说明没有点击过才可以走登录的网络请求
// intDialog("正在登陆...");
clickList.add("hasClick"); //
final String user = mLoginUsername.getText().toString().trim(); //用户名
final String password = mLoginPassword.getText().toString().trim(); //密码
clickLoginButton(user, password);
} else {
Toast.makeText(LoginActivity.this, getResources().getText(R.string.LoginHasClicked),
Toast.LENGTH_SHORT).show();
}
}
});
mIvUsernameDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mLoginUsername.setText(null);
mIvUsernameDelete.setVisibility(View.GONE);
}
});
mIvPasswordDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mLoginPassword.setText(null);
mIvPasswordDelete.setVisibility(View.GONE);
}
});
//为登录页输入框添加数据
EdittextUtils edittextUtils = EdittextUtils.getEdittext();
if (username != null) {
mLoginUsername.setText(username);
edittextUtils.clearEdittext(mLoginUsername, mIvUsernameDelete);
EdittextUtils.getEdittext().makeEdittextToLast(mLoginUsername);
} else {
edittextUtils.clearEdittext(mLoginUsername, mIvUsernameDelete);
EdittextUtils.getEdittext().makeEdittextToLast(mLoginUsername);
}
if (password != null) {
mLoginUsername.setText(password);
edittextUtils.clearEdittext(mLoginPassword, mIvPasswordDelete);
EdittextUtils.getEdittext().makeEdittextToLast(mLoginPassword);
} else {
edittextUtils.clearEdittext(mLoginPassword, mIvPasswordDelete);
EdittextUtils.getEdittext().makeEdittextToLast(mLoginPassword);
}
try {
packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
/**
* 该方法用来实现点击登录按钮的功能
*/
private void clickLoginButton(final String username, final String password) {
//要判断用户名和密码是否为空
if (TextUtils.isEmpty(username)) { //用户名为空
Toast.makeText(this, getResources().getText(R.string.LoginUsernameIsNull), Toast.LENGTH_SHORT).show();
EdittextUtils.getEdittext().showSoftInputFromWindow(this, mLoginUsername);
removeFromClicklist();
} else if (TextUtils.isEmpty(password)) { //密码为空
Toast.makeText(this, getResources().getText(R.string.LoginPasswordIsNull), Toast.LENGTH_SHORT).show();
EdittextUtils.getEdittext().showSoftInputFromWindow(this, mLoginPassword);
removeFromClicklist();
} else {
if (PinYinUtils.isContainChinese(username)) { //如果是中文
Toast.makeText(this, getResources().getText(R.string.LoginUsernameIsChinese), Toast.LENGTH_SHORT).show();
removeFromClicklist();
} else {
Map<String, String> map = new HashMap<>();
map.put("username", username);
map.put("password", password);
map.put("version", packageInfo.versionName);
map.put("appkey", this.getResources().getString(R.string.appKey));
HttpUtils.getInstance().post(Constants.LOGIN_USER_URL, map, new GsonResponseHandler<AppCriminalUserBean>() {
@Override
public void onSuccess(int statusCode, AppCriminalUserBean response) {
Log.e("--Login--", "onSuccess: " + response.toString());
Log.e("--Main--", "登陆:" + response.toString());
if (password.equals("123456") && Integer.parseInt(response.getState()) == 200) {
UserInfo.setToken(LoginActivity.this, response.getData().getToken());
Log.e("Login_Token", response.getData().getToken());
Intent intent1 = new Intent(LoginActivity.this, NewPwdActivity.class);
startActivity(intent1);
finish();
}else
if (Integer.parseInt(response.getState()) == 200) {
// dismissDialog();
//保存用户的uid姓名用户名密码,组织名称
CacheUtils.setCache(LoginActivity.this, Constants.LOGIN_USERNAME_SP, username);
CacheUtils.setCache(LoginActivity.this, Constants.LOGIN_PASSWORD_SP, password);
UserInfo.setToken(LoginActivity.this, response.getData().getToken());
Log.e("Login_Token", response.getData().getToken());
msg = response.getMsg();
UserInfo.setName(LoginActivity.this, response.getData().getName());
UserInfo.setUserid(LoginActivity.this, response.getData().getCriminalUserId());
UserInfo.setId(LoginActivity.this, response.getData().getCriminalId());
UserInfo.setIcon(LoginActivity.this, response.getData().getFrontPhoto());
//分机号
UserInfo.setExtensionNumber(LoginActivity.this, response.getData().getExtensionNumber());
UserInfo.setSurplusCount(LoginActivity.this, response.getData().getSurplusCount());
// if (response.getData().getFamilylovePhoneList().size() > 0){
// //亲友姓名
// UserInfo.setDeptname(LoginActivity.this, response.getData().getFamilylovePhoneList().get(0).getName());
// //亲友电话
// UserInfo.setTel(LoginActivity.this, response.getData().getFamilylovePhoneList().get(0).getPhone());
// //亲友关系
// UserInfo.setFax(LoginActivity.this, response.getData().getFamilylovePhoneList().get(0).getRelation());
// }
// for (int i = 0; i <response.getData().getFamilylovePhoneList().size() ; i++) {
// //亲友姓名
// UserInfo.setDeptname(LoginActivity.this, response.getData().getFamilylovePhoneList().get(i).getName());
// //亲友电话
// UserInfo.setTel(LoginActivity.this, response.getData().getFamilylovePhoneList().get(i).getPhone());
// Log.e("亲友电话",response.getData().getFamilylovePhoneList().get(i).getPhone());
// //亲友关系
// UserInfo.setFax(LoginActivity.this, response.getData().getFamilylovePhoneList().get(i).getRelation());
// }
//剩余次数
UserInfo.setBirthday(LoginActivity.this, response.getData().getSurplusCount() + "");
Toast.makeText(LoginActivity.this, response.getMsg(), Toast.LENGTH_SHORT).show();
removeFromClicklist();
// //调用通知启动方法
// Intent intent = new Intent(LoginActivity.this, MQTTService.class);
//// intent.setAction(MQTTService.ACTION_START);
// LoginActivity.this.startService(intent);
// MQTTService.actionStart(LoginActivity.this);
intent = new Intent(LoginActivity.this, HomeActivity.class);
startActivity(intent);
finish();
}else {
Toast.makeText(LoginActivity.this, response.getMsg(), Toast.LENGTH_SHORT).show();
removeFromClicklist();
}
}
@Override
public void onFailure(int statusCode, String error_msg) {
Log.e("--Login--", "onFailure: " + error_msg);
Toast.makeText(LoginActivity.this, "网络超时", Toast.LENGTH_SHORT).show();
removeFromClicklist();
}
});
}
}
}
/**
* 该方法是用来从集合中移除已点击登录按钮
*/
private void removeFromClicklist() {
if (clickList.size() > 0) {
clickList.remove(0); //请求失败,移除集合中的已点击
}
}
// /**
// * 呼叫Dialog
// *
// * @param content
// * @return
// */
// public Dialog intDialog(String content) {
// Log.i("------------", mActivity.toString());
// baseDialog = new Dialog(mActivity);
// //隐藏Dialog标题
// baseDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
// View view = View.inflate(mActivity, R.layout.dialog_load, null);
// baseDialog.setContentView(view);
// TextView text = view.findViewById(R.id.progress_message);
// ImageView imge = view.findViewById(R.id.progress_view);
// animationDrawable = (AnimationDrawable) imge.getDrawable();
// if (animationDrawable != null) {
// animationDrawable.setOneShot(false);
// animationDrawable.start();
// }
// baseDialog.setCanceledOnTouchOutside(false);
// text.setText(content);
// baseDialog.show();
// //设置Dialog窗口大小
// WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
// params.width = 500;
// params.height = 200;
// dialog.getWindow().setAttributes(params);
// return baseDialog;
// }
//
// public void dismissDialog() {
// if (baseDialog != null) {
// baseDialog.dismiss();
// }
// }
}