From 30808d0bee817b60d154be7d4c4b4e7f7fcd1119 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Sat, 12 Jul 2025 07:55:19 -0500 Subject: [PATCH] Convert BookmarkItemsFragment to kotlin --- .../items/BookmarkItemsFragment.java | 81 ------------------- .../bookmarks/items/BookmarkItemsFragment.kt | 62 ++++++++++++++ .../items/BookmarkItemsFragmentUnitTest.kt | 2 +- 3 files changed, 63 insertions(+), 82 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.java create mode 100644 app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.kt diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.java deleted file mode 100644 index 75a0fa7a4..000000000 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.java +++ /dev/null @@ -1,81 +0,0 @@ -package fr.free.nrw.commons.bookmarks.items; - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ProgressBar; -import android.widget.RelativeLayout; -import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; -import dagger.android.support.DaggerFragment; -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.databinding.FragmentBookmarksItemsBinding; -import fr.free.nrw.commons.upload.structure.depictions.DepictedItem; -import java.util.List; -import javax.inject.Inject; -import org.jetbrains.annotations.NotNull; - -/** - * Tab fragment to show list of bookmarked Wikidata Items - */ -public class BookmarkItemsFragment extends DaggerFragment { - - private FragmentBookmarksItemsBinding binding; - - @Inject - BookmarkItemsController controller; - - public static BookmarkItemsFragment newInstance() { - return new BookmarkItemsFragment(); - } - - @Override - public View onCreateView( - @NonNull final LayoutInflater inflater, - final ViewGroup container, - final Bundle savedInstanceState - ) { - binding = FragmentBookmarksItemsBinding.inflate(inflater, container, false); - return binding.getRoot(); - } - - @Override - public void onViewCreated(final @NotNull View view, @Nullable final Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - initList(requireContext()); - } - - @Override - public void onResume() { - super.onResume(); - initList(requireContext()); - } - - /** - * Get list of DepictedItem and sets to the adapter - * @param context context - */ - private void initList(final Context context) { - final List depictItems = controller.loadFavoritesItems(); - final BookmarkItemsAdapter adapter = new BookmarkItemsAdapter(depictItems, context); - binding.listView.setAdapter(adapter); - binding.loadingImagesProgressBar.setVisibility(View.GONE); - if (depictItems.isEmpty()) { - binding.statusMessage.setText(R.string.bookmark_empty); - binding.statusMessage.setVisibility(View.VISIBLE); - } else { - binding.statusMessage.setVisibility(View.GONE); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - binding = null; - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.kt b/app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.kt new file mode 100644 index 000000000..aa9dcccc0 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragment.kt @@ -0,0 +1,62 @@ +package fr.free.nrw.commons.bookmarks.items + +import android.content.Context +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import dagger.android.support.DaggerFragment +import fr.free.nrw.commons.R +import fr.free.nrw.commons.databinding.FragmentBookmarksItemsBinding +import javax.inject.Inject + +/** + * Tab fragment to show list of bookmarked Wikidata Items + */ +class BookmarkItemsFragment : DaggerFragment() { + private var binding: FragmentBookmarksItemsBinding? = null + + @JvmField + @Inject + var controller: BookmarkItemsController? = null + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentBookmarksItemsBinding.inflate(inflater, container, false) + return binding!!.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initList(requireContext()) + } + + override fun onResume() { + super.onResume() + initList(requireContext()) + } + + /** + * Get list of DepictedItem and sets to the adapter + * @param context context + */ + private fun initList(context: Context) { + val depictItems = controller!!.loadFavoritesItems() + binding!!.listView.adapter = BookmarkItemsAdapter(depictItems, context) + binding!!.loadingImagesProgressBar.visibility = View.GONE + if (depictItems.isEmpty()) { + binding!!.statusMessage.setText(R.string.bookmark_empty) + binding!!.statusMessage.visibility = View.VISIBLE + } else { + binding!!.statusMessage.visibility = View.GONE + } + } + + override fun onDestroy() { + super.onDestroy() + binding = null + } +} diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt index 12292af91..086fd703b 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt @@ -88,7 +88,7 @@ class BookmarkItemsFragmentUnitTest { context = ApplicationProvider.getApplicationContext() OkHttpConnectionFactory.CLIENT = createTestClient() val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get() - fragment = BookmarkItemsFragment.newInstance() + fragment = BookmarkItemsFragment() val fragmentManager: FragmentManager = activity.supportFragmentManager val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction() fragmentTransaction.add(fragment, null)