package com.yiwen.mobike.activity.usercenter; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.lzy.imagepicker.ImagePicker; import com.lzy.imagepicker.bean.ImageItem; import com.lzy.imagepicker.loader.ImageLoader; import com.lzy.imagepicker.ui.ImageGridActivity; import com.lzy.imagepicker.view.CropImageView; import com.yiwen.mobike.MyApplication; import com.yiwen.mobike.R; import com.yiwen.mobike.activity.login.CampusVerifyActivity; import com.yiwen.mobike.activity.login.IDCardVerifyActivity; import com.yiwen.mobike.activity.login.SsoUserInfoActivity; import com.yiwen.mobike.bean.MyUser; import com.yiwen.mobike.utils.ToastUtils; import com.yiwen.mobike.views.MySettingView; import com.yiwen.mobike.views.TabTitleView; import java.io.File; import java.util.ArrayList; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import cn.bmob.v3.datatype.BmobFile; import cn.bmob.v3.exception.BmobException; import cn.bmob.v3.listener.UploadFileListener; public class UserDetailActivity extends AppCompatActivity { private static final int REQS_IMAGE_PICKER = 1; private static final int REQS_NICKNAME = 2; private static final String TAG = "UserDetailActivity"; @BindView(R.id.title_use_detail) TabTitleView mTitleUseDetail; @BindView(R.id.tv_head) MySettingView mTvHead; @BindView(R.id.tv_nick_name) MySettingView mTvNickName; @BindView(R.id.tv_name) MySettingView mTvName; @BindView(R.id.tv_is_realname) MySettingView mTvIsRealname; @BindView(R.id.tv_myphone) MySettingView mTvMyphone; @BindView(R.id.tv_weixin) MySettingView mTvWeixin; @BindView(R.id.tv_qq) MySettingView mTvQq; @BindView(R.id.tv_school) MySettingView mTvSchool; private MyUser mMyUser; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_detail); ButterKnife.bind(this); mMyUser = MyApplication.getInstance().getUser(); initView(); initData(); initEvent(); } private void initView() { if (mMyUser != null) { if (mMyUser.getPicUser() != null) { Glide.with(UserDetailActivity.this) .load(mMyUser.getPicUser().getUrl()) .error(getResources().getDrawable(R.drawable.avatar_default_login)) .into(mTvHead.getRigtImageView()); } mTvNickName.setRigtTvText(mMyUser.getNickName()); String phone = mMyUser.getMobilePhoneNumber(); if (phone.length() == 11) mTvMyphone.setRigtTvText(phone.substring(0, 3) + "****" + phone.substring(7, 11)); if (!TextUtils.isEmpty(mMyUser.getMyName())) { mTvName.setRigtTvText(mMyUser.getMyName()); mTvName.setShowIndicator(false); mTvName.setClickable(false); mTvIsRealname.setRigtTvText("已认证"); mTvIsRealname.setClickable(false); } else { mTvName.setRigtTvText("请实名认证"); mTvName.setClickable(true); mTvName.setRigtTvColor(getResources().getColor(R.color.red)); mTvName.setShowIndicator(true); mTvIsRealname.setRigtTvText("未认证"); } if (!TextUtils.isEmpty(mMyUser.getWeixin())) { mTvWeixin.setRigtTvText(mMyUser.getWeixin()); } else { mTvWeixin.setRigtTvText("未绑定"); } if (!TextUtils.isEmpty(mMyUser.getQq())) { mTvQq.setRigtTvText(mMyUser.getQq()); } else { mTvQq.setRigtTvText("未绑定"); } if (!TextUtils.isEmpty(mMyUser.getSchool())) { mTvSchool.setRigtTvText(mMyUser.getSchool()); mTvSchool.setRigtTvColor(getResources().getColor(R.color.colorPrimary)); } else { mTvSchool.setRigtTvText("未认证"); mTvSchool.setRigtTvColor(getResources().getColor(R.color.red)); } } } private void initData() { initImagePicker(); } private void initEvent() { mTitleUseDetail.setOnLeftButtonClickListener(new TabTitleView.OnLeftButtonClickListener() { @Override public void onClick() { UserDetailActivity.this.finish(); } }); } private void initImagePicker() { ImagePicker imagePicker = ImagePicker.getInstance(); imagePicker.setImageLoader(new GlideImageLoader()); //设置图片加载器 imagePicker.setShowCamera(true); //显示拍照按钮 imagePicker.setMultiMode(false); imagePicker.setCrop(true); //允许裁剪(单选才有效) imagePicker.setSaveRectangle(true); //是否按矩形区域保存 // imagePicker.setSelectLimit(9); //选中数量限制 imagePicker.setStyle(CropImageView.Style.CIRCLE); //裁剪框的形状 imagePicker.setFocusWidth(400); //裁剪框的宽度。单位像素(圆形自动取宽高最小值) imagePicker.setFocusHeight(400); //裁剪框的高度。单位像素(圆形自动取宽高最小值) imagePicker.setOutPutX(400);//保存文件的宽度。单位像素 imagePicker.setOutPutY(400);//保存文件的高度。单位像素 } @OnClick({R.id.tv_head, R.id.tv_nick_name, R.id.tv_name, R.id.tv_is_realname, R.id.tv_myphone, R.id.tv_weixin, R.id.tv_qq, R.id.tv_school}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.tv_head: Go2Imagepicker(); break; case R.id.tv_nick_name: Go2ModifyNickNameActivity(); break; case R.id.tv_name: if (!MyApplication.getInstance().getUser().getRealName()) startActivity(new Intent(UserDetailActivity.this, IDCardVerifyActivity.class)); break; case R.id.tv_is_realname: if (!MyApplication.getInstance().getUser().getRealName()) startActivity(new Intent(UserDetailActivity.this, IDCardVerifyActivity.class)); break; case R.id.tv_myphone: Go2MobileNumActivity(); break; case R.id.tv_weixin: Go2BindOrDisbindWx(); break; case R.id.tv_qq: Go2BindOrDisbindQQ(); break; case R.id.tv_school: Go2BindOrDisbindSC(); break; } } private void Go2BindOrDisbindSC() { // TODO: 2017/6/21 Intent intent = new Intent(UserDetailActivity.this, CampusVerifyActivity.class); startActivity(intent); } private void Go2BindOrDisbindQQ() { // TODO: 2017/6/21 Intent intent = new Intent(UserDetailActivity.this, SsoUserInfoActivity.class); startActivity(intent); } private void Go2BindOrDisbindWx() { Intent intent = new Intent(UserDetailActivity.this, SsoUserInfoActivity.class); startActivity(intent); } private void Go2Imagepicker() { Intent intent = new Intent(this, ImageGridActivity.class); // intent.putExtra(ImageGridActivity.EXTRAS_TAKE_PICKERS,true); // 是否是直接打开相机 startActivityForResult(intent, REQS_IMAGE_PICKER); } private void Go2MobileNumActivity() { Intent intent = new Intent(UserDetailActivity.this, MobileNumActivity.class); startActivity(intent); } private void Go2ModifyNickNameActivity() { Intent intent = new Intent(UserDetailActivity.this, ModifyNickNameActivity.class); intent.putExtra("nick_name", mTvNickName.getRigtTvText().toString()); startActivityForResult(intent, REQS_NICKNAME); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d("onActivityResult", "requestCode: " + requestCode); switch (requestCode) { case REQS_IMAGE_PICKER: uploadImage(requestCode, resultCode, data); break; case REQS_NICKNAME: upDateNickname(requestCode, resultCode, data); break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: break; case 8: break; default: break; } } private void upDateNickname(int requestCode, int resultCode, Intent data) { if (RESULT_OK == resultCode && data != null) { String nickName = data.getStringExtra("nick_name"); if (nickName != null) { MyUser NMyUser = new MyUser(); NMyUser.setNickName(nickName); mMyUser.setNickName(nickName); MyApplication.getInstance().upDataUser(mMyUser, NMyUser); mTvNickName.setRigtTvText(nickName); } } } private void uploadImage(int requestCode, int resultCode, Intent data) { Log.d("uploadImage", "uploadImage: " + requestCode); if (resultCode == ImagePicker.RESULT_CODE_ITEMS) { if (data != null && requestCode == REQS_IMAGE_PICKER) { ArrayList<ImageItem> images = null; images = (ArrayList<ImageItem>) data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS); ImageItem imageItem = images.get(0); final BmobFile bmobFile = new BmobFile(new File(imageItem.path)); bmobFile.upload(new UploadFileListener() { @Override public void done(BmobException e) { if (e == null) { MyUser NMyUser = new MyUser(); NMyUser.setPicUser(bmobFile); mMyUser.setPicUser(bmobFile); MyApplication.getInstance().upDataUser(mMyUser, NMyUser); Glide.with(UserDetailActivity.this).load(bmobFile.getUrl()).into(mTvHead.getRigtImageView()); } else { ToastUtils.show(UserDetailActivity.this, "上传失败"); } } }); } else { Toast.makeText(this, "没有数据", Toast.LENGTH_SHORT).show(); } } } public class GlideImageLoader implements ImageLoader { @Override public void displayImage(Activity activity, String path, ImageView imageView, int width, int height) { Glide.with(activity)// .load(Uri.fromFile(new File(path))) //设置图片路径(fix #8,文件名包含%符号 无法识别和显示) .error(getResources().getDrawable(R.mipmap.default_image)) //设置错误图片 .placeholder(R.mipmap.default_image) //设置占位图片 .diskCacheStrategy(DiskCacheStrategy.ALL)//缓存全尺寸 .into(imageView); } @Override public void clearMemoryCache() { //这里是清除缓存的方法,根据需要自己实现 } } }