XiMengJianYu/.svn/pristine/14/146b9cde02881c84556c0c8a96071231451d3721.svn-base
2023-04-17 17:58:44 +08:00

327 lines
15 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
// }
// }
}