修复图片上传闪退BUG
This commit is contained in:
@ -7,7 +7,6 @@ import android.arch.lifecycle.ViewModel
|
||||
import android.arch.lifecycle.ViewModelProvider
|
||||
import android.content.Intent
|
||||
import android.text.TextUtils
|
||||
import anet.channel.util.Utils.context
|
||||
import com.gh.base.fragment.WaitingDialogFragment
|
||||
import com.gh.common.util.ImageUtils
|
||||
import com.gh.common.util.UploadImageUtils
|
||||
@ -42,6 +41,7 @@ class AnswerEditViewModel(application: Application,
|
||||
var questionsId: String?) : AndroidViewModel(application) {
|
||||
|
||||
private var mPostDraftsCount: Int = 0
|
||||
private val mApi = RetrofitManager.getInstance(getApplication()).api
|
||||
|
||||
var cacheAnswerContent: String? = null
|
||||
|
||||
@ -71,10 +71,10 @@ class AnswerEditViewModel(application: Application,
|
||||
val responseBody = RealResponseBody("", 0, null)
|
||||
Single.just<ResponseBody>(responseBody).toObservable()
|
||||
} else {
|
||||
RetrofitManager.getInstance(context).api.patchQuestionAnswer(body, answerId)
|
||||
mApi.patchQuestionAnswer(body, answerId)
|
||||
}
|
||||
} else {
|
||||
RetrofitManager.getInstance(context).api.postQuestionAnswer(body, questionsId)
|
||||
mApi.postQuestionAnswer(body, questionsId)
|
||||
}
|
||||
observable
|
||||
.subscribeOn(Schedulers.io())
|
||||
@ -94,7 +94,7 @@ class AnswerEditViewModel(application: Application,
|
||||
|
||||
fun deleteAnswerDraft() {
|
||||
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("删除中...", true))
|
||||
RetrofitManager.getInstance(context).api
|
||||
mApi
|
||||
.deleteAnswerDrafts(UserManager.getInstance().userId, draftId)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@ -116,11 +116,11 @@ class AnswerEditViewModel(application: Application,
|
||||
val uris = Matisse.obtainResult(data)
|
||||
val pictureList = ArrayList<String>()
|
||||
for (uri in uris) {
|
||||
val picturePath = PathUtils.getPath(context, uri)
|
||||
val picturePath = PathUtils.getPath(getApplication(), uri)
|
||||
if (File(picturePath).length() > ImageUtils.getUploadFileMaxSize()) {
|
||||
val count = ImageUtils.getUploadFileMaxSize() / 1024 / 1024
|
||||
val application: Application = getApplication()
|
||||
Utils.toast(context, application.getString(R.string.pic_max_hint, count))
|
||||
Utils.toast(getApplication(), application.getString(R.string.pic_max_hint, count))
|
||||
continue
|
||||
}
|
||||
Utils.log("picturePath = $picturePath")
|
||||
@ -128,7 +128,7 @@ class AnswerEditViewModel(application: Application,
|
||||
}
|
||||
|
||||
if (pictureList.size == 0) return
|
||||
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("上传...", true))
|
||||
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("上传中...", true))
|
||||
|
||||
uploadImageSubscription = UploadImageUtils.compressAndUploadImageList(UploadImageUtils.UploadType.answer, pictureList
|
||||
, false, object : UploadImageUtils.OnUploadImageListListener {
|
||||
@ -139,12 +139,12 @@ class AnswerEditViewModel(application: Application,
|
||||
}
|
||||
|
||||
override fun onSuccess(imageUrl: Map<String, String>) {
|
||||
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("上传...", false))
|
||||
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("上传中...", false))
|
||||
postImageLiveData.postValue(Resource.success(imageUrl))
|
||||
}
|
||||
|
||||
override fun onError() { // todo 失败提示??????
|
||||
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("上传...", false))
|
||||
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("上传中...", false))
|
||||
Utils.toast(getApplication(), "图片上传失败,请检查网络")
|
||||
postImageLiveData.postValue(Resource.error(null))
|
||||
// if (e != null && e instanceof HttpException && ((HttpException) e).code() == 403) {
|
||||
@ -157,8 +157,8 @@ class AnswerEditViewModel(application: Application,
|
||||
}
|
||||
|
||||
fun getUserAnswerDrafts() {
|
||||
RetrofitManager.getInstance(context).api
|
||||
.getUserAnswerDrafts(questionsId, Utils.getTime(context))
|
||||
mApi
|
||||
.getUserAnswerDrafts(questionsId, Utils.getTime(getApplication()))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(object : Response<ResponseBody>() {
|
||||
@ -194,7 +194,7 @@ class AnswerEditViewModel(application: Application,
|
||||
}
|
||||
|
||||
val body = RequestBody.create(MediaType.parse("application/json"), content.toString())
|
||||
RetrofitManager.getInstance(context).api
|
||||
mApi
|
||||
.postAnswerDrafts(body, UserManager.getInstance().userId)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
|
||||
Reference in New Issue
Block a user