package com.tejia.lijin.app.ui.mine;
|
|
import android.app.AlertDialog;
|
import android.app.Dialog;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.os.CountDownTimer;
|
import android.text.Editable;
|
import android.text.TextWatcher;
|
import android.text.method.ReplacementTransformationMethod;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.widget.EditText;
|
import android.widget.FrameLayout;
|
import android.widget.ImageButton;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.app.hubert.guide.util.ScreenUtils;
|
import com.bumptech.glide.Glide;
|
import com.tencent.mm.opensdk.modelmsg.SendAuth;
|
import com.wpc.library.okhttp.OkHttpUtils;
|
import com.wpc.library.util.common.StringUtils;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.ShoppingApplication;
|
import com.tejia.lijin.app.ui.BaseActivity;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.util.clipboard.ClipboardUtil;
|
import com.tejia.lijin.app.util.GlideCircleTransform;
|
import com.tejia.lijin.app.util.KeFuUtil;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
/**
|
* j激活邀请码
|
*/
|
public class ActivationInviteCodeAcitvity extends BaseActivity implements View.OnClickListener {
|
private ImageView iv_close;
|
private ImageView iv_contact_kefu, et_verify_code_img;
|
private EditText et_verify_code_num;
|
private LinearLayout iv_wchatactivationlayout;
|
private TextView iv_wchatactivation_button;//确认激活
|
private TextView iv_wchatactivation_none;//没有上级激活码
|
|
private boolean islogin = false;//是否登陆
|
private Long uid;//用户id
|
|
String tag1 = "invite/verifyCode";
|
String tag2 = "invite/verifyWX";
|
String tag3 = "invite/activationInvite";
|
String tag4 = "invite/activationInviteWX";
|
String tag5 = "config/getInviteCodeInputHelp";
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_activationinvitecode);
|
// getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
|
|
//设置状态栏
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
Window window = getWindow();
|
//设置状态栏颜色为白色
|
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
window.setStatusBarColor(getResources().getColor(R.color.white));
|
}
|
//设置状态栏文字颜色及图标为深色
|
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
}
|
|
inint();
|
initListner();
|
iv_wchatactivation_button.setEnabled(false);
|
iv_wchatactivation_button.setBackground(getResources().getDrawable(R.drawable.shape_go_search2));
|
iv_close.setColorFilter(getResources().getColor(R.color.text_black_1));
|
getInviteCodeInputHelp();//获取激活帮助
|
et_verify_code_num.requestFocus();
|
}
|
|
private void initListner() {
|
iv_close.setOnClickListener(this);
|
iv_contact_kefu.setOnClickListener(this);
|
iv_wchatactivation_button.setOnClickListener(this);
|
iv_wchatactivation_none.setOnClickListener(this);
|
iv_wchatactivationlayout.setOnClickListener(this);
|
|
//小写字母变大写字母
|
et_verify_code_num.setTransformationMethod(new ReplacementTransformationMethod() {
|
@Override
|
protected char[] getOriginal() {
|
char[] aa = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
|
return aa;
|
}
|
|
@Override
|
protected char[] getReplacement() {
|
char[] cc = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
|
return cc;
|
}
|
});
|
|
et_verify_code_num.addTextChangedListener(new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
}
|
|
@Override
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
}
|
|
@Override
|
public void afterTextChanged(Editable s) {
|
if (s != null && s.toString().length() >= 2) {
|
iv_wchatactivation_button.setEnabled(true);
|
iv_wchatactivation_button.setBackground(getResources().getDrawable(R.drawable.shape_go_search));
|
} else {
|
iv_wchatactivation_button.setEnabled(false);
|
iv_wchatactivation_button.setBackground(getResources().getDrawable(R.drawable.shape_go_search2));
|
}
|
}
|
});
|
}
|
|
private void inint() {
|
iv_close = findViewById(R.id.iv_close);
|
iv_contact_kefu = findViewById(R.id.iv_contact_kefu);
|
et_verify_code_num = findViewById(R.id.et_verify_code_num);
|
et_verify_code_img = findViewById(R.id.et_verify_code_img);
|
iv_wchatactivationlayout = findViewById(R.id.iv_wchatactivationlayout);
|
iv_wchatactivation_button = findViewById(R.id.iv_wchatactivation_button);
|
iv_wchatactivation_none = findViewById(R.id.iv_wchatactivation_none);
|
et_verify_code_img.setColorFilter(getResources().getColor(R.color.login_wechat_bg));//微信图标变色
|
}
|
|
boolean wxonclick = false;//判断是否 微信激活点击
|
|
@Override
|
protected void onResume() {
|
super.onResume();
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
islogin =UserUtil.isLogin(getApplicationContext());
|
uid = UserUtil.getUid(ShoppingApplication.application);
|
|
if (iv_close.getContext() != null && wxonclick && islogin) { //判断是否 点击微信授权激活
|
wxonclick = false;
|
if (!sp.getString("wxcodeactivation", "1003").equals("1003")) {
|
isActivation(1002, sp.getString("wxcodeactivation", ""));
|
}
|
SharedPreferences.Editor editor = sp.edit();
|
editor.putString("wxcodeactivation", "1003");//记录微信激活code
|
editor.commit();
|
}
|
iv_close.postDelayed(new Runnable() {
|
@Override
|
public void run() {
|
if (et_verify_code_num.getContext() != null && (et_verify_code_num.getText() == null || et_verify_code_num.getText().length() < 4)) {
|
//粘贴板 获取邀请码
|
String text = ClipboardUtil.getClipboardContent(getApplicationContext());
|
if (!StringUtils.isEmpty(text)) {//粘贴板内容
|
text = text.trim().replace(" ", "");//去除空格
|
if (text.length() >= 4 && text.length() <= 12) {
|
String regex = "^[\\u4E00-\\u9FA5A-Za-z0-9_]+$";
|
if (text.matches(regex)) {//邀请码
|
et_verify_code_num.setText(text);
|
et_verify_code_num.setSelection(text.length());
|
//清空粘贴板
|
ClipboardUtil.emptyClipboard(getApplicationContext());
|
}
|
}
|
}
|
}
|
}
|
}, 600);
|
|
}
|
|
//获取激活帮助 网页链接
|
private String InviteCodeInputHelp = null;
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.iv_close:
|
finish();
|
break;
|
case R.id.iv_contact_kefu://客服
|
KeFuUtil.jumpKeFu(ActivationInviteCodeAcitvity.this, "激活邀请码");
|
break;
|
case R.id.iv_wchatactivation_none://没有上级邀请码
|
if (InviteCodeInputHelp != null) {
|
startActivity(new Intent(this, ShareBrowserActivity.class).putExtra("url", InviteCodeInputHelp));
|
} else {
|
getInviteCodeInputHelp();//获取激活帮助
|
}
|
break;
|
case R.id.iv_wchatactivation_button://确认激活输入邀请码
|
if (et_verify_code_num.getText() != null && et_verify_code_num.getText().length() >= 4 && et_verify_code_num.getText().length() <= 12) {
|
isActivation(1001, null);//激活码确认激活
|
} else {
|
MyDialog("请填写4到12位激活码");
|
}
|
break;
|
case R.id.iv_wchatactivationlayout://微信激活
|
if (ShoppingApplication.application.mWxApi.isWXAppInstalled()) {
|
SendAuth.Req req = new SendAuth.Req();
|
req.scope = "snsapi_userinfo";
|
req.state = "rebate";
|
if (ShoppingApplication.application.mWxApi.sendReq(req)) { // 拉起微信
|
wxonclick = true;
|
} else {
|
wxonclick = false;
|
}
|
} else {
|
Toast.makeText(ActivationInviteCodeAcitvity.this, "请先安装微信客户端", Toast.LENGTH_SHORT).show();
|
}
|
break;
|
|
default:
|
break;
|
}
|
}
|
|
|
/**
|
* dialog 弹窗说明
|
* 没有激活码说明,微信激活说明
|
*
|
* @param title
|
* @param str1
|
* @param str2
|
*/
|
private void Dialog_explain(String title, String str1, String str2) {
|
AlertDialog.Builder alterDiaglog = new AlertDialog.Builder(this, R.style.dialog_activationinvitecode2);
|
View view = View.inflate(this, R.layout.dialog_activationinvite2, null);
|
alterDiaglog.setView(view);//加载进去
|
final AlertDialog dialog = alterDiaglog.create();
|
//显示
|
dialog.show();
|
//设置宽高
|
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
|
params.width = this.getWindowManager().getDefaultDisplay().getWidth();
|
params.height = ScreenUtils.dp2px(this, 290);
|
params.width = ScreenUtils.dp2px(this, 260);
|
dialog.getWindow().setAttributes(params);
|
TextView textitle = dialog.findViewById(R.id.dialog_activationinvitetxt_title);
|
TextView textcontent1 = dialog.findViewById(R.id.dialog_activationinvitetxt_content1);
|
TextView textcontent2 = dialog.findViewById(R.id.dialog_activationinvitetxt_content2);
|
FrameLayout fl_close = dialog.findViewById(R.id.dialog_activationinvitetxt_close);
|
textitle.setText(title);
|
textcontent1.setText(str1);
|
textcontent2.setText(str2);
|
fl_close.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (dialog != null && dialog.isShowing()) {
|
dialog.dismiss();
|
dialog.cancel();
|
}
|
}
|
});
|
}
|
|
/**
|
* 邀请码激活验证 弹窗
|
*
|
* @param nickName
|
* @param portrait
|
* @param tips
|
*/
|
private void diaog_verifyCode(String nickName, String portrait, String tips, final String WxorCode) {
|
AlertDialog.Builder alterDiaglog = new AlertDialog.Builder(this, R.style.dialog_activationinvitecode2);
|
View view = View.inflate(this, R.layout.dialog_activationinvite4, null);
|
alterDiaglog.setView(view);//加载进去
|
final AlertDialog dialog = alterDiaglog.create();
|
//显示
|
dialog.show();
|
//设置宽高
|
// WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
|
// params.width = this.getWindowManager().getDefaultDisplay().getWidth();
|
// params.height = ScreenUtils.dp2px(this, 290);
|
// params.width = ScreenUtils.dp2px(this, 260);
|
// dialog.getWindow().setAttributes(params);
|
TextView textitle = dialog.findViewById(R.id.dialog_activationinvitetxt_title);
|
TextView textcontent1 = dialog.findViewById(R.id.dialog_activationinvitetxt_content1);
|
ImageButton textcontent2 = dialog.findViewById(R.id.dialog_activationinvitetxt_close2);
|
ImageView img = dialog.findViewById(R.id.dialog_activationinvitetxt_img);
|
FrameLayout fl_close = dialog.findViewById(R.id.dialog_activationinvitetxt_close);
|
textitle.setText(nickName);
|
textcontent1.setText(tips);
|
// textcontent2.setText(str2);
|
Glide.with(this).load(portrait)
|
.transform(new GlideCircleTransform(this))
|
.into(img);
|
textcontent2.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (dialog != null && dialog.isShowing()) {
|
dialog.dismiss();
|
dialog.cancel();
|
}
|
}
|
});
|
fl_close.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (dialog != null && dialog.isShowing()) {
|
dialog.dismiss();
|
dialog.cancel();
|
}
|
/**
|
* 真正激活
|
* 微信or邀请码激活
|
*/
|
if (WxorCode.equals("code")) {
|
getActivationInvite(uid, et_verify_code_num.getText().toString());//激活
|
} else {
|
//微信激活
|
isWechatActivation(uid, WxorCode);
|
}
|
}
|
});
|
}
|
|
/**
|
* 邀请激活
|
*/
|
private void isActivation(int activation, final String wxcode) {
|
if (islogin && uid != null && !uid.equals("0")) {//登陆状态 uid有值
|
if (activation == 1001) {//输入激活码
|
ShoppingApi.getverifyCode(this, uid, et_verify_code_num.getText().toString(), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 1) {//邀请码激活
|
Toast.makeText(ActivationInviteCodeAcitvity.this, jsonObject.optString("msg"), Toast.LENGTH_LONG).show();
|
} else {
|
JSONObject data = jsonObject.optJSONObject("data");
|
diaog_verifyCode(data.optString("nickName"), data.optString("portrait"), data.optString("tips"), "code");
|
}
|
}
|
});
|
} else if (activation == 1002 && wxcode != null) { //微信激活(验证)
|
ShoppingApi.getverifyWX(this, uid, wxcode, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 1) {
|
Toast.makeText(ActivationInviteCodeAcitvity.this, jsonObject.optString("msg"), Toast.LENGTH_LONG).show();
|
} else {
|
JSONObject data = jsonObject.optJSONObject("data");
|
diaog_verifyCode(data.optString("nickName"), data.optString("portrait"), data.optString("tips")
|
, data.optString("key"));
|
}
|
}
|
});
|
|
}
|
} else {
|
UserUtil.jumpLogin(this);
|
}
|
}
|
|
/**
|
* 激活输入邀请码
|
*
|
* @param uid 用户id
|
* @param editContent 邀请码
|
*/
|
private void getActivationInvite(final Long uid, String editContent) {
|
ShoppingApi.getActivationInvite(this, uid, editContent, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code", 1001) == 0) {
|
JSONObject data = jsonObject.optJSONObject("data");
|
String inviteCode = data.optString("inviteCode");
|
UserUtil.setInviteCode(getApplicationContext(), inviteCode);
|
MyDialog("邀请码激活成功");
|
} else {
|
MyDialog(jsonObject.optString("msg") + "");
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
Toast.makeText(ActivationInviteCodeAcitvity.this, "网络链接失败 ", Toast.LENGTH_SHORT).show();
|
}
|
});
|
}
|
|
/**
|
* 微信激活邀请码
|
*
|
* @param uid 用户id
|
* @param Wxcode 微信code
|
*/
|
private void isWechatActivation(final Long uid, String Wxcode) {
|
ShoppingApi.getActivationInviteWX(this, uid, Wxcode, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code", 1001) == 0) {
|
JSONObject data = jsonObject.optJSONObject("data");
|
String inviteCode = data.optString("inviteCode");
|
UserUtil.setInviteCode(getApplicationContext(), inviteCode);
|
MyDialog("邀请码激活成功");
|
} else {
|
String title = "微信激活邀请码失败";
|
String content1 = "你并未在微信中,对邀请人的邀请链接允许微信授权;";
|
String content2 = "可以通过输入上级邀请码完成激活或向你的邀请人索要微信链接并允许微信授权。";
|
Dialog_explain(title, content1, content2);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
Toast.makeText(ActivationInviteCodeAcitvity.this, "网络链接失败 ", Toast.LENGTH_SHORT).show();
|
}
|
});
|
|
}
|
|
Dialog dialog;
|
|
/**
|
* 激活成功or失败提示
|
*
|
* @param str
|
*/
|
private void MyDialog(String str) {
|
AlertDialog.Builder alterDiaglog = new AlertDialog.Builder(this, R.style.dialog_activationinvitecode);
|
View view = View.inflate(this, R.layout.dialog_activationinvite1, null);
|
alterDiaglog.setView(view);//加载进去
|
AlertDialog dialog = alterDiaglog.create();
|
//显示
|
dialog.show();
|
TextView textView = dialog.findViewById(R.id.dialog_activationinvitetxt);
|
textView.setText(str);
|
|
if (str != null && str.equals("微信激活邀请码成功") || str.equals("邀请码激活成功") || str.equals("已存在邀请码,请刷新页面")) {
|
dialog.setCanceledOnTouchOutside(false);//点击不消失 用在激活成功 倒计时完毕就关闭页面
|
dialogShouw(dialog, true);//计时器 关闭 dialog
|
} else {// 失败提示
|
dialogShouw(dialog, false);//计时器 关闭 dialog
|
}
|
|
}
|
|
|
CountDownTimer timer;//计时器
|
|
/**
|
* 倒计时
|
*
|
* @param dialog
|
* @param b 是否关闭页面
|
*/
|
private void dialogShouw(final AlertDialog dialog, final boolean b) {
|
if (timer != null) {
|
timer.cancel();
|
}
|
timer = new CountDownTimer(1920, 1000) {
|
|
public void onTick(long millisUntilFinished) {
|
}
|
|
public void onFinish() {
|
if (dialog != null && dialog.isShowing()) {
|
dialog.dismiss();
|
dialog.cancel();
|
}
|
if (b) {// 标识授权成功关闭页面
|
// startActivity(new Intent(ActivationInviteCodeAcitvity.this, InviteFriendsActivity.class));
|
finish();//激活成功关闭页面
|
}
|
}
|
}.start();
|
}
|
|
/**
|
* 获取激活帮助
|
*/
|
private void getInviteCodeInputHelp() {
|
ShoppingApi.getInviteCodeInputHelp(this, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
InviteCodeInputHelp = jsonObject.optJSONObject("data").optString("helpUrl");
|
}
|
}
|
});
|
}
|
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
if (timer != null) {
|
timer.cancel();
|
}
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
if (timer != null) {
|
timer.cancel();
|
}
|
|
OkHttpUtils.getInstance().cancelTag(tag1);
|
OkHttpUtils.getInstance().cancelTag(tag2);
|
OkHttpUtils.getInstance().cancelTag(tag3);
|
OkHttpUtils.getInstance().cancelTag(tag4);
|
OkHttpUtils.getInstance().cancelTag(tag5);
|
}
|
}
|