1632 lines
65 KiB
Java
1632 lines
65 KiB
Java
package cn.shangyu.gdxzExpert.activity;
|
||
|
||
|
||
import static cn.shangyu.gdxzExpert.activity.MainActivity.YXREF;
|
||
import static cn.shangyu.gdxzExpert.activity.MainActivity.YXREGISTER;
|
||
import static cn.shangyu.gdxzExpert.activity.RegistActivity.MSG_SEND;
|
||
import static cn.shangyu.gdxzExpert.ecdemo.common.utils.CommomUtil.simpleDateFormat;
|
||
import static cn.shangyu.gdxzExpert.umeng.PushHelper.addUMToken;
|
||
import static cn.shangyu.gdxzExpert.utils.UIUtils.getHandler;
|
||
import static cn.shangyu.gdxzExpert.utils.Url.getlogin;
|
||
import static cn.shangyu.gdxzExpert.utils.Url.getsendSms;
|
||
import static cn.shangyu.gdxzExpert.utils.Url.umGetMobile;
|
||
import static cn.shangyu.gdxzExpert.utils.Url.umVerifyLogin;
|
||
import static cn.shangyu.gdxzExpert.utils.Url.wechatLogin;
|
||
|
||
import android.app.AlertDialog;
|
||
import android.content.Context;
|
||
import android.content.DialogInterface;
|
||
import android.content.Intent;
|
||
import android.graphics.Color;
|
||
import android.graphics.drawable.Drawable;
|
||
import android.text.Editable;
|
||
import android.text.InputType;
|
||
import android.text.Selection;
|
||
import android.text.Spannable;
|
||
import android.text.SpannableStringBuilder;
|
||
import android.text.Spanned;
|
||
import android.text.TextPaint;
|
||
import android.text.TextUtils;
|
||
import android.text.TextWatcher;
|
||
import android.text.method.LinkMovementMethod;
|
||
import android.text.style.ClickableSpan;
|
||
import android.text.style.ForegroundColorSpan;
|
||
import android.util.Log;
|
||
import android.view.Gravity;
|
||
import android.view.KeyEvent;
|
||
import android.view.LayoutInflater;
|
||
import android.view.View;
|
||
import android.view.View.OnFocusChangeListener;
|
||
import android.view.Window;
|
||
import android.view.WindowManager;
|
||
import android.view.inputmethod.InputMethodManager;
|
||
import android.widget.Button;
|
||
import android.widget.CheckBox;
|
||
import android.widget.CompoundButton;
|
||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||
import android.widget.EditText;
|
||
import android.widget.ImageView;
|
||
import android.widget.RelativeLayout;
|
||
import android.widget.TextView;
|
||
|
||
import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
|
||
import com.netease.nim.uikit.api.NimUIKit;
|
||
import com.netease.nim.uikit.common.ToastHelper;
|
||
import com.netease.nimlib.sdk.AbortableFuture;
|
||
import com.netease.nimlib.sdk.NIMClient;
|
||
import com.netease.nimlib.sdk.RequestCallback;
|
||
import com.netease.nimlib.sdk.RequestCallbackWrapper;
|
||
import com.netease.nimlib.sdk.ResponseCode;
|
||
import com.netease.nimlib.sdk.StatusBarNotificationConfig;
|
||
import com.netease.nimlib.sdk.auth.AuthService;
|
||
import com.netease.nimlib.sdk.auth.LoginInfo;
|
||
import com.umeng.message.PushAgent;
|
||
import com.umeng.socialize.UMAuthListener;
|
||
import com.umeng.socialize.UMShareAPI;
|
||
import com.umeng.socialize.UMShareConfig;
|
||
import com.umeng.socialize.bean.SHARE_MEDIA;
|
||
import com.umeng.umverify.UMResultCode;
|
||
import com.umeng.umverify.UMVerifyHelper;
|
||
import com.umeng.umverify.listener.UMTokenResultListener;
|
||
import com.umeng.umverify.model.UMTokenRet;
|
||
|
||
import org.json.JSONException;
|
||
import org.json.JSONObject;
|
||
|
||
import java.util.Date;
|
||
import java.util.HashMap;
|
||
import java.util.Map;
|
||
|
||
import cn.shangyu.gdxzExpert.R;
|
||
import cn.shangyu.gdxzExpert.application.BaseApplication;
|
||
import cn.shangyu.gdxzExpert.base.AppManager;
|
||
import cn.shangyu.gdxzExpert.base.BaseActivity;
|
||
import cn.shangyu.gdxzExpert.http.OnCallBackFromNet;
|
||
import cn.shangyu.gdxzExpert.netease.DemoCache;
|
||
import cn.shangyu.gdxzExpert.netease.config.preference.Preferences;
|
||
import cn.shangyu.gdxzExpert.netease.config.preference.UserPreferences;
|
||
import cn.shangyu.gdxzExpert.umeng.AuthPageConfig;
|
||
import cn.shangyu.gdxzExpert.umeng.BaseUIConfig;
|
||
import cn.shangyu.gdxzExpert.utils.AESUtil;
|
||
import cn.shangyu.gdxzExpert.utils.Constant;
|
||
import cn.shangyu.gdxzExpert.utils.DestroyActivityUtil;
|
||
import cn.shangyu.gdxzExpert.utils.LogUtil;
|
||
import cn.shangyu.gdxzExpert.utils.SharePrefUtil;
|
||
import cn.shangyu.gdxzExpert.utils.StringUtil;
|
||
import cn.shangyu.gdxzExpert.utils.ToastUtil;
|
||
import cn.shangyu.gdxzExpert.utils.UIUtils;
|
||
import cn.shangyu.gdxzExpert.utils.Url;
|
||
import cn.shangyu.gdxzExpert.utils.ValidateUtils;
|
||
import cn.shangyu.gdxzExpert.widget.ECAlertDialog;
|
||
import cn.shangyu.gdxzExpert.widget.LoadingPage.ResultState;
|
||
import cn.shangyu.gdxzExpert.widget.TimeButton;
|
||
import io.dcloud.feature.sdk.DCUniMPSDK;
|
||
import io.dcloud.feature.sdk.Interface.IUniMP;
|
||
|
||
/**
|
||
*
|
||
* LoginActivity.java
|
||
*
|
||
* @author ssy
|
||
* @date 2015-9-7 下午4:39:55
|
||
*
|
||
* 功能说明:登录页面
|
||
*
|
||
* @author liufang
|
||
* @since 2015-11-16 修改
|
||
*/
|
||
public class LoginNewActivity extends BaseActivity implements OnCallBackFromNet {
|
||
|
||
|
||
private EditText usernameEditText;
|
||
private EditText passwordEditText;
|
||
private EditText messageEditText;
|
||
|
||
private String currentUsername;
|
||
private String currentPassword;
|
||
public static int ERROR = 101;
|
||
private Button bt_login;
|
||
private TextView tv_forget,tv_sure;
|
||
private int state;
|
||
private String checkInfo;
|
||
private String deviceSpec;// 设备型号
|
||
private String deviceType = "0";// 设备类型(0安卓,1IOS)
|
||
private CheckBox mShowPass,cb_ok;
|
||
|
||
public static String PatientUrl = Url.getpatientList;
|
||
private RelativeLayout mRl_password, mRl_message;
|
||
private CheckBox mCb_change;
|
||
private boolean isPassLogin = false;
|
||
private TimeButton mTb_message;
|
||
private String system_time = null;
|
||
private UMVerifyHelper mPhoneNumberAuthHelper;
|
||
private PhoneNumberAuthHelper phoneNumberAuthHelper;
|
||
private UMTokenResultListener mTokenResultListener;
|
||
private ImageView im_wechat;
|
||
private AuthPageConfig mUIConfig;
|
||
private String yinsi1="登录即代表同意《肝胆相照隐私政策》和《肝胆相照用户服务协议》";
|
||
private String yinsi2="未注册的手机号验证登录后将自动创建肝胆相照账号,登录即代表同意《肝胆相照隐私政策》和《肝胆相照用户服务协议》";
|
||
private String wechat_user_info;
|
||
|
||
@Override
|
||
public void setTitle() {
|
||
// initFontScale();
|
||
top_title.setText("登录");
|
||
top_back_layout.setVisibility(View.VISIBLE);
|
||
// top_right_text.setVisibility(View.VISIBLE);
|
||
// top_right_text.setText("注册");
|
||
}
|
||
|
||
|
||
@Override
|
||
public View onCreateSuccessedView() {
|
||
// initFontScale();
|
||
// ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init();
|
||
// View view = UIUtils.inflate(R.layout.activity_login_new);
|
||
View view = View.inflate(ct, R.layout.activity_login_new, null);
|
||
|
||
// initFontScale();
|
||
// Constant.islogout = 1;
|
||
DestroyActivityUtil.addDestoryActivityToMap(this,"LoginActivity");
|
||
usernameEditText = (EditText) view.findViewById(R.id.username);// 账号
|
||
// 设置输入框获得焦点hint提示消失添加监听
|
||
usernameEditText.setOnFocusChangeListener(onFocusAutoClearHintListener);
|
||
passwordEditText = (EditText) view.findViewById(R.id.password);// 密码
|
||
messageEditText = (EditText) view.findViewById(R.id.et_get_message);
|
||
// 1.7.1 双方式登录
|
||
mRl_password = (RelativeLayout) view.findViewById(R.id.rl_password);
|
||
mRl_message = (RelativeLayout) view.findViewById(R.id.rl_message);
|
||
mCb_change = (CheckBox) view.findViewById(R.id.bt_change);
|
||
tv_forget = (TextView) view.findViewById(R.id.tv_forget);// 忘记密码
|
||
|
||
mTb_message = (TimeButton) view.findViewById(R.id.tb_send_message);
|
||
|
||
mTb_message.onCreate();
|
||
mTb_message.clearTimer();
|
||
mTb_message.setTextBefore("获取验证码").setLenght(60 * 1000);
|
||
passwordEditText.setOnFocusChangeListener(onFocusAutoClearHintListener);
|
||
bt_login = (Button) view.findViewById(R.id.bt_login);// 登录
|
||
|
||
mTb_message.setOnClickListener(this);
|
||
bt_login.setOnClickListener(this);// 登录
|
||
tv_forget.setOnClickListener(this);// 忘记密码
|
||
mShowPass = (CheckBox) view.findViewById(R.id.show_password);// 是否显示密码
|
||
tv_sure=view.findViewById(R.id.tv_sure);
|
||
// tv_sure.setMovementMethod(ScrollingMovementMethod.getInstance());
|
||
cb_ok=view.findViewById(R.id.cb_ok);
|
||
//取得设置好的drawable对象
|
||
Drawable drawable = this.getResources().getDrawable( R.drawable.selector_new_check );
|
||
//设置drawable对象的大小
|
||
drawable . setBounds ( 0 , 0 , 54 , 54 );
|
||
//设置CheckBox对象的位置,对应为左、上、右、下
|
||
cb_ok.setCompoundDrawables ( drawable , null , null , null );
|
||
im_wechat=view.findViewById(R.id.im_wechat);
|
||
im_wechat.setOnClickListener(this);
|
||
yinSi1();
|
||
mShowPass.setOnCheckedChangeListener(new OnCheckedChangeListener() {
|
||
|
||
@Override
|
||
public void onCheckedChanged(CompoundButton buttonView,
|
||
boolean isChecked) {
|
||
if (isChecked) {// 显示密码
|
||
passwordEditText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
|
||
} else {// 隐藏密码
|
||
passwordEditText.setInputType(InputType.TYPE_CLASS_TEXT
|
||
| InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||
}
|
||
passwordEditText.postInvalidate();
|
||
// 切换后将EditText光标置于末尾
|
||
CharSequence charSequence = passwordEditText.getText();
|
||
if (charSequence instanceof Spannable) {
|
||
Spannable spanText = (Spannable) charSequence;
|
||
Selection.setSelection(spanText, charSequence.length());
|
||
}
|
||
}
|
||
});
|
||
String mobile = SharePrefUtil.getString(ct, Constant.SP_IS_FIRST_NAME,Constant.mobile, "");// 手机号
|
||
// 验证是否是手机号
|
||
if (ValidateUtils.isMobileNum(mobile)) {
|
||
usernameEditText.setText(mobile);
|
||
usernameEditText.setSelection(mobile.length());
|
||
}
|
||
Intent intent = getIntent();
|
||
Boolean flag = intent.getBooleanExtra("flag", false);
|
||
if (flag) {
|
||
usernameEditText.setText(intent.getStringExtra("phone"));
|
||
}
|
||
// 如果用户名改变,清空密码
|
||
usernameEditText.addTextChangedListener(new TextWatcher() {
|
||
@Override
|
||
public void onTextChanged(CharSequence s, int start, int before,
|
||
int count) {
|
||
passwordEditText.setText(null);
|
||
}
|
||
|
||
@Override
|
||
public void beforeTextChanged(CharSequence s, int start, int count,
|
||
int after) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void afterTextChanged(Editable s) {
|
||
}
|
||
});
|
||
mCb_change.setOnCheckedChangeListener(new OnCheckedChangeListener() {
|
||
|
||
@Override
|
||
public void onCheckedChanged(CompoundButton buttonView,
|
||
boolean isChecked) {
|
||
cb_ok.setChecked(false);
|
||
// TODO Auto-generated method stub
|
||
if (isChecked) {
|
||
// top_right_text.setVisibility(View.VISIBLE);
|
||
// top_title.setText("登录");
|
||
isPassLogin = true;
|
||
mCb_change.setText("短信验证码登录");
|
||
tv_forget.setVisibility(View.VISIBLE);
|
||
mRl_password.setVisibility(View.VISIBLE);
|
||
mRl_message.setVisibility(View.GONE);
|
||
yinSi2();
|
||
} else {
|
||
|
||
|
||
isPassLogin = false;
|
||
// top_right_text.setVisibility(View.GONE);
|
||
// top_title.setText("快速登录");
|
||
yinSi1();
|
||
mCb_change.setText("账号密码登录");
|
||
tv_forget.setVisibility(View.GONE);
|
||
mRl_password.setVisibility(View.GONE);
|
||
mRl_message.setVisibility(View.VISIBLE);
|
||
// mLine.setVisibility(View.VISIBLE);
|
||
// mLl_num.setVisibility(View.VISIBLE);
|
||
|
||
}
|
||
}
|
||
});
|
||
|
||
getDeviceInfo();
|
||
if(getIntent()!=null&&!StringUtil.isEmpty(getIntent().getStringExtra("kick_out")))
|
||
{
|
||
showlogout(getIntent().getStringExtra("kick_out"));
|
||
}
|
||
tv_forget.setVisibility(View.GONE);
|
||
mRl_password.setVisibility(View.GONE);
|
||
mRl_message.setVisibility(View.VISIBLE);
|
||
sdkInit();
|
||
return view;
|
||
|
||
|
||
}
|
||
|
||
private void yinSi1()
|
||
{
|
||
SpannableStringBuilder spannableBuilder = new SpannableStringBuilder(yinsi2);
|
||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
spannableBuilder.setSpan(colorSpan1, 31, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
|
||
spannableBuilder.setSpan(colorSpan, 42, 54, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
ClickableSpan clickableSpanOne = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getyyzc);
|
||
intent.putExtra("title", "《肝胆相照隐私政策》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
ClickableSpan clickableSpanOne1 = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getzcxy);
|
||
intent.putExtra("title", "《肝胆相照用户服务协议》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
spannableBuilder.setSpan(clickableSpanOne, 31, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
spannableBuilder.setSpan(clickableSpanOne1, 42, 54, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
tv_sure.setMovementMethod(LinkMovementMethod.getInstance());
|
||
tv_sure.setText(spannableBuilder);
|
||
}
|
||
private void yinSi2()
|
||
{
|
||
SpannableStringBuilder spannableBuilder = new SpannableStringBuilder(yinsi1);
|
||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
spannableBuilder.setSpan(colorSpan1, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
|
||
spannableBuilder.setSpan(colorSpan, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
ClickableSpan clickableSpanOne = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getyyzc);
|
||
intent.putExtra("title", "《肝胆相照隐私政策》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
ClickableSpan clickableSpanOne1 = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getzcxy);
|
||
intent.putExtra("title", "《肝胆相照用户服务协议》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
spannableBuilder.setSpan(clickableSpanOne, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
spannableBuilder.setSpan(clickableSpanOne1, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
tv_sure.setMovementMethod(LinkMovementMethod.getInstance());
|
||
tv_sure.setText(spannableBuilder);
|
||
}
|
||
public void sdkInit() {
|
||
// showProgressDialog("网络检测中");
|
||
mTokenResultListener = new UMTokenResultListener() {
|
||
@Override
|
||
public void onTokenSuccess(String s) {
|
||
// closeProgressDialog();
|
||
|
||
// Log.e("LoginTAG", "jsonStrings "+mPhoneNumberAuthHelper.getCurrentCarrierName());
|
||
mPhoneNumberAuthHelper.hideLoginLoading();
|
||
|
||
UMTokenRet tokenRet = null;
|
||
try {
|
||
tokenRet = UMTokenRet.fromJson(s);
|
||
if(UMResultCode.CODE_ERROR_ENV_CHECK_SUCCESS.equals(tokenRet.getCode()))
|
||
{
|
||
mPhoneNumberAuthHelper.getLoginToken(LoginNewActivity.this,3000);
|
||
}
|
||
else if(UMResultCode.CODE_ERROR_ENV_CHECK_SUCCESS.equals(tokenRet.getCode()))
|
||
{
|
||
mPhoneNumberAuthHelper.getLoginToken(LoginNewActivity.this,3000);
|
||
}
|
||
else if (UMResultCode.CODE_START_AUTHPAGE_SUCCESS.equals(tokenRet.getCode())) {
|
||
// Log.d("LoginTAG", "唤起授权页成功:" + s+mPhoneNumberAuthHelper.getCurrentCarrierName());
|
||
}
|
||
|
||
else if (UMResultCode.CODE_GET_TOKEN_SUCCESS.equals(tokenRet.getCode())) {
|
||
Log.d("LoginTAG", "获取token成功:" + s);
|
||
// mPhoneNumberAuthHelper.hideLoginLoading();
|
||
// mPhoneNumberAuthHelper.quitLoginPage();
|
||
getResultWithToken(tokenRet.getToken());
|
||
|
||
}
|
||
else
|
||
{
|
||
ToastUtil.showMessage(s);
|
||
}
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
Log.d("LoginTAG", "获取token失败:" + e.toString());
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void onTokenFailed(String s) {
|
||
Log.d("LoginTAG", "获取token失败:" + s);
|
||
// closeProgressDialog();
|
||
// UMTokenRet tokenRet = null;
|
||
mPhoneNumberAuthHelper.hideLoginLoading();
|
||
// mPhoneNumberAuthHelper.quitLoginPage();
|
||
// try {
|
||
// tokenRet = UMTokenRet.fromJson(s);
|
||
// if (UMResultCode.CODE_ERROR_USER_CANCEL.equals(tokenRet.getCode())) {
|
||
// //模拟的是必须登录 否则直接退出app的场景
|
||
//// finish();
|
||
// } else {
|
||
// Toast.makeText(LoginNewActivity.this, "一键登录失败切换到其他登录方式", Toast.LENGTH_SHORT).show();
|
||
//// Intent pIntent = new Intent(OneKeyLoginActivity.this, MessageActivity.class);
|
||
//// startActivityForResult(pIntent, 1002);
|
||
// }
|
||
// } catch (Exception e) {
|
||
// e.printStackTrace();
|
||
// }
|
||
// Toast.makeText(LoginNewActivity.this, s, Toast.LENGTH_SHORT).show();
|
||
|
||
}
|
||
};
|
||
mPhoneNumberAuthHelper = UMVerifyHelper.getInstance(this, mTokenResultListener);
|
||
mPhoneNumberAuthHelper.setAuthSDKInfo("ekYGnmwFM/LIyP8CwBJtN7OPVgg9UJuLlAS2yfVvhHYxbd3zx5mzRtkCU2S+81j5t1NjiHwDiirFISu8mApJhsOHqpqq9fDVfmsrcLhEfDUuzlVpPTVYcN0+B2Rxm+zK1FzLVq6VGf+GOLW2NLmH5VbJXLDX5wPdedcHSgsJikyD6+OypaDr/01DjsVLt8ElMqxcrptYWccUAAPQdvucA0tcjQcUN6beJpcB3zSTZghbvt0K6gjrNfzTb3ypudW5iPb55XYEGeqh0K3YmNphTLhiL+GC5oGJ+tNfsjICKau//5TTTmYGAw==");
|
||
// mPhoneNumberAuthHelper.accelerateLoginPage(5000, new UMPreLoginResultListener() {
|
||
// @Override
|
||
// public void onTokenSuccess(final String vendor) {
|
||
// Log.d("LoginTAG", "vendor:" + vendor);
|
||
//// MainPortraitActivity.this.runOnUiThread(new Runnable() {
|
||
//// @Override
|
||
//// public void run() {
|
||
//// mRetTV.setText(vendor + "预取号成功!");
|
||
//// }
|
||
//// });
|
||
// }
|
||
//
|
||
// @Override
|
||
// public void onTokenFailed(final String vendor, final String ret) {
|
||
// Log.d("LoginTAG", "vendor:" + vendor+" "+ret);
|
||
//// MainPortraitActivity.this.runOnUiThread(new Runnable() {
|
||
//// @Override
|
||
//// public void run() {
|
||
//// mRetTV.setText(vendor + "预取号失败:\n" + ret);
|
||
//// }
|
||
//// });
|
||
// }
|
||
// });
|
||
// TokenResultListener tokenResultListener=new TokenResultListener() {
|
||
// @Override
|
||
// public void onTokenSuccess(String s) {
|
||
// Log.d("LoginTAG", "TokenResultListener成功:" + s);
|
||
// }
|
||
//
|
||
// @Override
|
||
// public void onTokenFailed(String s) {
|
||
// Log.d("LoginTAG", "TokenResultListener失败:" + s);
|
||
// }
|
||
// };
|
||
|
||
|
||
// mPhoneNumberAuthHelper.expandAuthPageCheckedScope(true);
|
||
mUIConfig = BaseUIConfig.init(0,this, mPhoneNumberAuthHelper);
|
||
mUIConfig.configAuthPage();
|
||
|
||
// phoneNumberAuthHelper= PhoneNumberAuthHelper.getInstance(this, tokenResultListener);
|
||
mPhoneNumberAuthHelper.checkEnvAvailable(2);
|
||
// if(!checkRet){
|
||
// Log.d("LoginTAG","当前网络不支持,请检测蜂窝网络后重试");
|
||
// ToastUtil.showMessage("当前网络不支持,请检测蜂窝网络后重试");
|
||
// }
|
||
// phoneNumberAuthHelper.getLoginToken(this,2000);
|
||
|
||
|
||
}
|
||
|
||
Map<String, String> we=new HashMap<>();
|
||
|
||
private UMAuthListener umAuthListener = new UMAuthListener() {
|
||
@Override
|
||
public void onStart(SHARE_MEDIA platform) {
|
||
//授权开始的回调
|
||
}
|
||
@Override
|
||
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
|
||
mPhoneNumberAuthHelper.quitLoginPage();
|
||
we.clear();
|
||
we.put("openid",data.get("openid"));
|
||
we.put("nickname",data.get("name"));
|
||
we.put("headimgurl",data.get("iconurl"));
|
||
we.put("unionid",data.get("unionid"));
|
||
JSONObject json = new JSONObject(we);
|
||
wechat_user_info=json.toString().replaceAll(" +","");
|
||
wechatLog(wechat_user_info);
|
||
// Toast.makeText(getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
|
||
|
||
// String name = data.get("name");
|
||
// openid = data.get("openid");
|
||
// if(name!=null)
|
||
// data.put("nickname",name);
|
||
// unionid = data.get("unionid");
|
||
// if(!StringUtil.isEmpty(data.get("unionid")))
|
||
SharePrefUtil.saveString(LoginNewActivity.this,"unionid_wechat",data.get("unionid"));
|
||
// Log.d("gdxzwe","参数"+data.toString());
|
||
|
||
// String gender = data.get("gender");
|
||
// String iconurl = data.get("iconurl");
|
||
// String city = data.get("city");
|
||
// String prvinice = data.get("prvinice");
|
||
// String country = data.get("country");
|
||
// String privilege = data.get("privilege");
|
||
|
||
// Log.d("gdxzwe","name = "+name);
|
||
// LogUtil.i("openid = "+openid);
|
||
// LogUtil.i("gender = "+gender);
|
||
// LogUtil.i("iconurl = "+iconurl);
|
||
// LogUtil.i("city = "+city);
|
||
// LogUtil.i("prvinice = "+prvinice);
|
||
// LogUtil.i("country = "+country);
|
||
// LogUtil.i("data = "+data.toString());
|
||
// {country=中国,
|
||
// unionid=oCwO1wOWbP4RqmG7m5KnSdhLnyzg,
|
||
// gender=男,
|
||
// city=,
|
||
// openid=odr10s9qElmuO4O0GVE_i7RXuJfU,
|
||
// language=zh_CN,
|
||
// profile_image_url=http://thirdwx.qlogo.cn/mmopen/vi_32/t7KAzibDicb1pRq7VvLct5XGT7SJmTMlawIO9teLSqad0VVljEC1l9HMcibyWKxy07DJlbHkj620hcD6W8d5NXykg/132,
|
||
// accessToken=36_YNuIDu65cbK53Eat1CDec0IX8kGRTZePWZZvcEC-7clvoy2SC1qXVAf99RGlX3QyGzqy9sDFGJkyLB1R4YcaRn5f6EFWK6QFAVRQ5LlXg9M,
|
||
// access_token=36_YNuIDu65cbK53Eat1CDec0IX8kGRTZePWZZvcEC-7clvoy2SC1qXVAf99RGlX3QyGzqy9sDFGJkyLB1R4YcaRn5f6EFWK6QFAVRQ5LlXg9M,
|
||
// uid=oCwO1wOWbP4RqmG7m5KnSdhLnyzg,
|
||
// province=,
|
||
// screen_name=12355,
|
||
// name=12355,
|
||
// iconurl=http://thirdwx.qlogo.cn/mmopen/vi_32/t7KAzibDicb1pRq7VvLct5XGT7SJmTMlawIO9teLSqad0VVljEC1l9HMcibyWKxy07DJlbHkj620hcD6W8d5NXykg/132,
|
||
// expiration=1597635314447,
|
||
// expires_in=1597635314447,
|
||
// refreshToken=36_182iVW8iB03NQUXg7ktFTi0Zj4Z6SurQv9MZyYuB1rr3fHcOE-lFqD2Ue6k9X3-JC4BcsmdxqNuFi5vX69_hATi3JKj78g8xi6-xS1udCTI}
|
||
|
||
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
|
||
|
||
// Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
|
||
}
|
||
|
||
@Override
|
||
public void onCancel(SHARE_MEDIA platform, int action) {
|
||
|
||
// Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
|
||
}
|
||
};
|
||
private void wechatLog(String wechat_user_info)
|
||
{
|
||
Map<String, String> param = new HashMap<>();
|
||
param.put("wechat_user_info",wechat_user_info);
|
||
param.put("current_spec", deviceSpec);
|
||
sendJsonPostParamtoNetSignMD5(wechatLogin,param,203,this);
|
||
|
||
}
|
||
/**
|
||
* 进入app就需要登录的场景使用
|
||
*/
|
||
private void oneKeyLogin() {
|
||
mPhoneNumberAuthHelper = UMVerifyHelper.getInstance(getApplicationContext(), mTokenResultListener);
|
||
// mUIConfig.configAuthPage();
|
||
getLoginToken(5000);
|
||
}
|
||
|
||
/**
|
||
* 拉起授权页
|
||
* @param timeout 超时时间
|
||
*/
|
||
public void getLoginToken(int timeout) {
|
||
mPhoneNumberAuthHelper.getLoginToken(this, timeout);
|
||
|
||
}
|
||
|
||
String token;
|
||
public void getResultWithToken(String token) {
|
||
this.token=token;
|
||
showProgressDialog("正在登录");
|
||
Map<String, String> param = new HashMap<>();
|
||
param.put("token",token);
|
||
sendJsonPostParamtoNetSignMD5(umGetMobile,param,201,this);
|
||
}
|
||
|
||
|
||
@Override
|
||
protected void onNewIntent(Intent intent) {
|
||
super.onNewIntent(intent);
|
||
setIntent(intent);
|
||
if(!StringUtil.isEmpty(getIntent().getStringExtra("kick_out")))
|
||
{
|
||
showlogout(getIntent().getStringExtra("kick_out"));
|
||
}
|
||
}
|
||
|
||
public void showlogout(String phone)
|
||
{
|
||
Date date = new Date(System.currentTimeMillis());
|
||
ECAlertDialog buildAlert = ECAlertDialog.buildAlert(this,
|
||
getString(R.string.nim_kick_out)+
|
||
simpleDateFormat.format(date)+getString(R.string.nim_kick_out1)+
|
||
phone+getString(R.string.nim_kick_out2)
|
||
, getString(R.string.dialog_btn_confim),
|
||
new DialogInterface.OnClickListener() {
|
||
@Override
|
||
public void onClick(DialogInterface dialog, int which) {
|
||
|
||
dialog.dismiss();
|
||
}
|
||
});
|
||
buildAlert.setTitle("异地登陆");
|
||
buildAlert.setCanceledOnTouchOutside(false);
|
||
buildAlert.setCancelable(false);
|
||
buildAlert.show();
|
||
}
|
||
|
||
/**
|
||
* 设置输入框获得焦点hint提示消失
|
||
*/
|
||
public static OnFocusChangeListener onFocusAutoClearHintListener = new OnFocusChangeListener() {
|
||
|
||
@Override
|
||
public void onFocusChange(View v, boolean hasFocus) {
|
||
EditText textView = (EditText) v;
|
||
String hint;
|
||
if (hasFocus) {
|
||
hint = textView.getHint().toString();
|
||
textView.setTag(hint);
|
||
textView.setHint("");
|
||
} else {
|
||
hint = textView.getTag().toString();
|
||
textView.setHint(hint);
|
||
}
|
||
}
|
||
};
|
||
|
||
@Override
|
||
public ResultState onLoad() {
|
||
return ResultState.STATE_SUCCESSED;
|
||
}
|
||
|
||
|
||
// 保存个人信息
|
||
public void getSaveUserInfor(int type,JSONObject objs) throws JSONException {
|
||
|
||
JSONObject date = objs.getJSONObject("data");
|
||
|
||
String uuid = date.optString("uuid");
|
||
String realName = date.optString("realName");
|
||
String mobile = date.optString("mobile");
|
||
String photo = date.optString("photo");
|
||
String email = date.optString("email");
|
||
String birthDate = date.optString("birthDate");
|
||
String hospitalUuid = date.optString("hospitalUuid");
|
||
String hospitalName = date.optString("hospitalName");
|
||
String officeUuid = date.optString("officeUuid");
|
||
String officeName = date.optString("officeName");
|
||
String officePhone = date.optString("officePhone");
|
||
String positionUuid = date.optString("positionUuid");
|
||
String positionName = date.optString("positionName");
|
||
String intro = date.optString("intro");
|
||
String certificate = date.optString("certificate");
|
||
String certificateImg = date.optString("certificateImg");
|
||
String qrcode = date.optString("qrcode");
|
||
checkInfo = date.optString("checkInfo");
|
||
String cityId = date.optString("cityId");
|
||
String countyId = date.optString("countyId");
|
||
String provId = date.optString("provId");
|
||
|
||
String access_token = "";
|
||
String refresh_token = "";
|
||
if(objs.has("access_token")){
|
||
access_token = objs.getString("access_token");
|
||
refresh_token = objs.getString("refresh_token");
|
||
}
|
||
if(date.has("access_token")){
|
||
access_token = date.getString("access_token");
|
||
refresh_token = date.getString("refresh_token");
|
||
}
|
||
|
||
int isStar = date.optInt("isStar");
|
||
int sex = date.optInt("sex");
|
||
state = date.optInt("state");// 审核状态( 1.待审核 2.审核中 3.需要补充修改资料 4.再次提交审核 5.拒绝 6.已通过
|
||
SharePrefUtil.saveString(ct, Constant.USERID, uuid);
|
||
SharePrefUtil.saveString(ct, Constant.uuid, uuid);// 唯一标识,我的uuid
|
||
SharePrefUtil.saveString(ct, Constant.realName, realName);// 真实姓名
|
||
SharePrefUtil.saveString(ct, Constant.mobile, mobile);// 手机号
|
||
if (!StringUtil.isEmpty(currentUsername)
|
||
&& ValidateUtils.isMobileNum(currentUsername)) {
|
||
SharePrefUtil.saveString(ct, Constant.SP_IS_FIRST_NAME,
|
||
Constant.mobile, currentUsername);// 手机号,这个为了重新登录后回显之前的手机号
|
||
} else if (!StringUtil.isEmpty(mobile)
|
||
&& ValidateUtils.isMobileNum(mobile)) {
|
||
SharePrefUtil.saveString(ct, Constant.SP_IS_FIRST_NAME,
|
||
Constant.mobile, mobile);// 手机号,这个为了重新登录后回显之前的手机号
|
||
}
|
||
SharePrefUtil.saveString(ct, Constant.photo, photo);// 头像路径
|
||
SharePrefUtil.saveString(ct, "email", email);// 邮箱
|
||
SharePrefUtil.saveString(ct, "birthDate", birthDate);// 出生日期
|
||
SharePrefUtil.saveString(ct, "hospitalUuid", hospitalUuid);// 坐诊医院uuid
|
||
SharePrefUtil.saveString(ct, "hospitalName", hospitalName);// 坐诊医院名称
|
||
SharePrefUtil.saveString(ct, "officeUuid", officeUuid);// 科室uuid
|
||
SharePrefUtil.saveString(ct, "officeName", officeName);// 科室名称
|
||
SharePrefUtil.saveString(ct, "officePhone", officePhone);// 科室电话
|
||
SharePrefUtil.saveString(ct, "positionUuid", positionUuid);// //职称uuid
|
||
SharePrefUtil.saveString(ct, "positionName", positionName);// //职称名称
|
||
SharePrefUtil.saveString(ct, "intro", intro);// 简介
|
||
SharePrefUtil.saveString(ct, "certificate", certificate);// 执业资格证
|
||
SharePrefUtil.saveString(ct, "certificateImg", certificateImg);// 执业资格证图片
|
||
SharePrefUtil.saveString(ct, "qrcode", qrcode);// 二维码
|
||
SharePrefUtil.saveString(ct, "checkInfo", checkInfo);// 审核信息
|
||
SharePrefUtil.saveString(ct, "cityId", cityId);// 市id
|
||
SharePrefUtil.saveString(ct, "countyId", countyId);// //区县id
|
||
SharePrefUtil.saveString(ct, "provId", provId);// 省id
|
||
//让 uniapp 拿到
|
||
SharePrefUtil.saveString(ct, "access_token", access_token);// access_token
|
||
SharePrefUtil.saveString(ct, "refresh_token", refresh_token);// refresh_token
|
||
|
||
SharePrefUtil.saveInt(ct, "isStar", isStar);// 是否是肝胆名医 0否 1是
|
||
SharePrefUtil.saveInt(ct, "sex", sex);// 性别(0.男 1.女)
|
||
SharePrefUtil.saveInt(ct, "state", state);// 审核状态( 1.待审核
|
||
|
||
initReport();
|
||
addUMToken(PushAgent.getInstance(this).getRegistrationId());
|
||
// 2.审核中3.需要补充修改资料
|
||
// 4.再次提交审核5.拒绝 6.已通过)
|
||
// 进行判断是否进入主页面还是进入设置页面
|
||
if(type==1)//老的登录
|
||
{
|
||
getLoginInfo(state,objs);
|
||
}
|
||
else
|
||
{
|
||
getLoginInfo(state,date);//友盟一键登录
|
||
}
|
||
|
||
|
||
|
||
}
|
||
public void getYunxin(JSONObject objs) throws JSONException {
|
||
|
||
String yx_accid =objs.getString("YX_accid");
|
||
String yx_token =objs.getString("YX_token");
|
||
SharePrefUtil.saveString(ct, Constant.yx_accid, yx_accid);
|
||
SharePrefUtil.saveString(ct, Constant.yx_token, yx_token);
|
||
}
|
||
|
||
public void getLoginInfo(int state,JSONObject objs) throws JSONException {
|
||
|
||
if (state != 6) {
|
||
// 需要完善资料,跳转到完善资料页面
|
||
// ToastUtil.showToast("登录成功,请完善资料");
|
||
// 启动登录设置信息界面
|
||
Intent intent = new Intent(this, LoginSetInfoActivity.class);
|
||
intent.putExtra("checkInfo", checkInfo);
|
||
intent.putExtra("state", state);
|
||
startActivity(intent);
|
||
closeProgressDialog();
|
||
Constant.islogout = 2;
|
||
SharePrefUtil.saveBoolean(ct, Constant.IS_LOGIN, true);
|
||
this.finish();
|
||
} else {
|
||
getYunxin(objs);
|
||
|
||
// 获取患者列表
|
||
String USERID = SharePrefUtil.getString(ct, Constant.USERID, "");
|
||
|
||
// 获取患者列表存到数据库
|
||
BaseActivity.getPatientList(this, PatientUrl, USERID);
|
||
String yx_accid =SharePrefUtil.getString(ct, Constant.yx_accid, "");
|
||
String yx_token =SharePrefUtil.getString(ct, Constant.yx_token, "");
|
||
doLauncherAction();
|
||
// 登录
|
||
loginYunxin(yx_accid,yx_token);
|
||
|
||
}
|
||
|
||
};
|
||
public void loginYunxin(String yx_accid,String yx_token)
|
||
{
|
||
// 演示15s后手动登录,登录成功后,可以正常收发数据
|
||
getHandler().postDelayed(() -> {
|
||
AbortableFuture<LoginInfo> loginRequest = NIMClient.getService(AuthService.class).login(
|
||
new LoginInfo(yx_accid, yx_token));
|
||
loginRequest.setCallback(new RequestCallbackWrapper() {
|
||
|
||
@Override
|
||
public void onResult(int code, Object result, Throwable exception) {
|
||
Log.i("test", "real login, code=" + code);
|
||
if (code == ResponseCode.RES_SUCCESS) {
|
||
DemoCache.setAccount(yx_accid);
|
||
saveLoginInfo(yx_accid, yx_token);
|
||
// 初始化消息提醒配置
|
||
initNotificationConfig();
|
||
finish();
|
||
}
|
||
}
|
||
});
|
||
}, 5 * 1000);
|
||
}
|
||
|
||
|
||
|
||
public void wechatLogin()
|
||
{
|
||
UMShareConfig config = new UMShareConfig();
|
||
config.isNeedAuthOnGetUserInfo(true);
|
||
UMShareAPI.get(LoginNewActivity.this).setShareConfig(config);
|
||
UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.WEIXIN, umAuthListener);
|
||
}
|
||
public Boolean isAgree()
|
||
{
|
||
if(cb_ok.isChecked())
|
||
{
|
||
|
||
return true;
|
||
}
|
||
else
|
||
return false;
|
||
}
|
||
|
||
@Override
|
||
protected void processClick(View v) {
|
||
// AGP 8.0+ R.id 不再是 final 常量,不能用于 switch,改用 if-else
|
||
int id = v.getId();
|
||
if (id == R.id.im_wechat) {//微信登录
|
||
if(!isAgree())
|
||
{
|
||
if (isPassLogin)
|
||
{
|
||
show_yinsi(true);
|
||
}
|
||
else
|
||
{
|
||
show_yinsi2(true);
|
||
}
|
||
// ToastUtil.showMessage(R.string.custom_toast);
|
||
return;
|
||
}
|
||
|
||
wechatLogin();
|
||
} else if (id == R.id.top_back_layout) {
|
||
// 返回
|
||
finish();
|
||
handleBackClose();
|
||
if (false) {
|
||
}
|
||
} else if (id == R.id.bt_login) {
|
||
// 登录
|
||
|
||
View view = getWindow().peekDecorView();
|
||
if (view != null) {
|
||
InputMethodManager inputmanger = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||
inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||
}
|
||
if(!isAgree())
|
||
{
|
||
if (isPassLogin)
|
||
{
|
||
show_yinsi(false);
|
||
}
|
||
else
|
||
{
|
||
show_yinsi2(false);
|
||
}
|
||
// ToastUtil.showMessage(R.string.custom_toast);
|
||
return;
|
||
}
|
||
if (isPassLogin) {
|
||
login();
|
||
} else {
|
||
MessageLosin();
|
||
}
|
||
} else if (id == R.id.tb_send_message) {
|
||
// 短信验证码
|
||
// isAgree();
|
||
if (!UIUtils.isNetWorkConnected(this)) {
|
||
ToastUtil.showToast("网络不可用,请连接网络再试");
|
||
return;
|
||
}
|
||
currentUsername = usernameEditText.getText().toString();
|
||
Map<String, String> param = new HashMap<>();
|
||
param.put("mobile",currentUsername);
|
||
param.put("type","7");
|
||
sendJsonPostParamtoNetSignMD5(getsendSms,param,MSG_SEND,this);
|
||
} else if (id == R.id.top_right_text) {
|
||
// 注册
|
||
startActivityForResult(new Intent(this, RegistActivity.class), 0);
|
||
} else if (id == R.id.tv_forget) {
|
||
// 忘记密码
|
||
String mobile = usernameEditText.getText().toString();
|
||
Intent i = new Intent(this, ForgetActivity.class);
|
||
i.putExtra("mobile", mobile);
|
||
startActivity(i);
|
||
}
|
||
}
|
||
|
||
public void show_yinsi(Boolean iswechat)
|
||
{
|
||
LayoutInflater inflater = LayoutInflater.from(this);
|
||
RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.dialog_new_notitle, null);
|
||
AlertDialog dialog3 = new AlertDialog.Builder(
|
||
LoginNewActivity.this,AlertDialog.THEME_HOLO_LIGHT).create();
|
||
Button btn_sure = (Button) layout.findViewById(R.id.btn_sure);
|
||
Button btn_cancel = (Button) layout.findViewById(R.id.btn_cancel);
|
||
TextView tv_tishi=layout.findViewById(R.id.tv_tishi);
|
||
SpannableStringBuilder spannableBuilder = new SpannableStringBuilder(yinsi1);
|
||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
spannableBuilder.setSpan(colorSpan1, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
|
||
spannableBuilder.setSpan(colorSpan, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
ClickableSpan clickableSpanOne = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getyyzc);
|
||
intent.putExtra("title", "《肝胆相照隐私政策》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
ClickableSpan clickableSpanOne1 = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getzcxy);
|
||
intent.putExtra("title", "《肝胆相照用户服务协议》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
spannableBuilder.setSpan(clickableSpanOne, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
spannableBuilder.setSpan(clickableSpanOne1, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
tv_tishi.setMovementMethod(LinkMovementMethod.getInstance());
|
||
tv_tishi.setText(spannableBuilder);
|
||
tv_tishi.setGravity(Gravity.LEFT);
|
||
dialog3.show();
|
||
Window window =dialog3.getWindow();
|
||
WindowManager.LayoutParams layoutParams = window.getAttributes();
|
||
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||
layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||
window.setAttributes(layoutParams);
|
||
dialog3.getWindow().setContentView(layout);
|
||
dialog3.setCanceledOnTouchOutside(false);
|
||
btn_cancel.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
// TODO Auto-generated method stub
|
||
dialog3.dismiss();
|
||
|
||
}
|
||
});
|
||
btn_sure.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
|
||
dialog3.dismiss();
|
||
if(iswechat)
|
||
{
|
||
wechatLogin();
|
||
}
|
||
else
|
||
{
|
||
if (isPassLogin) {
|
||
login();
|
||
} else {
|
||
MessageLosin();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
private void show_yinsi2(Boolean iswechat)
|
||
{
|
||
LayoutInflater inflater = LayoutInflater.from(this);
|
||
RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.dialog_new_notitle, null);
|
||
AlertDialog dialog3 = new AlertDialog.Builder(
|
||
LoginNewActivity.this,AlertDialog.THEME_HOLO_LIGHT).create();
|
||
Button btn_sure = (Button) layout.findViewById(R.id.btn_sure);
|
||
Button btn_cancel = (Button) layout.findViewById(R.id.btn_cancel);
|
||
TextView tv_tishi=layout.findViewById(R.id.tv_tishi);
|
||
SpannableStringBuilder spannableBuilder = new SpannableStringBuilder(yinsi2);
|
||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(Color.parseColor("#8B2316"));
|
||
spannableBuilder.setSpan(colorSpan1, 31, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
|
||
spannableBuilder.setSpan(colorSpan, 42, 54, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
ClickableSpan clickableSpanOne = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getyyzc);
|
||
intent.putExtra("title", "《肝胆相照隐私政策》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
ClickableSpan clickableSpanOne1 = new ClickableSpan() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(LoginNewActivity.this,
|
||
NewsDetailActivity.class);
|
||
intent.putExtra("url", Url.getzcxy);
|
||
intent.putExtra("title", "《肝胆相照用户服务协议》");
|
||
// intent.putExtra("from", "WelcomeUI");
|
||
startActivity(intent);
|
||
}
|
||
@Override
|
||
public void updateDrawState(TextPaint ds) {
|
||
//点击事件去掉下划线
|
||
ds.setUnderlineText(false);
|
||
}
|
||
|
||
};
|
||
spannableBuilder.setSpan(clickableSpanOne, 31, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
spannableBuilder.setSpan(clickableSpanOne1, 42, 54, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||
tv_tishi.setMovementMethod(LinkMovementMethod.getInstance());
|
||
tv_tishi.setText(spannableBuilder);
|
||
tv_tishi.setGravity(Gravity.LEFT);
|
||
dialog3.show();
|
||
Window window =dialog3.getWindow();
|
||
WindowManager.LayoutParams layoutParams = window.getAttributes();
|
||
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||
layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||
window.setAttributes(layoutParams);
|
||
dialog3.getWindow().setContentView(layout);
|
||
dialog3.setCanceledOnTouchOutside(false);
|
||
btn_cancel.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
// TODO Auto-generated method stub
|
||
dialog3.dismiss();
|
||
|
||
}
|
||
});
|
||
btn_sure.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
|
||
dialog3.dismiss();
|
||
if(iswechat)
|
||
{
|
||
wechatLogin();
|
||
}
|
||
else
|
||
{
|
||
if (isPassLogin) {
|
||
login();
|
||
} else {
|
||
MessageLosin();
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
@Override
|
||
public void onBackPressed() {
|
||
// TODO Auto-generated method stub
|
||
super.onBackPressed();
|
||
// 监听返回键
|
||
finish();
|
||
handleBackClose();
|
||
if (false) {
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 登录
|
||
*/
|
||
public void login() {
|
||
|
||
if (!UIUtils.isNetWorkConnected(this)) {
|
||
ToastUtil.showToast("网络不可用,请连接网络再试");
|
||
return;
|
||
}
|
||
// 数据验证
|
||
currentUsername = usernameEditText.getText().toString().trim();
|
||
currentPassword = passwordEditText.getText().toString().trim();
|
||
if (TextUtils.isEmpty(currentUsername)) {
|
||
ToastUtil.showToast("手机号码不为空");
|
||
return;
|
||
}
|
||
if (!ValidateUtils.isMobileNum(currentUsername)) {
|
||
ToastUtil.showToast("手机号码不正确");
|
||
return;
|
||
}
|
||
if (TextUtils.isEmpty(currentPassword)) {
|
||
ToastUtil.showToast("密码不为空");
|
||
return;
|
||
}
|
||
if (!ValidateUtils.isPassword(currentPassword)) {
|
||
ToastUtil.showToast("请输入6-16位字母、数字组合密码");
|
||
return;
|
||
}
|
||
|
||
|
||
|
||
// 登陆时用户密码加密
|
||
showProgressDialog("正在登录");
|
||
Map<String, String> param = new HashMap<>();
|
||
param.put("password",currentPassword);
|
||
param.put("mobile",currentUsername);
|
||
param.put("current_spec", deviceSpec);
|
||
sendJsonPostParamtoNetSignMD5(getlogin,param,YXREGISTER,this);
|
||
}
|
||
|
||
|
||
/**
|
||
*
|
||
* @author gaofei
|
||
* @date 2015-9-8 下午4:22:04
|
||
*
|
||
* 功能说明:获得设备信息,设备类型,设备型号
|
||
*
|
||
* method
|
||
*/
|
||
private void getDeviceInfo() {
|
||
String mobileName = "";
|
||
String mobileType = "";
|
||
try {
|
||
mobileName = android.os.Build.MANUFACTURER;
|
||
mobileType = android.os.Build.MODEL;
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
deviceSpec = mobileName + " " + mobileType;
|
||
deviceSpec = deviceSpec.replaceAll("\\s*", "");
|
||
|
||
}
|
||
|
||
@Override
|
||
protected void onResume() {
|
||
super.onResume();
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
private void doLauncherAction() {
|
||
|
||
closeProgressDialog();
|
||
// ( 1.待审核 2.审核中 3.需要补充修改资料 4.再次提交审核 5.拒绝
|
||
// 6.已通过)
|
||
// 注册成功跳转
|
||
Intent intent = new Intent();
|
||
// if(BigModule())
|
||
// {
|
||
// intent.setClass(this, BigMainActivity.class);
|
||
//
|
||
// }
|
||
// else
|
||
// {
|
||
intent.setClass(this, MainActivity.class);
|
||
// }
|
||
Constant.islogout = 2;
|
||
SharePrefUtil.saveBoolean(ct, Constant.IS_LOGIN, true);
|
||
intent.putExtra("launcher_from", 1);
|
||
|
||
startActivity(intent);
|
||
Constant.islogout = 2;
|
||
// 保存登陆
|
||
SharePrefUtil.saveBoolean(ct, Constant.IS_LOGIN, true);
|
||
|
||
// 1登入系统 2退出系统 3专家客户端在手机前台运行 4.专家客户端在手机后台运行
|
||
BaseActivity.foreBack(LoginNewActivity.this, 1);
|
||
finish();
|
||
}
|
||
|
||
public final static int GET_SYSTEM_TIME_RESULT = 103;
|
||
|
||
public void getSystemTime() {
|
||
Map<String, String> param = new HashMap<String, String>();
|
||
sendParamtoNet(Url.getSystemTime, param, GET_SYSTEM_TIME_RESULT,
|
||
LoginNewActivity.this, true);
|
||
}
|
||
|
||
public final static int GET_MESSAGE_DATA_RESULT = 101;
|
||
public final static int GET_MESSAGE_LOGIN_RESULT = 102;
|
||
|
||
public void sendMessage() {
|
||
|
||
currentUsername = usernameEditText.getText().toString();
|
||
if (TextUtils.isEmpty(currentUsername)) {
|
||
ToastUtil.showToast("手机号码不为空");
|
||
return;
|
||
}
|
||
if (!ValidateUtils.isMobileNum(currentUsername)) {
|
||
ToastUtil.showToast("手机号码不正确");
|
||
return;
|
||
}
|
||
if (TextUtils.isEmpty(system_time)) {
|
||
ToastUtil.showToast("未能获取网络时间");
|
||
return;
|
||
}
|
||
|
||
int a = StringUtil.getnum();
|
||
String mc = null;
|
||
try {
|
||
mc = StringUtil.getRandomString(a)
|
||
+ AESUtil.Encrypt(currentUsername + "|" + system_time,
|
||
"deoep09_klodLdAo");
|
||
} catch (Exception e) {
|
||
// TODO Auto-generated catch block
|
||
e.printStackTrace();
|
||
}
|
||
Map<String, String> param = new HashMap<String, String>();
|
||
param.put("mc", mc);
|
||
param.put("a", a + "");
|
||
sendParamtoNet(Url.getQuickLoginSms, param, GET_MESSAGE_DATA_RESULT,LoginNewActivity.this, true);
|
||
|
||
}
|
||
|
||
public void MessageLosin() {
|
||
if (!UIUtils.isNetWorkConnected(this)) {
|
||
ToastUtil.showToast("网络不可用,请连接网络再试");
|
||
return;
|
||
}
|
||
if (TextUtils.isEmpty(currentUsername)) {
|
||
currentUsername = usernameEditText.getText().toString();
|
||
}
|
||
currentPassword = messageEditText.getText().toString();
|
||
|
||
if (TextUtils.isEmpty(currentUsername)) {
|
||
ToastUtil.showToast("手机号码不为空");
|
||
return;
|
||
}
|
||
if (!ValidateUtils.isMobileNum(currentUsername)) {
|
||
ToastUtil.showToast("手机号码不正确");
|
||
return;
|
||
}
|
||
if (TextUtils.isEmpty(currentPassword)) {
|
||
ToastUtil.showToast("验证码不为空");
|
||
return;
|
||
}
|
||
showProgressDialog("正在登录");
|
||
Map<String, String> param = new HashMap<String, String>();
|
||
param.put("mobile", currentUsername);
|
||
param.put("sms", currentPassword);
|
||
param.put("current_spec", deviceSpec);
|
||
sendJsonPostParamtoNetSignMD5(Url.umSmsLogin, param, GET_MESSAGE_LOGIN_RESULT,
|
||
LoginNewActivity.this);
|
||
|
||
|
||
|
||
}
|
||
private void startBind()
|
||
{
|
||
// mPhoneNumberAuthHelper.quitLoginPage();
|
||
Intent intent=new Intent(LoginNewActivity.this,BindNumberActivity.class);
|
||
intent.putExtra("wechat_user_info",wechat_user_info);
|
||
startActivity(intent);
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onCallbackFromThread(String resultJson) {
|
||
// TODO Auto-generated method stub
|
||
}
|
||
|
||
@Override
|
||
public void onCallBackFromThread(String resultJson, int resultCode) {
|
||
// TODO Auto-generated method stub
|
||
Log.e("LoginTAG", "resultCode "+resultCode+" resultJson "+resultJson);
|
||
switch (resultCode) {
|
||
case 1122:
|
||
JSONObject jsonObject = null;
|
||
|
||
try {
|
||
jsonObject = new JSONObject(resultJson);
|
||
if ("200".equals(jsonObject.optString("code"))&&!jsonObject.isNull("data")) {
|
||
Constant.Report_userId= jsonObject.optJSONObject("data").optString("userId");
|
||
Constant.Repotr_token=jsonObject.optJSONObject("data").optString("token");
|
||
Constant.Repotr_app_key=jsonObject.optJSONObject("data").optString("appKey");
|
||
needreportSimple("login");
|
||
|
||
|
||
}
|
||
} catch (JSONException e) {
|
||
e.printStackTrace();
|
||
}
|
||
|
||
break;
|
||
case 201:
|
||
try {
|
||
JSONObject objs = new JSONObject(resultJson);
|
||
String retcode = objs.getString("code");
|
||
String message = objs.getString("message");
|
||
if (retcode.equals("200")) {
|
||
if(objs.optJSONObject("data")!=null)
|
||
{
|
||
if(objs.optJSONObject("data").optJSONObject("data")!=null
|
||
&&!StringUtil.isEmpty(objs.optJSONObject("data").optJSONObject("data").optString("mobile")))
|
||
{
|
||
|
||
Map<String, String> param = new HashMap<>();
|
||
// param.put("token",token);
|
||
param.put("mobile",objs.optJSONObject("data").optJSONObject("data").optString("mobile"));
|
||
param.put("current_spec", deviceSpec);
|
||
sendJsonPostParamtoNetSignMD5(umVerifyLogin,param,202,this);
|
||
|
||
}
|
||
}
|
||
} else {
|
||
ToastUtil.showToast(message);
|
||
|
||
}
|
||
} catch (JSONException e) {
|
||
// TODO Auto-generated catch block
|
||
ToastUtil.showToast("一键登录失败");
|
||
|
||
e.printStackTrace();
|
||
}
|
||
break;
|
||
case 202:
|
||
|
||
SharePrefUtil.saveString(ct, Url.getmodify, resultJson);
|
||
try {
|
||
|
||
JSONObject objs = new JSONObject(resultJson);
|
||
String retcode = objs.optString("code");
|
||
String message = objs.optString("msg");
|
||
|
||
if ("200".equals(retcode)) {
|
||
// 得到个人资料,并保存
|
||
getSaveUserInfor(2,objs);
|
||
|
||
} else {
|
||
closeProgressDialog();
|
||
ToastUtil.showToast(message);
|
||
}
|
||
} catch (JSONException e) {
|
||
e.printStackTrace();
|
||
|
||
}
|
||
break;
|
||
case GET_MESSAGE_LOGIN_RESULT:
|
||
case 203:
|
||
try {
|
||
|
||
JSONObject objs = new JSONObject(resultJson);
|
||
String retcode = objs.optString("code");
|
||
String message = objs.optString("msg");
|
||
if ("10007".equals(retcode)) {
|
||
startBind();
|
||
// 得到个人资料,并保存
|
||
// getSaveUserInfor(2,objs);
|
||
|
||
}
|
||
else if ("200".equals(retcode)) {
|
||
getSaveUserInfor(2,objs);
|
||
// 得到个人资料,并保存
|
||
// getSaveUserInfor(2,objs);
|
||
|
||
}
|
||
else {
|
||
closeProgressDialog();
|
||
|
||
ToastUtil.showToast(message);
|
||
}
|
||
} catch (JSONException e) {
|
||
e.printStackTrace();
|
||
|
||
}
|
||
|
||
break;
|
||
case MSG_SEND:
|
||
try {
|
||
JSONObject objs = new JSONObject(resultJson);
|
||
String retcode = objs.getString("code");
|
||
String message = objs.getString("message");
|
||
if (retcode.equals("200")) {
|
||
mTb_message.startTimer();
|
||
} else {
|
||
ToastUtil.showToast(message);
|
||
mTb_message.clearTimer();
|
||
}
|
||
} catch (JSONException e) {
|
||
// TODO Auto-generated catch block
|
||
ToastUtil.showToast("获取验证码失败,请重试");
|
||
mTb_message.clearTimer();
|
||
e.printStackTrace();
|
||
}
|
||
|
||
break;
|
||
case YXREF:
|
||
|
||
try {
|
||
JSONObject objs = null;
|
||
objs = new JSONObject(resultJson);
|
||
String retcode = objs.getString("code");
|
||
String message = objs.getString("message");
|
||
if ("200".equals(retcode)) {
|
||
String yx_accid =objs.getString("YX_accid");
|
||
String yx_token =objs.getString("YX_token");
|
||
SharePrefUtil.saveString(ct, Constant.yx_accid, yx_accid);
|
||
SharePrefUtil.saveString(ct, Constant.yx_token, yx_token);
|
||
NimUIKit.login(new LoginInfo(yx_accid, yx_token, null, 0),
|
||
new RequestCallback<LoginInfo>() {
|
||
@Override
|
||
public void onSuccess(LoginInfo param) {
|
||
|
||
DemoCache.setAccount(yx_accid);
|
||
saveLoginInfo(yx_accid, yx_token);
|
||
// 初始化消息提醒配置
|
||
initNotificationConfig();
|
||
doLauncherAction(); }
|
||
|
||
@Override
|
||
public void onFailed(int code) {
|
||
|
||
closeProgressDialog();
|
||
ToastHelper.showToast(LoginNewActivity.this,"云信登录失败: " + code);
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onException(Throwable exception) {
|
||
closeProgressDialog();
|
||
ToastHelper.showToast(LoginNewActivity.this,"云信登录失败" );
|
||
}
|
||
});
|
||
|
||
|
||
}
|
||
else {
|
||
ToastUtil.showToast(message);
|
||
}
|
||
} catch (JSONException e) {
|
||
e.printStackTrace();
|
||
}
|
||
|
||
break;
|
||
|
||
case YXREGISTER:
|
||
|
||
SharePrefUtil.saveString(ct, Url.getmodify, resultJson);
|
||
try {
|
||
|
||
JSONObject objs = new JSONObject(resultJson);
|
||
String retcode = objs.getString("code");
|
||
String message = objs.getString("message");
|
||
if (("1").equals(retcode)) {
|
||
// 得到个人资料,并保存
|
||
getSaveUserInfor(1,objs);
|
||
|
||
|
||
|
||
|
||
} else {
|
||
closeProgressDialog();
|
||
ToastUtil.showToast(message);
|
||
}
|
||
} catch (JSONException e) {
|
||
e.printStackTrace();
|
||
closeProgressDialog();
|
||
ToastUtil.showToast("登录失败,请重试");
|
||
}
|
||
break;
|
||
case GET_MESSAGE_DATA_RESULT:
|
||
JSONObject objs;
|
||
try {
|
||
objs = new JSONObject(resultJson);
|
||
String retcode = objs.getString("code");
|
||
String message = objs.getString("message");
|
||
if (retcode.equals("1")) {
|
||
mTb_message.startTimer();
|
||
} else {
|
||
ToastUtil.showToast(message);
|
||
mTb_message.clearTimer();
|
||
}
|
||
} catch (JSONException e) {
|
||
// TODO Auto-generated catch block
|
||
ToastUtil.showToast("获取验证码失败,请重试");
|
||
mTb_message.clearTimer();
|
||
e.printStackTrace();
|
||
}
|
||
|
||
break;
|
||
|
||
case GET_SYSTEM_TIME_RESULT:
|
||
JSONObject objs2;
|
||
try {
|
||
objs2 = new JSONObject(resultJson);
|
||
system_time = objs2.getString("system_time");
|
||
} catch (JSONException e) {
|
||
// TODO Auto-generated catch block
|
||
|
||
}
|
||
sendMessage();
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
@Override
|
||
protected void onStop() {
|
||
super.onStop();
|
||
|
||
|
||
|
||
}
|
||
|
||
@Override
|
||
protected void onDestroy() {
|
||
mTb_message.onDestroy();
|
||
super.onDestroy();
|
||
UMShareAPI.get(this).release();
|
||
mUIConfig.release();
|
||
}
|
||
|
||
@Override
|
||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||
if (keyCode == KeyEvent.KEYCODE_BACK&& event.getAction() == KeyEvent.ACTION_DOWN){
|
||
handleBackClose();
|
||
return true;
|
||
}
|
||
return super.onKeyDown(keyCode, event);
|
||
}
|
||
|
||
private void handleBackClose() {
|
||
if (MainActivity.mMainActivity == null || MainActivity.mMainActivity.isFinishing() || MainActivity.mMainActivity.isDestroyed()) {
|
||
Intent intent = new Intent(this, MainActivity.class);
|
||
startActivity(intent);
|
||
}
|
||
finish();
|
||
}
|
||
|
||
private boolean unusedExitStub() {
|
||
if (false) {
|
||
handleBackClose();
|
||
if (false) {
|
||
handleBackClose();
|
||
if (false) {
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
private void saveLoginInfo(final String account, final String token) {
|
||
Preferences.saveUserAccount(account);
|
||
Preferences.saveUserToken(token);
|
||
}
|
||
private void initNotificationConfig() {
|
||
// 初始化消息提醒
|
||
NIMClient.toggleNotification(UserPreferences.getNotificationToggle());
|
||
// 加载状态栏配置
|
||
StatusBarNotificationConfig statusBarNotificationConfig = UserPreferences.getStatusConfig();
|
||
if (statusBarNotificationConfig == null) {
|
||
statusBarNotificationConfig = DemoCache.getNotificationConfig();
|
||
UserPreferences.setStatusConfig(statusBarNotificationConfig);
|
||
}
|
||
// 更新配置
|
||
NIMClient.updateStatusBarNotificationConfig(statusBarNotificationConfig);
|
||
}
|
||
|
||
public void initReport()
|
||
{
|
||
|
||
Map<String,String> map = new HashMap<>();
|
||
sendJsonPostParamtoNetSignMD5(Url.getTagToken,map,1122,this);
|
||
|
||
|
||
}
|
||
}
|