From 65f23e63fe2fc5258f0c51ed2fbf5f5f25f2f6ca Mon Sep 17 00:00:00 2001 From: Matthieu <24-artectrex@users.noreply.shinice.net> Date: Sun, 18 Apr 2021 20:23:57 +0200 Subject: [PATCH] fix crash --- .../pixeldroid/postCreation/PostCreationActivity.kt | 12 ++++++------ .../postCreation/carousel/CarouselAdapter.kt | 6 ++++-- .../postCreation/carousel/ImageCarousel.kt | 6 ++---- app/src/main/res/layout/image_carousel.xml | 5 +++-- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt b/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt index ae86a40a..9904071d 100644 --- a/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt +++ b/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt @@ -59,7 +59,6 @@ data class PhotoData( class PostCreationActivity : BaseActivity() { private lateinit var accessToken: String - private lateinit var pixelfedAPI: PixelfedAPI private var user: UserDatabaseEntity? = null private lateinit var instance: InstanceDatabaseEntity @@ -87,7 +86,6 @@ class PostCreationActivity : BaseActivity() { intent.clipData?.let { addPossibleImages(it) } accessToken = user?.accessToken.orEmpty() - pixelfedAPI = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db) val carousel: ImageCarousel = binding.carousel carousel.addData(photoData.map { CarouselItem(it.imageUri) }) @@ -105,7 +103,7 @@ class PostCreationActivity : BaseActivity() { addPhoto() } carousel.updateDescriptionCallback = { position: Int, description: String -> - photoData[position].imageDescription = description + photoData.getOrNull(position)?.imageDescription = description } // 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 inter = pixelfedAPI.mediaUpload("Bearer $accessToken", description, requestBody.parts[0]) + val api = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db) + val inter = api.mediaUpload("Bearer $accessToken", description, requestBody.parts[0]) postSub = inter .subscribeOn(Schedulers.io()) @@ -382,7 +380,9 @@ class PostCreationActivity : BaseActivity() { enableButton(false) lifecycleScope.launchWhenCreated { try { - pixelfedAPI.postStatus( + val api = apiHolder.api ?: apiHolder.setDomainToCurrentUser(db) + + api.postStatus( authorization = "Bearer $accessToken", statusText = description, media_ids = photoData.mapNotNull { it.uploadId }.toList() diff --git a/app/src/main/java/com/h/pixeldroid/postCreation/carousel/CarouselAdapter.kt b/app/src/main/java/com/h/pixeldroid/postCreation/carousel/CarouselAdapter.kt index 759343fc..513e4672 100644 --- a/app/src/main/java/com/h/pixeldroid/postCreation/carousel/CarouselAdapter.kt +++ b/app/src/main/java/com/h/pixeldroid/postCreation/carousel/CarouselAdapter.kt @@ -96,8 +96,10 @@ class CarouselAdapter( } fun updateDescription(position: Int, description: String) { - dataList[position] = dataList[position].copy(caption = description) - notifyItemChanged(position) + dataList.getOrNull(position)?.apply { + dataList[position] = copy(caption = description) + notifyItemChanged(position) + } } fun addAll(dataList: List) { diff --git a/app/src/main/java/com/h/pixeldroid/postCreation/carousel/ImageCarousel.kt b/app/src/main/java/com/h/pixeldroid/postCreation/carousel/ImageCarousel.kt index 88a7913b..cc696b42 100644 --- a/app/src/main/java/com/h/pixeldroid/postCreation/carousel/ImageCarousel.kt +++ b/app/src/main/java/com/h/pixeldroid/postCreation/carousel/ImageCarousel.kt @@ -44,7 +44,6 @@ class ImageCarousel( private lateinit var recyclerView: RecyclerView private lateinit var tvCaption: TextView - private lateinit var editTextMediaDescription: EditText private var snapHelper: SnapHelper = PagerSnapHelper() var indicator: CircleIndicator2? = null @@ -292,9 +291,9 @@ class ImageCarousel( if(layoutCarousel){ field = value - if(value) editTextMediaDescription.setText(currentDescription) + if(value) binding.editTextMediaDescription.setText(currentDescription) else { - val description = editTextMediaDescription.text.toString() + val description = binding.editTextMediaDescription.text.toString() currentDescription = description adapter?.updateDescription(currentPosition, description) updateDescriptionCallback?.invoke(currentPosition, description) @@ -339,7 +338,6 @@ class ImageCarousel( recyclerView = binding.recyclerView tvCaption = binding.tvCaption - editTextMediaDescription = binding.editTextMediaDescription recyclerView.setHasFixedSize(true) diff --git a/app/src/main/res/layout/image_carousel.xml b/app/src/main/res/layout/image_carousel.xml index 52500e18..986cf574 100644 --- a/app/src/main/res/layout/image_carousel.xml +++ b/app/src/main/res/layout/image_carousel.xml @@ -42,13 +42,14 @@ android:id="@+id/editMediaDescriptionLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:visibility="gone" android:background="#4D000000" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toTopOf="@+id/indicator" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_goneMarginBottom="8dp"> + app:layout_goneMarginBottom="8dp" + tools:visibility="visible">