package com.sinata.xqmuse.ui.mine
|
|
import android.Manifest
|
import android.app.Activity
|
import android.content.Intent
|
import android.net.Uri
|
import android.os.Build
|
import android.os.Environment
|
import android.provider.Settings
|
import androidx.core.os.bundleOf
|
import androidx.recyclerview.widget.GridLayoutManager
|
import cn.sinata.xldutils.activity.ImagePagerActivity
|
import cn.sinata.xldutils.utils.SPUtils
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import cn.sinata.xldutils.utils.myToast
|
import com.sinata.xqmuse.utils.picture.PictureSelectorHelper
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.dialog.TipDialog
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.ui.course.adapter.PhotoAdapter
|
import com.sinata.xqmuse.ui.discovery.VideoPlayerActivity
|
import com.sinata.xqmuse.utils.extention.clickDelay
|
import com.sinata.xqmuse.utils.extention.uploadWithCompress
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import com.tbruyelle.rxpermissions2.RxPermissions
|
import kotlinx.android.synthetic.main.activity_feedback.*
|
import org.jetbrains.anko.startActivity
|
|
class FeedbackActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_feedback
|
|
private val imgList = arrayListOf<String>()
|
private val imgAdapter = PhotoAdapter(imgList,true)
|
|
override fun initClick() {
|
imgAdapter.setOnItemClickListener { view, position ->
|
if (imgList[position].isEmpty()){
|
takeMedia()
|
}else{
|
if (imgAdapter.video.isNotEmpty()){
|
startActivity<VideoPlayerActivity>("videoUrl" to imgAdapter.video)
|
}else{
|
//图片预览
|
startActivity<ImagePagerActivity>("url" to imgList.filter { it.isNotEmpty() },"position" to position)
|
}
|
}
|
}
|
|
tv_action.clickDelay {
|
val content = et_content.text.toString()
|
if (content.isEmpty()){
|
myToast("请填写反馈内容")
|
return@clickDelay
|
}
|
val imgs = imgList.filter { it.isNotEmpty() }.joinToString(",") { it }
|
HttpManager.feedBack(content,if (imgs.isEmpty()) null else imgs).request(this){ _, _->
|
myToast("提交成功")
|
finish()
|
}
|
}
|
}
|
|
private fun takeMedia(){
|
val rxPermissions = RxPermissions(this)
|
if (rxPermissions.isGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE)){
|
PictureSelectorHelper.pickMultipleMedia(
|
this,
|
10 - imgList.size, false )
|
}else{
|
val fileGranted = rxPermissions.isGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
if (SPUtils.instance().getBoolean("FILE_REFUSE") && !fileGranted) {
|
myToast("缺少文件权限")
|
return
|
}
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("msg" to "为了访问手机相册选择图片上传,我们需要获取文件读写权限", "ok" to "去授权", "cancel" to "不需要")
|
tipDialog.setCallback(object : TipDialog.OnClickCallback {
|
override fun onOk() {
|
rxPermissions.request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
.subscribe {
|
if (it) {
|
PictureSelectorHelper.pickMultipleMedia(
|
this@FeedbackActivity,
|
10 - imgList.size, false )
|
} else {
|
myToast("缺少文件权限")
|
SPUtils.instance().put("FILE_REFUSE", true).apply()
|
}
|
}
|
}
|
|
override fun onCancel() {
|
SPUtils.instance().put("FILE_REFUSE", true).apply()
|
}
|
})
|
tipDialog.show(supportFragmentManager,"permission")
|
}
|
}
|
|
override fun initView() {
|
tv_2.text = SpanBuilder("*反馈内容:").color(this,0,1,R.color.colorRed).build()
|
rv_photo.layoutManager = GridLayoutManager(this,3)
|
rv_photo.adapter = imgAdapter
|
imgList.add("")
|
imgAdapter.notifyDataSetChanged()
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
PictureSelectorHelper.onPickResult(
|
requestCode,
|
resultCode,
|
data,
|
object : StringCallback {
|
override fun onResult(rst: String) {
|
//反馈无视频
|
}
|
}) {
|
showDialog()
|
val list = arrayListOf<String>()
|
it.forEachIndexed { index, s ->
|
s.uploadWithCompress(this, object : StringCallback {
|
override fun onResult(rst: String) {
|
list.add(rst)
|
if (list.size == it.size) {
|
dismissDialog()
|
imgList.addAll(imgList.size - 1, list)
|
if (imgList.size == 10)
|
imgList.removeAt(9)
|
imgAdapter.notifyDataSetChanged()
|
}
|
}
|
})
|
}
|
}
|
|
}
|
|
}
|