Convert upload to kotlin (part 3) (#6104)

* Convert UploadCategoriesFragment to kotlin

* Convert UploadBaseFragment to kotlin

* Convert UploadItem to kotlin

* Convert UploadModel to kotlin

* Convert UploadMediaDetailAdapter to kotlin

* Convert UploadActivity to kotlin

* Convert UploadMediaPresenter to kotlin

* Convert UploadMediaDetailFragment to kotlin

* Fix NPE that broke uploads
This commit is contained in:
Paul Hawke 2025-01-13 08:04:09 -06:00 committed by GitHub
parent 6d64357d45
commit 0e735512bb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
37 changed files with 3236 additions and 3564 deletions

View file

@ -1,7 +1,6 @@
package fr.free.nrw.commons.description
import android.app.ProgressDialog
import android.content.Intent
import android.os.Bundle
import android.os.Parcelable
import android.speech.RecognizerIntent
@ -72,7 +71,7 @@ class DescriptionEditActivity :
private lateinit var binding: ActivityDescriptionEditBinding
private var descriptionAndCaptions: ArrayList<UploadMediaDetail>? = null
private var descriptionAndCaptions: MutableList<UploadMediaDetail>? = null
private val voiceInputResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
@ -114,22 +113,18 @@ class DescriptionEditActivity :
* Initializes the RecyclerView
* @param descriptionAndCaptions list of description and caption
*/
private fun initRecyclerView(descriptionAndCaptions: ArrayList<UploadMediaDetail>?) {
private fun initRecyclerView(descriptionAndCaptions: MutableList<UploadMediaDetail>?) {
uploadMediaDetailAdapter =
UploadMediaDetailAdapter(
this,
savedLanguageValue,
descriptionAndCaptions,
descriptionAndCaptions ?: mutableListOf(),
recentLanguagesDao,
voiceInputResultLauncher
)
uploadMediaDetailAdapter.setCallback { titleStringID: Int, messageStringId: Int ->
showInfoAlert(
titleStringID,
messageStringId,
)
}
uploadMediaDetailAdapter.setEventListener(this)
uploadMediaDetailAdapter.callback = UploadMediaDetailAdapter.Callback(::showInfoAlert)
uploadMediaDetailAdapter.eventListener = this
rvDescriptions = binding.rvDescriptionsCaptions
rvDescriptions!!.layoutManager = LinearLayoutManager(this)
rvDescriptions!!.adapter = uploadMediaDetailAdapter
@ -272,11 +267,11 @@ class DescriptionEditActivity :
applicationContext,
media,
mediaDetail.languageCode!!,
mediaDetail.captionText,
mediaDetail.captionText!!,
).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { s: Boolean? ->
updatedCaptions[mediaDetail.languageCode!!] = mediaDetail.captionText
updatedCaptions[mediaDetail.languageCode!!] = mediaDetail.captionText!!
media.captions = updatedCaptions
Timber.d("Caption is added.")
},