|
@@ -11,6 +11,8 @@ import android.text.TextWatcher;
|
|
|
import android.view.View;
|
|
|
import android.view.WindowManager;
|
|
|
import android.widget.EditText;
|
|
|
+import android.widget.RadioGroup;
|
|
|
+import android.widget.TextView;
|
|
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
import androidx.recyclerview.widget.GridLayoutManager;
|
|
@@ -23,20 +25,26 @@ import com.cooleshow.base.ui.activity.BaseMVPActivity;
|
|
|
import com.cooleshow.base.ui.video.VideoPlayActivity;
|
|
|
import com.cooleshow.base.utils.ActivityUtils;
|
|
|
import com.cooleshow.base.utils.FileUtils;
|
|
|
+import com.cooleshow.base.utils.GlideUtils;
|
|
|
import com.cooleshow.base.utils.GsonUtils;
|
|
|
import com.cooleshow.base.utils.MyFileUtils;
|
|
|
+import com.cooleshow.base.utils.PopupUtil;
|
|
|
import com.cooleshow.base.utils.SizeUtils;
|
|
|
import com.cooleshow.base.utils.ToastUtil;
|
|
|
+import com.cooleshow.base.utils.UiUtils;
|
|
|
import com.cooleshow.base.widgets.CommonItemDecoration;
|
|
|
import com.cooleshow.teacher.R;
|
|
|
import com.cooleshow.teacher.adapter.MineStyleVideoAdapter;
|
|
|
import com.cooleshow.teacher.adapter.TeachableSelectAdapter;
|
|
|
import com.cooleshow.teacher.bean.TeachableInstrumentBean;
|
|
|
import com.cooleshow.teacher.bean.TeacherSelfStyleInfoBean;
|
|
|
+import com.cooleshow.teacher.bean.TeacherUserInfo;
|
|
|
import com.cooleshow.teacher.contract.MineStylePageContract;
|
|
|
import com.cooleshow.teacher.databinding.ActivityMineStylePageBinding;
|
|
|
import com.cooleshow.teacher.presenter.minestyle.MineStylePagePresenter;
|
|
|
import com.cooleshow.teacher.widgets.MineStyleVideoItemDecoration;
|
|
|
+import com.cooleshow.usercenter.bean.SetDetailBean;
|
|
|
+import com.cooleshow.usercenter.helper.UserHelper;
|
|
|
import com.daya.live_teaching.utils.GlideEngine;
|
|
|
import com.google.android.flexbox.AlignItems;
|
|
|
import com.google.android.flexbox.FlexDirection;
|
|
@@ -49,6 +57,9 @@ import com.luck.picture.lib.config.PictureMimeType;
|
|
|
import com.luck.picture.lib.entity.LocalMedia;
|
|
|
import com.tbruyelle.rxpermissions3.RxPermissions;
|
|
|
|
|
|
+import org.json.JSONException;
|
|
|
+import org.json.JSONObject;
|
|
|
+
|
|
|
import java.io.Serializable;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
@@ -66,6 +77,7 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
private final int SELECT_RESULT = 1001;
|
|
|
private final int CHOOSE_VIDEO = 1002;
|
|
|
public final int REQUEST_CODE_LOCAL = 0x19;
|
|
|
+ public final int REQUEST_CODE_AVATAR = 0x20;
|
|
|
private EditText etSelfIntroduction;
|
|
|
private RecyclerView videoList;
|
|
|
private MineStyleVideoAdapter mMineStyleVideoListAdapter;
|
|
@@ -75,6 +87,9 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
private List<TeachableInstrumentBean> selectTeachableInstrument = new ArrayList<>();
|
|
|
private int currentUploadCoverPosition = -1;
|
|
|
private boolean isShowAuditTip = false;
|
|
|
+ private String currentAvatarUrl;
|
|
|
+ private String currentNickName;
|
|
|
+ private String isReal;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -118,6 +133,29 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
case R.id.tv_add_style:
|
|
|
getVideoPermission();
|
|
|
break;
|
|
|
+ case R.id.iv_avatar:
|
|
|
+ selectHeader();
|
|
|
+ break;
|
|
|
+ case R.id.view_nick_click:
|
|
|
+ //昵称修改
|
|
|
+ if (!TextUtils.isEmpty(currentNickName)) {
|
|
|
+ ARouter.getInstance().build(RouterPath.MineCenter.MINE_MODIFY_NICKNAME)
|
|
|
+ .withString("userName", currentNickName)
|
|
|
+ .navigation(this);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case R.id.view_real_name_click:
|
|
|
+ //实名认证
|
|
|
+ if (!TextUtils.isEmpty(isReal) && TextUtils.equals(isReal, "0")) {
|
|
|
+ ARouter.getInstance().build(RouterPath.MineCenter.MINE_PERSONAL_CERTIFICATION)
|
|
|
+ .navigation(this);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case R.id.view_phone_click:
|
|
|
+ //手机号
|
|
|
+ ARouter.getInstance().build(RouterPath.MineCenter.MINE_CHECK_MODIFY_PHONENUM)
|
|
|
+ .navigation(this);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -133,7 +171,17 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
@Override
|
|
|
public void initData() {
|
|
|
super.initData();
|
|
|
- presenter.getTeacherSelfStyle();
|
|
|
+ if (presenter != null) {
|
|
|
+ presenter.getTeacherSelfStyle();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onResume() {
|
|
|
+ super.onResume();
|
|
|
+ if (presenter != null) {
|
|
|
+ presenter.getUserInfoDetail();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private List<TeacherSelfStyleInfoBean.StyleVideoBean> videoBeanList = new ArrayList<>();
|
|
@@ -147,6 +195,10 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
viewBinding.tvSelectFans.setOnClickListener(this);
|
|
|
viewBinding.tvSave.setOnClickListener(this);
|
|
|
viewBinding.tvAddStyle.setOnClickListener(this);
|
|
|
+ viewBinding.ivAvatar.setOnClickListener(this);
|
|
|
+ viewBinding.viewNickClick.setOnClickListener(this);
|
|
|
+ viewBinding.viewRealNameClick.setOnClickListener(this);
|
|
|
+ viewBinding.viewPhoneClick.setOnClickListener(this);
|
|
|
GridLayoutManager manager = new GridLayoutManager(this, 2);
|
|
|
videoList.setLayoutManager(manager);
|
|
|
// addEmptyVideoBean();
|
|
@@ -186,7 +238,7 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
@Override
|
|
|
public void onUploadCover(int position) {
|
|
|
currentUploadCoverPosition = position;
|
|
|
- toAlbum();
|
|
|
+ toAlbum(false);
|
|
|
}
|
|
|
});
|
|
|
rvTopSelect = viewBinding.rvTopSelect;
|
|
@@ -208,6 +260,16 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
teachableSelectAdapter.notifyDataSetChanged();
|
|
|
});
|
|
|
addETListener();
|
|
|
+ viewBinding.rgSex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
|
|
+ @Override
|
|
|
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
|
|
|
+ if (checkedId == R.id.rb_male) {
|
|
|
+ modifySex(true);
|
|
|
+ } else {
|
|
|
+ modifySex(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -230,21 +292,21 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void toAlbum() {
|
|
|
+ private void toAlbum(boolean isUploadAvatar) {
|
|
|
new RxPermissions(this)
|
|
|
.request(Manifest.permission.CAMERA,
|
|
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
|
|
.subscribe(granted -> {
|
|
|
if (granted) {
|
|
|
- goAlbum();
|
|
|
+ goAlbum(isUploadAvatar);
|
|
|
} else {
|
|
|
ToastUtil.getInstance().show(this, "请选择存储和相机权限!");
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private void goAlbum() {
|
|
|
+ private void goAlbum(boolean isUploadAvatar) {
|
|
|
PictureSelector.create(this)
|
|
|
.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
|
|
|
.loadImageEngine(GlideEngine.createGlideEngine())
|
|
@@ -255,7 +317,7 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
.showCropGrid(false)// 是否显示裁剪矩形网格 圆形裁剪时建议设为false true or false
|
|
|
.compress(true)// 是否压缩 true or false
|
|
|
.circleDimmedLayer(false)// 是否圆形裁剪 true or false
|
|
|
- .forResult(REQUEST_CODE_LOCAL);
|
|
|
+ .forResult(isUploadAvatar ? REQUEST_CODE_AVATAR : REQUEST_CODE_LOCAL);
|
|
|
}
|
|
|
|
|
|
private void addETListener() {
|
|
@@ -272,8 +334,8 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
|
|
|
@Override
|
|
|
public void afterTextChanged(Editable s) {
|
|
|
- String trim = etSelfIntroduction.getText().toString();
|
|
|
- viewBinding.tvNumHint.setText(trim.length() + "/200");
|
|
|
+// String trim = etSelfIntroduction.getText().toString();
|
|
|
+// viewBinding.tvNumHint.setText(trim.length() + "/200");
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -368,9 +430,63 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
if (isFinishing() || isDestroyed()) {
|
|
|
return;
|
|
|
}
|
|
|
+ ToastUtil.getInstance().showShort("封面上传失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void upLoadImageSuccess(String avatarUrl) {
|
|
|
+ if (!checkActivityExist()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ try {
|
|
|
+ jsonObject.put("avatar", avatarUrl);
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ presenter.submitSetDetail(jsonObject.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void upLoadImageFailure() {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void submitSetDetailSuccess(SetDetailBean setDetailBean) {
|
|
|
+ if (!checkActivityExist()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ToastUtil.getInstance().showShort("修改成功");
|
|
|
+ if (setDetailBean != null) {
|
|
|
+ GlideUtils.INSTANCE.loadImage(this, setDetailBean.avatar, viewBinding.ivAvatar, R.drawable.icon_teacher_default_head);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void getUserInfoSuccess(TeacherUserInfo data) {
|
|
|
+ if (!checkActivityExist()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (data != null) {
|
|
|
+ //头像
|
|
|
+ this.currentAvatarUrl = data.heardUrl;
|
|
|
+ GlideUtils.INSTANCE.loadImage(MineStylePageActivity.this, data.heardUrl, viewBinding.ivAvatar, R.drawable.icon_teacher_default_head);
|
|
|
+ //名称
|
|
|
+ String teacherName = UserHelper.getTeacherName(data.username, data.userId);
|
|
|
+ this.currentNickName = teacherName;
|
|
|
+ viewBinding.tvNickname.setText(teacherName);
|
|
|
+ //实名状态
|
|
|
+ this.isReal = String.valueOf(data.isReal);
|
|
|
+ viewBinding.tvRealNameStatus.setText(data.isReal == 1 ? "已认证" : "未认证");
|
|
|
+ viewBinding.tvRealNameStatus.setTextColor(getResources().getColor(data.isReal == 1 ? com.cooleshow.base.R.color.color_cccccc : com.cooleshow.base.R.color.color_ff0000));
|
|
|
+ //性别
|
|
|
+ viewBinding.rgSex.check(TextUtils.equals(data.gender, "1") ? R.id.rb_male : R.id.rb_female);
|
|
|
+ //手机号
|
|
|
+ viewBinding.tvPhoneNum.setText(data.phone);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void addEmptyVideoBean() {
|
|
|
TeacherSelfStyleInfoBean.StyleVideoBean styleVideoBean = new TeacherSelfStyleInfoBean.StyleVideoBean();
|
|
|
styleVideoBean.type = 1;
|
|
@@ -391,6 +507,23 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
Uri uri = data.getData();
|
|
|
String v_path = FileUtils.getFilePathForN(uri, MineStylePageActivity.this);
|
|
|
presenter.uploadVideo(MineStylePageActivity.this, v_path);
|
|
|
+ } else if (requestCode == REQUEST_CODE_AVATAR) {
|
|
|
+ if (data != null) {
|
|
|
+ // 图片、视频、音频选择结果回调
|
|
|
+ List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
|
|
|
+ String v_path = null;
|
|
|
+ if (selectList != null && selectList.size() > 0) {
|
|
|
+ v_path = selectList.get(0).getCompressPath();
|
|
|
+ }
|
|
|
+ if (!TextUtils.isEmpty(v_path)) {
|
|
|
+ boolean isImg = MyFileUtils.isImg(v_path);
|
|
|
+ if (isImg) {
|
|
|
+ presenter.upLoadImage(MineStylePageActivity.this, v_path);
|
|
|
+ } else {
|
|
|
+ ToastUtil.getInstance().showShort("请选择图片类型文件");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
} else if (requestCode == REQUEST_CODE_LOCAL) {
|
|
|
if (data != null) {
|
|
|
// 图片、视频、音频选择结果回调
|
|
@@ -437,4 +570,67 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
|
|
|
ActivityUtils.startActivityForResult(this, intent, CHOOSE_VIDEO);
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ private void modifySex(boolean isMale) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ try {
|
|
|
+ jsonObject.put("gender", isMale ? 1 : 0);
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ presenter.submitSetDetail(jsonObject.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void selectHeader() {
|
|
|
+ PopupUtil.showInBottom(this, R.layout.pop_modify_header, (view, popupWindow) -> {
|
|
|
+ TextView tv_camera = view.findViewById(R.id.tv_camera);
|
|
|
+ TextView tv_album = view.findViewById(R.id.tv_album);
|
|
|
+ TextView tv_cancel = view.findViewById(R.id.tv_cancel);
|
|
|
+ tv_camera.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ toCamera();
|
|
|
+ popupWindow.dismiss();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ tv_album.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ toAlbum(true);
|
|
|
+ popupWindow.dismiss();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ tv_cancel.setOnClickListener(view1 -> popupWindow.dismiss());
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void toCamera() {
|
|
|
+ new RxPermissions(this)
|
|
|
+ .request(Manifest.permission.CAMERA,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
|
|
+ .subscribe(granted -> {
|
|
|
+ if (granted) {
|
|
|
+ goCamera();
|
|
|
+ } else {
|
|
|
+ ToastUtil.getInstance().show(this, "请选择存储和相机权限!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void goCamera() {
|
|
|
+ PictureSelector.create(this)
|
|
|
+ .openCamera(PictureMimeType.ofImage())
|
|
|
+ .loadImageEngine(GlideEngine.createGlideEngine())
|
|
|
+ .theme(com.cooleshow.base.R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles 用法:R .style.picture.white.style
|
|
|
+ .selectionMode(PictureConfig.SINGLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
|
|
|
+ .enableCrop(true)// 是否裁剪 true or false
|
|
|
+ .cutOutQuality(100)
|
|
|
+ .showCropGrid(false)// 是否显示裁剪矩形网格 圆形裁剪时建议设为false true or false
|
|
|
+ .compress(true)// 是否压缩 true or false
|
|
|
+ .circleDimmedLayer(true)// 是否圆形裁剪 true or false
|
|
|
+ .forResult(REQUEST_CODE_AVATAR);
|
|
|
+ }
|
|
|
+
|
|
|
}
|