|
@@ -1,5 +1,7 @@
|
|
|
package com.cooleshow.teacher.ui.live;
|
|
|
|
|
|
+import android.Manifest;
|
|
|
+import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
import android.text.TextUtils;
|
|
|
import android.view.View;
|
|
@@ -10,6 +12,8 @@ import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
|
|
|
import com.bigkoo.pickerview.view.OptionsPickerView;
|
|
|
import com.cooleshow.base.router.RouterPath;
|
|
|
import com.cooleshow.base.ui.activity.BaseMVPActivity;
|
|
|
+import com.cooleshow.base.utils.GlideUtils;
|
|
|
+import com.cooleshow.base.utils.MyFileUtils;
|
|
|
import com.cooleshow.base.utils.ToastUtil;
|
|
|
import com.cooleshow.base.utils.ToastUtils;
|
|
|
import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
|
|
@@ -17,6 +21,12 @@ import com.cooleshow.teacher.R;
|
|
|
import com.cooleshow.teacher.contract.CreateLiveContract;
|
|
|
import com.cooleshow.teacher.databinding.ActivityCreateLiveBinding;
|
|
|
import com.cooleshow.teacher.presenter.live.CreateLivePresenter;
|
|
|
+import com.daya.live_teaching.utils.GlideEngine;
|
|
|
+import com.luck.picture.lib.PictureSelector;
|
|
|
+import com.luck.picture.lib.config.PictureConfig;
|
|
|
+import com.luck.picture.lib.config.PictureMimeType;
|
|
|
+import com.luck.picture.lib.entity.LocalMedia;
|
|
|
+import com.tbruyelle.rxpermissions3.RxPermissions;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
@@ -36,6 +46,8 @@ public class CreateLiveActivity extends BaseMVPActivity<ActivityCreateLiveBindin
|
|
|
private OptionsPickerView pvOptions;
|
|
|
private List<String> mTimes;
|
|
|
private String currentLimitTime = LIVE_TIMES_LIMIT[0];
|
|
|
+ public final int REQUEST_CODE_LOCAL = 0x19;
|
|
|
+ private String coverUrl;
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
@@ -48,6 +60,7 @@ public class CreateLiveActivity extends BaseMVPActivity<ActivityCreateLiveBindin
|
|
|
initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "创建直播");
|
|
|
viewBinding.tvConfirm.setOnClickListener(this);
|
|
|
viewBinding.csLiveDuration.setOnClickListener(this);
|
|
|
+ viewBinding.flUploadCover.setOnClickListener(this);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -81,16 +94,53 @@ public class CreateLiveActivity extends BaseMVPActivity<ActivityCreateLiveBindin
|
|
|
ToastUtil.getInstance().showShort("请输入直播间内容");
|
|
|
return;
|
|
|
}
|
|
|
- presenter.createTempLive(liveContent, liveTitle,currentLimitTime);
|
|
|
+ if (TextUtils.isEmpty(coverUrl)) {
|
|
|
+ ToastUtil.getInstance().showShort("请上传直播封面");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ presenter.createTempLive(liveContent, liveTitle, coverUrl, currentLimitTime);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ if (view.getId() == R.id.fl_upload_cover) {
|
|
|
+ //上传封面
|
|
|
+ toAlbum();
|
|
|
+ }
|
|
|
+
|
|
|
if (view.getId() == R.id.cs_live_duration) {
|
|
|
showTimeSelect();
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void toAlbum() {
|
|
|
+ new RxPermissions(this)
|
|
|
+ .request(Manifest.permission.CAMERA,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE,
|
|
|
+ Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
|
|
+ .subscribe(granted -> {
|
|
|
+ if (granted) {
|
|
|
+ goAlbum();
|
|
|
+ } else {
|
|
|
+ ToastUtil.getInstance().show(this, "请选择存储和相机权限!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void goAlbum() {
|
|
|
+ PictureSelector.create(this)
|
|
|
+ .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
|
|
|
+ .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(false)// 是否圆形裁剪 true or false
|
|
|
+ .forResult(REQUEST_CODE_LOCAL);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void showTimeSelect() {
|
|
|
if (pvOptions == null) {
|
|
@@ -126,4 +176,46 @@ public class CreateLiveActivity extends BaseMVPActivity<ActivityCreateLiveBindin
|
|
|
TeacherLiveRoomActivity.start(this, roomId);
|
|
|
finish();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void upLoadImageSuccess(String fileUrl) {
|
|
|
+ if (isDestroyed() || isFinishing()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.coverUrl = fileUrl;
|
|
|
+ GlideUtils.INSTANCE.loadImage(this, fileUrl, viewBinding.ivCover, com.cooleshow.base.R.drawable.bg_video_placeholder);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void upLoadImageFailure() {
|
|
|
+ ToastUtil.getInstance().showShort("封面上传失败,请重新选择");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data);
|
|
|
+ if (resultCode == RESULT_OK) {
|
|
|
+ if (requestCode == REQUEST_CODE_LOCAL) {
|
|
|
+ //上传封面
|
|
|
+ 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)) {
|
|
|
+// String v_path = FileUtils.getFilePathForN(avatar, PersonalSettingActivity.this);
|
|
|
+ boolean isImg = MyFileUtils.isImg(v_path);
|
|
|
+ if (isImg) {
|
|
|
+ presenter.upLoadImage(CreateLiveActivity.this, v_path);
|
|
|
+ } else {
|
|
|
+ ToastUtil.getInstance().showShort("请选择图片类型文件");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|