fix crash

This commit is contained in:
Matthieu 2021-04-18 20:23:57 +02:00
parent 28245192fd
commit 65f23e63fe
4 changed files with 15 additions and 14 deletions

View File

@ -59,7 +59,6 @@ data class PhotoData(
class PostCreationActivity : BaseActivity() { class PostCreationActivity : BaseActivity() {
private lateinit var accessToken: String private lateinit var accessToken: String
private lateinit var pixelfedAPI: PixelfedAPI
private var user: UserDatabaseEntity? = null private var user: UserDatabaseEntity? = null
private lateinit var instance: InstanceDatabaseEntity private lateinit var instance: InstanceDatabaseEntity
@ -87,7 +86,6 @@ class PostCreationActivity : BaseActivity() {
intent.clipData?.let { addPossibleImages(it) } intent.clipData?.let { addPossibleImages(it) }
accessToken = user?.accessToken.orEmpty() accessToken = user?.accessToken.orEmpty()
pixelfedAPI = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db)
val carousel: ImageCarousel = binding.carousel val carousel: ImageCarousel = binding.carousel
carousel.addData(photoData.map { CarouselItem(it.imageUri) }) carousel.addData(photoData.map { CarouselItem(it.imageUri) })
@ -105,7 +103,7 @@ class PostCreationActivity : BaseActivity() {
addPhoto() addPhoto()
} }
carousel.updateDescriptionCallback = { position: Int, description: String -> carousel.updateDescriptionCallback = { position: Int, description: String ->
photoData[position].imageDescription = description photoData.getOrNull(position)?.imageDescription = description
} }
// get the description and send the post // get the description and send the post
@ -339,8 +337,8 @@ class PostCreationActivity : BaseActivity() {
val description = data.imageDescription?.let { MultipartBody.Part.createFormData("description", it) } val description = data.imageDescription?.let { MultipartBody.Part.createFormData("description", it) }
val api = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db)
val inter = pixelfedAPI.mediaUpload("Bearer $accessToken", description, requestBody.parts[0]) val inter = api.mediaUpload("Bearer $accessToken", description, requestBody.parts[0])
postSub = inter postSub = inter
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
@ -382,7 +380,9 @@ class PostCreationActivity : BaseActivity() {
enableButton(false) enableButton(false)
lifecycleScope.launchWhenCreated { lifecycleScope.launchWhenCreated {
try { try {
pixelfedAPI.postStatus( val api = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db)
api.postStatus(
authorization = "Bearer $accessToken", authorization = "Bearer $accessToken",
statusText = description, statusText = description,
media_ids = photoData.mapNotNull { it.uploadId }.toList() media_ids = photoData.mapNotNull { it.uploadId }.toList()

View File

@ -96,8 +96,10 @@ class CarouselAdapter(
} }
fun updateDescription(position: Int, description: String) { fun updateDescription(position: Int, description: String) {
dataList[position] = dataList[position].copy(caption = description) dataList.getOrNull(position)?.apply {
notifyItemChanged(position) dataList[position] = copy(caption = description)
notifyItemChanged(position)
}
} }
fun addAll(dataList: List<CarouselItem>) { fun addAll(dataList: List<CarouselItem>) {

View File

@ -44,7 +44,6 @@ class ImageCarousel(
private lateinit var recyclerView: RecyclerView private lateinit var recyclerView: RecyclerView
private lateinit var tvCaption: TextView private lateinit var tvCaption: TextView
private lateinit var editTextMediaDescription: EditText
private var snapHelper: SnapHelper = PagerSnapHelper() private var snapHelper: SnapHelper = PagerSnapHelper()
var indicator: CircleIndicator2? = null var indicator: CircleIndicator2? = null
@ -292,9 +291,9 @@ class ImageCarousel(
if(layoutCarousel){ if(layoutCarousel){
field = value field = value
if(value) editTextMediaDescription.setText(currentDescription) if(value) binding.editTextMediaDescription.setText(currentDescription)
else { else {
val description = editTextMediaDescription.text.toString() val description = binding.editTextMediaDescription.text.toString()
currentDescription = description currentDescription = description
adapter?.updateDescription(currentPosition, description) adapter?.updateDescription(currentPosition, description)
updateDescriptionCallback?.invoke(currentPosition, description) updateDescriptionCallback?.invoke(currentPosition, description)
@ -339,7 +338,6 @@ class ImageCarousel(
recyclerView = binding.recyclerView recyclerView = binding.recyclerView
tvCaption = binding.tvCaption tvCaption = binding.tvCaption
editTextMediaDescription = binding.editTextMediaDescription
recyclerView.setHasFixedSize(true) recyclerView.setHasFixedSize(true)

View File

@ -42,13 +42,14 @@
android:id="@+id/editMediaDescriptionLayout" android:id="@+id/editMediaDescriptionLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone"
android:background="#4D000000" android:background="#4D000000"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toTopOf="@+id/indicator" app:layout_constraintBottom_toTopOf="@+id/indicator"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_goneMarginBottom="8dp"> app:layout_goneMarginBottom="8dp"
tools:visibility="visible">
<EditText <EditText
android:id="@+id/editTextMediaDescription" android:id="@+id/editTextMediaDescription"