From eb5c7ba351586023f6709ee78996058bca1eca3a Mon Sep 17 00:00:00 2001 From: deeppp15 Date: Mon, 23 Dec 2024 17:50:08 -0500 Subject: [PATCH 1/5] added resource removal functinoality --- .../team/teamResource/AdapterTeamResource.kt | 52 ++++++++++++++----- .../team/teamResource/TeamResourceFragment.kt | 10 +++- 2 files changed, 48 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt index 3a04588936..51916760c8 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt @@ -11,10 +11,15 @@ import org.ole.planet.myplanet.callback.OnHomeItemClickListener import org.ole.planet.myplanet.databinding.RowTeamResourceBinding import org.ole.planet.myplanet.model.RealmMyLibrary import org.ole.planet.myplanet.model.RealmMyTeam.Companion.getTeamCreator -import org.ole.planet.myplanet.ui.team.teamResource.AdapterTeamResource.ViewHolderTeamResource -class AdapterTeamResource(private val context: Context, private val list: List, mRealm: Realm, teamId: String?, private val settings: SharedPreferences) : RecyclerView.Adapter() { - private lateinit var rowTeamResourceBinding: RowTeamResourceBinding +class AdapterTeamResource( + private val context: Context, + private val list: MutableList, + private val mRealm: Realm, + teamId: String?, + private val settings: SharedPreferences +) : RecyclerView.Adapter() { + private var listener: OnHomeItemClickListener? = null private val teamCreator: String = getTeamCreator(teamId, mRealm) @@ -25,19 +30,28 @@ class AdapterTeamResource(private val context: Context, private val list: List= list.size) return + + mRealm.executeTransaction { realm -> + val itemToDelete = realm.where(RealmMyLibrary::class.java) + .equalTo("id", resource.id) + .findFirst() + itemToDelete?.deleteFromRealm() + } + + list.removeAt(position) + notifyItemRemoved(position) + } + + class ViewHolderTeamResource(val binding: RowTeamResourceBinding) : RecyclerView.ViewHolder(binding.root) } diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/TeamResourceFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/TeamResourceFragment.kt index 1526878509..d27618e33a 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/TeamResourceFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/TeamResourceFragment.kt @@ -47,8 +47,14 @@ class TeamResourceFragment : BaseTeamFragment(), TeamPageListener { } private fun showLibraryList() { - val libraries: List = mRealm.where(RealmMyLibrary::class.java).`in`("id", getResourceIds(teamId, mRealm).toTypedArray()).findAll() - adapterLibrary = settings?.let { AdapterTeamResource(requireActivity(), libraries, mRealm, teamId, it) }!! + val libraries: MutableList = mRealm.where(RealmMyLibrary::class.java) + .`in`("id", getResourceIds(teamId, mRealm).toTypedArray()) + .findAll() + .toMutableList() + + adapterLibrary = settings?.let { + AdapterTeamResource(requireActivity(), libraries, mRealm, teamId, it) + }!! fragmentTeamResourceBinding.rvResource.layoutManager = GridLayoutManager(activity, 3) fragmentTeamResourceBinding.rvResource.adapter = adapterLibrary showNoData(fragmentTeamResourceBinding.tvNodata, adapterLibrary.itemCount, "teamResources") From 4e89fccff97fc178679a6e12efa2bfd6ad3f2714 Mon Sep 17 00:00:00 2001 From: deeppp15 Date: Fri, 10 Jan 2025 13:44:11 -0500 Subject: [PATCH 2/5] changed query --- .../myplanet/ui/team/teamResource/AdapterTeamResource.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt index 51916760c8..9a2327036e 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt @@ -10,6 +10,7 @@ import io.realm.Realm import org.ole.planet.myplanet.callback.OnHomeItemClickListener import org.ole.planet.myplanet.databinding.RowTeamResourceBinding import org.ole.planet.myplanet.model.RealmMyLibrary +import org.ole.planet.myplanet.model.RealmMyTeam import org.ole.planet.myplanet.model.RealmMyTeam.Companion.getTeamCreator class AdapterTeamResource( @@ -63,10 +64,12 @@ class AdapterTeamResource( if (position < 0 || position >= list.size) return mRealm.executeTransaction { realm -> - val itemToDelete = realm.where(RealmMyLibrary::class.java) - .equalTo("id", resource.id) + val itemToDelete = realm.where(RealmMyTeam::class.java) + .equalTo("resourceId", resource.id) .findFirst() - itemToDelete?.deleteFromRealm() + itemToDelete?.resourceId="" + itemToDelete?.updated= true + } list.removeAt(position) From aca730781128a886fc30f6d0a128ba0787993b0d Mon Sep 17 00:00:00 2001 From: Deep Vora Date: Mon, 6 Jan 2025 02:47:25 -0500 Subject: [PATCH 3/5] renamed variables --- .../ui/team/teamResource/AdapterTeamResource.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt index 9a2327036e..7605b8939b 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt @@ -31,25 +31,25 @@ class AdapterTeamResource( } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolderTeamResource { - val binding = RowTeamResourceBinding.inflate(LayoutInflater.from(context), parent, false) - return ViewHolderTeamResource(binding) + val rowTeamResourceBinding = RowTeamResourceBinding.inflate(LayoutInflater.from(context), parent, false) + return ViewHolderTeamResource(rowTeamResourceBinding) } override fun onBindViewHolder(holder: ViewHolderTeamResource, position: Int) { val resource = list[position] - holder.binding.tvTitle.text = resource.title - holder.binding.tvDescription.text = resource.description + holder.rowTeamResourceBinding.tvTitle.text = resource.title + holder.rowTeamResourceBinding.tvDescription.text = resource.description holder.itemView.setOnClickListener { listener?.openLibraryDetailFragment(resource) } - holder.binding.ivRemove.setOnClickListener { + holder.rowTeamResourceBinding.ivRemove.setOnClickListener { removeResource(resource, position) } - holder.binding.ivRemove.visibility = if (settings.getString("userId", "--") == teamCreator) { + holder.rowTeamResourceBinding.ivRemove.visibility = if (settings.getString("userId", "--") == teamCreator) { View.VISIBLE } else { View.GONE @@ -76,5 +76,5 @@ class AdapterTeamResource( notifyItemRemoved(position) } - class ViewHolderTeamResource(val binding: RowTeamResourceBinding) : RecyclerView.ViewHolder(binding.root) + class ViewHolderTeamResource(val rowTeamResourceBinding: RowTeamResourceBinding) : RecyclerView.ViewHolder(rowTeamResourceBinding.root) } From c4cfcd6c22c158e85d7a75f8c5ee1970f4d18dc1 Mon Sep 17 00:00:00 2001 From: Deep Vora Date: Tue, 7 Jan 2025 18:07:53 -0500 Subject: [PATCH 4/5] improved matching --- .../myplanet/ui/team/teamResource/AdapterTeamResource.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt index 7605b8939b..eec789a6bb 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt @@ -48,11 +48,9 @@ class AdapterTeamResource( holder.rowTeamResourceBinding.ivRemove.setOnClickListener { removeResource(resource, position) } - - holder.rowTeamResourceBinding.ivRemove.visibility = if (settings.getString("userId", "--") == teamCreator) { - View.VISIBLE - } else { - View.GONE + val isLeader =settings.getString("userId", "--").equals(teamCreator, ignoreCase = true) + if (!isLeader) { + holder.rowTeamResourceBinding.ivRemove.visibility = View.GONE } } From 6d669060f973ae29fc79024686d81b1373990d8b Mon Sep 17 00:00:00 2001 From: deeppp15 Date: Fri, 10 Jan 2025 13:50:08 -0500 Subject: [PATCH 5/5] checks for record not present --- .../myplanet/ui/team/teamResource/AdapterTeamResource.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt index eec789a6bb..b663aee066 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/AdapterTeamResource.kt @@ -65,9 +65,11 @@ class AdapterTeamResource( val itemToDelete = realm.where(RealmMyTeam::class.java) .equalTo("resourceId", resource.id) .findFirst() - itemToDelete?.resourceId="" - itemToDelete?.updated= true + if (itemToDelete != null) { + itemToDelete.resourceId = "" + itemToDelete.updated = true + } } list.removeAt(position)