Skip to content

Convert upload to kotlin (part 2) #6069

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Dec 24, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,13 @@ data class Contribution constructor(
Media(
formatCaptions(item.uploadMediaDetails),
categories,
item.fileName,
item.filename,
formatDescriptions(item.uploadMediaDetails),
sessionManager.userName,
sessionManager.userName,
),
localUri = item.mediaUri,
decimalCoords = item.gpsCoords.decimalCoords,
decimalCoords = item.gpsCoords?.decimalCoords,
dateCreatedSource = "",
depictedItems = depictedItems,
wikidataPlace = from(item.place),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class MimeTypeMapWrapper {
)

@JvmStatic
fun getExtensionFromMimeType(mimeType: String): String? {
fun getExtensionFromMimeType(mimeType: String?): String? {
val result = sMimeTypeToExtensionMap[mimeType]
if (result != null) {
return result
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ class UploadRepository @Inject constructor(
*
* @param licenseName
*/
fun setSelectedLicense(licenseName: String) {
fun setSelectedLicense(licenseName: String?) {
uploadModel.selectedLicense = licenseName
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ImageProcessingService @Inject constructor(
}

Timber.d("Checking the validity of image")
val filePath = uploadItem.mediaUri.path
val filePath = uploadItem.mediaUri?.path

return Single.zip(
checkDuplicateImage(filePath),
Expand Down Expand Up @@ -107,7 +107,7 @@ class ImageProcessingService @Inject constructor(
return Single.just(EMPTY_CAPTION)
}

return mediaClient.checkPageExistsUsingTitle("File:" + uploadItem.fileName)
return mediaClient.checkPageExistsUsingTitle("File:" + uploadItem.filename)
.map { doesFileExist: Boolean ->
Timber.d("Result for valid title is %s", doesFileExist)
if (doesFileExist) FILE_NAME_EXISTS else IMAGE_OK
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
package fr.free.nrw.commons.upload

import android.app.Dialog
import android.content.DialogInterface
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.Window
import androidx.fragment.app.DialogFragment
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder
import fr.free.nrw.commons.R
import fr.free.nrw.commons.databinding.FragmentSimilarImageDialogBinding
import java.io.File

/**
* Created by harisanker on 14/2/18.
*/
class SimilarImageDialogFragment : DialogFragment() {
var callback: Callback? = null //Implemented interface from shareActivity
var gotResponse: Boolean = false

private var _binding: FragmentSimilarImageDialogBinding? = null
private val binding: FragmentSimilarImageDialogBinding get() = _binding!!

interface Callback {
fun onPositiveResponse()

fun onNegativeResponse()
}

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentSimilarImageDialogBinding.inflate(inflater, container, false)

binding.orginalImage.hierarchy =
GenericDraweeHierarchyBuilder.newInstance(resources).setPlaceholderImage(
VectorDrawableCompat.create(
resources, R.drawable.ic_image_black_24dp, requireContext().theme
)
).setFailureImage(
VectorDrawableCompat.create(
resources, R.drawable.ic_error_outline_black_24dp, requireContext().theme
)
).build()

binding.possibleImage.hierarchy =
GenericDraweeHierarchyBuilder.newInstance(resources).setPlaceholderImage(
VectorDrawableCompat.create(
resources, R.drawable.ic_image_black_24dp, requireContext().theme
)
).setFailureImage(
VectorDrawableCompat.create(
resources, R.drawable.ic_error_outline_black_24dp, requireContext().theme
)
).build()

arguments?.let {
binding.orginalImage.setImageURI(
Uri.fromFile(File(it.getString("originalImagePath")!!))
)
binding.possibleImage.setImageURI(
Uri.fromFile(File(it.getString("possibleImagePath")!!))
)
}

binding.postiveButton.setOnClickListener {
callback?.onPositiveResponse()
gotResponse = true
dismiss()
}

binding.negativeButton.setOnClickListener {
callback?.onNegativeResponse()
gotResponse = true
dismiss()
}

return binding.root
}

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = super.onCreateDialog(savedInstanceState)
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
return dialog
}

override fun onDismiss(dialog: DialogInterface) {
// I user dismisses dialog by pressing outside the dialog.
if (!gotResponse) {
callback?.onNegativeResponse()
}
super.onDismiss(dialog)
}

override fun onDestroy() {
super.onDestroy()
_binding = null
}
}
Loading
Loading