package com.tejia.lijin.app.ui.mine;
|
|
import android.Manifest;
|
import android.content.ActivityNotFoundException;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import androidx.databinding.DataBindingUtil;
|
import android.net.Uri;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.os.Environment;
|
import android.provider.MediaStore;
|
import androidx.annotation.NonNull;
|
import android.text.Editable;
|
import android.text.TextWatcher;
|
import android.view.View;
|
import android.widget.RelativeLayout;
|
import android.widget.Toast;
|
|
import com.app.hubert.guide.util.ScreenUtils;
|
import com.bumptech.glide.Glide;
|
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.callBack.PermissionInterface;
|
import com.tejia.lijin.app.databinding.ActivityMyWxchatBinding;
|
import com.tejia.lijin.app.ui.BaseActivity;
|
import com.tejia.lijin.app.util.PermissionHelper;
|
import com.tejia.lijin.app.util.Photo_crop;
|
import com.tejia.lijin.app.util.TopStatusSettings;
|
import com.tejia.lijin.app.util.picture.PictureUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.io.File;
|
|
/**
|
* 修改用户昵称
|
*/
|
public class MyWXNumActivity extends BaseActivity implements View.OnClickListener, PermissionInterface {
|
ActivityMyWxchatBinding binding;
|
private String erCodeLink = null;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
binding = DataBindingUtil.setContentView(this, R.layout.activity_my_wxchat);
|
TopStatusSettings.setStatusView(this, binding.includeStatusBar.vStatusBar);
|
init();
|
OnClickListener();
|
}
|
|
|
private void init() {
|
binding.includeTopBar.tvTopBarMiddle.setText("微信号");
|
binding.includeTopBar.tvTopBarRight.setText("保存");
|
// tv_top_bar_right.setVisibility(View.VISIBLE);
|
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) binding.includeTopBar.tvTopBarRight.getLayoutParams();
|
lp.leftMargin = ScreenUtils.dp2px(this, 16);
|
binding.includeTopBar.tvTopBarRight.setLayoutParams(lp);
|
String weiXin = getIntent().getStringExtra("weixin");
|
String weixintip = getIntent().getStringExtra("weixintip");
|
erCodeLink = getIntent().getStringExtra("erCode");
|
|
binding.tvWeixintip.setText(weixintip);
|
if (!StringUtils.isEmpty(weiXin)) {
|
binding.etWechatNum.setText(weiXin);
|
binding.etWechatNum.setSelection(weiXin.length());
|
} else {
|
binding.etWechatNum.setHint("输入微信号");
|
}
|
initWXERCode();
|
}
|
|
/**
|
* 微信二维码初始化
|
*/
|
private void initWXERCode() {
|
if (StringUtils.isEmpty(erCodeLink)) {
|
binding.ivErcode.setImageResource(R.drawable.ic_ercode_default);
|
binding.tvErcode.setText("请上传个人微信号二维码");
|
} else {
|
binding.tvErcode.setText("点击修改二维码图片");
|
Glide.with(binding.ivErcode.getContext())
|
.load(erCodeLink)
|
.into(binding.ivErcode);
|
}
|
}
|
|
private void OnClickListener() {
|
binding.includeTopBar.tvTopBarLeft.setOnClickListener(this);
|
binding.includeTopBar.tvTopBarRight.setOnClickListener(this);
|
binding.ivWechatNumClear.setOnClickListener(this);
|
binding.ivErcode.setOnClickListener(this);
|
binding.llErcode.setOnClickListener(this);
|
|
binding.etWechatNum.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) {
|
binding.ivWechatNumClear.setVisibility(StringUtils.isEmpty(s.toString())
|
? View.GONE : View.VISIBLE);
|
}
|
});
|
mPermissionsChecker = new PermissionHelper(this, this);//权限
|
}
|
|
private PermissionHelper mPermissionsChecker; // 权限检测器 检测是否有储存卡写入读取权限
|
|
/**
|
* 权限请求码
|
*
|
* @return
|
*/
|
@Override
|
public int getPermissionsRequestCode() {
|
return 1001;
|
}
|
|
/**
|
* 请求权限
|
*
|
* @return
|
*/
|
@Override
|
public String[] getPermissions() {
|
return new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
}
|
|
/**
|
* 权限请求成功
|
*/
|
@Override
|
public void requestPermissionsSuccess() {
|
binding.llErcode.performClick();
|
}
|
|
/**
|
* 权限请求失败
|
*/
|
@Override
|
public void requestPermissionsFail() {
|
// Toast.makeText(this, "你以拒绝权限", Toast.LENGTH_SHORT).show();
|
}
|
|
/**
|
* 请求权限结果
|
*
|
* @param requestCode
|
* @param permissions
|
* @param grantResults
|
*/
|
@Override
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
if (mPermissionsChecker.requestPermissionsResult(requestCode, permissions, grantResults)) {
|
//权限请求结果,并已经处理了该回调
|
return;
|
}
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
//返回
|
case R.id.tv_top_bar_left:
|
finish();
|
break;
|
case R.id.tv_top_bar_right://保存昵称
|
saveInfo();
|
break;
|
|
|
case R.id.iv_wechat_num_clear:
|
binding.etWechatNum.getText().clear();//清除文字
|
break;
|
|
case R.id.iv_ercode:
|
case R.id.ll_ercode:
|
if (mPermissionsChecker.lacksPermissions(getPermissions())) {//检测是否有写入的权限
|
mPermissionsChecker.showNormalDialog();
|
} else {
|
// 打开系统图库选择图片
|
Intent picture = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
|
try {
|
startActivityForResult(picture, 1001);
|
} catch (ActivityNotFoundException exception) {
|
Toast.makeText(this, "no activity", Toast.LENGTH_SHORT).show();
|
}
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
//裁剪暂存路劲
|
Uri uriClipUri = null;
|
|
@Override
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
super.onActivityResult(requestCode, resultCode, data);
|
//图库
|
if (resultCode == RESULT_OK && resultCode != RESULT_CANCELED && requestCode == 1001 && data != null) {//相册
|
Uri selectedImage = data.getData();
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
//如果是7.0的相册
|
//设置裁剪的图片地址Uri
|
uriClipUri = Uri.parse("file://" + "/" + Environment.getExternalStorageDirectory().getPath() + "/blks/cache/" + "wxercode_clip_" + System.currentTimeMillis() + ".jpg");
|
} else {
|
uriClipUri = Uri.parse("file://" + "/" + Environment.getExternalStorageDirectory().getPath() + "/blks/cache/" + "wxercode_clip_" + System.currentTimeMillis() + ".jpg");
|
}
|
//如果文件存在先删除
|
File f = new File(uriClipUri.getPath());
|
if (f.exists())
|
f.delete();
|
if (f.getParentFile().exists()) {
|
f.getParentFile().delete();
|
f.getParentFile().mkdirs();
|
} else
|
f.getParentFile().mkdirs();
|
|
PictureUtil.getAndClipPhoto(this, selectedImage, 250, 250, uriClipUri, 1000);
|
} else if (resultCode == RESULT_OK && requestCode == 1000 && data != null) {//剪裁完成
|
if (uriClipUri != null) {
|
//暂时取消二维码验证
|
// String result = QrCodeUtil.scanBitmap(BitmapFactory.decodeFile(uriClipUri.getPath()));
|
// if (StringUtils.isEmpty(result)) {
|
// uriClipUri = null;
|
// Toast.makeText(MyWXNumActivity.this, "仅支持上传二维码", Toast.LENGTH_SHORT).show();
|
// return;
|
// } else {
|
Glide.with(binding.ivErcode.getContext())
|
.load(uriClipUri)
|
.into(binding.ivErcode);
|
// }
|
}
|
}
|
}
|
|
/**
|
* 更换微信
|
*/
|
private void saveInfo() {
|
final SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
if (sp.getBoolean("isLogin", false)) {
|
File erCodeFile = null;
|
if (uriClipUri != null) {
|
Photo_crop crop = new Photo_crop();//初始化 图片压缩
|
File f = new File(uriClipUri.getPath());//获取图片
|
if (crop.compressPhto(f, false)) {//压缩并保存成功
|
erCodeFile = f;
|
}
|
}
|
//扫码
|
// if (erCodeFile != null) {
|
// String result = QrCodeUtil.scanBitmap(BitmapFactory.decodeFile(erCodeFile.getPath()));
|
// if (StringUtils.isEmpty(result)) {
|
// Toast.makeText(MyWXNumActivity.this, "仅支持上传二维码", Toast.LENGTH_SHORT).show();
|
// return;
|
// }
|
// }
|
|
|
String wxNum = binding.etWechatNum.getText() == null ? "" : binding.etWechatNum.getText().toString();
|
if (StringUtils.isEmpty(wxNum) && erCodeFile == null) {
|
Toast.makeText(MyWXNumActivity.this, "请输入微信号或者选择微信二维码", Toast.LENGTH_SHORT).show();
|
return;
|
}
|
|
ShoppingApi.saveInfo(this, sp.getString("uid", "0"),
|
null, binding.etWechatNum.getText().toString(), null, null, erCodeFile,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {//修改成功
|
Toast.makeText(MyWXNumActivity.this, "修改成功", Toast.LENGTH_SHORT).show();
|
finish();
|
} else if (jsonObject.optInt("code") == 1) {//修改失败
|
Toast.makeText(MyWXNumActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
}
|
}
|
});
|
}
|
}
|
|
|
}
|