From 90c2e041f32c56ce29431c9a42c2725df11ca840 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Fri, 20 Dec 2024 22:26:45 -0600 Subject: [PATCH] Converted SimilarImageDialogFragment to kotlin --- .../upload/SimilarImageDialogFragment.java | 109 ------------------ .../upload/SimilarImageDialogFragment.kt | 105 +++++++++++++++++ 2 files changed, 105 insertions(+), 109 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.java create mode 100644 app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.kt diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.java deleted file mode 100644 index c1db2fd4f..000000000 --- a/app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.java +++ /dev/null @@ -1,109 +0,0 @@ -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.annotation.Nullable; -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. - */ - -public class SimilarImageDialogFragment extends DialogFragment { - - Callback callback;//Implemented interface from shareActivity - Boolean gotResponse = false; - - private FragmentSimilarImageDialogBinding binding; - - public SimilarImageDialogFragment() { - } - public interface Callback { - void onPositiveResponse(); - - void onNegativeResponse(); - } - - public void setCallback(Callback callback) { - this.callback = callback; - } - - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - binding = FragmentSimilarImageDialogBinding.inflate(inflater, container, false); - - - binding.orginalImage.setHierarchy(GenericDraweeHierarchyBuilder - .newInstance(getResources()) - .setPlaceholderImage(VectorDrawableCompat.create(getResources(), - R.drawable.ic_image_black_24dp,getContext().getTheme())) - .setFailureImage(VectorDrawableCompat.create(getResources(), - R.drawable.ic_error_outline_black_24dp, getContext().getTheme())) - .build()); - binding.possibleImage.setHierarchy(GenericDraweeHierarchyBuilder - .newInstance(getResources()) - .setPlaceholderImage(VectorDrawableCompat.create(getResources(), - R.drawable.ic_image_black_24dp,getContext().getTheme())) - .setFailureImage(VectorDrawableCompat.create(getResources(), - R.drawable.ic_error_outline_black_24dp, getContext().getTheme())) - .build()); - - binding.orginalImage.setImageURI(Uri.fromFile(new File(getArguments().getString("originalImagePath")))); - binding.possibleImage.setImageURI(Uri.fromFile(new File(getArguments().getString("possibleImagePath")))); - - binding.postiveButton.setOnClickListener(v -> onPositiveButtonClicked()); - binding.negativeButton.setOnClickListener(v -> onNegativeButtonClicked()); - - return binding.getRoot(); - } - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - Dialog dialog = super.onCreateDialog(savedInstanceState); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - return dialog; - } - - @Override - public void onDismiss(DialogInterface dialog) { -// I user dismisses dialog by pressing outside the dialog. - if (!gotResponse) { - callback.onNegativeResponse(); - } - super.onDismiss(dialog); - } - - public void onNegativeButtonClicked() { - callback.onNegativeResponse(); - gotResponse = true; - dismiss(); - } - - public void onPositiveButtonClicked() { - callback.onPositiveResponse(); - gotResponse = true; - dismiss(); - } - - @Override - public void onDestroy() { - super.onDestroy(); - binding = null; - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.kt b/app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.kt new file mode 100644 index 000000000..c5d82ed10 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/upload/SimilarImageDialogFragment.kt @@ -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 + } +}