Skip to content

Commit 93cb08d

Browse files
refactor(VoicesAdapter): fully migrate to ListAdapter removing custom list wrappers
- Removed legacy `updateList()`, `submitListSafely()`, `addItem()`, and `refreshCurrentItems()` methods from `VoicesAdapter.kt`. - Updated caller usages in `ReplyActivity`, `VoicesFragment`, and `TeamsVoicesFragment` to directly call `ListAdapter.submitList()`. - Updated `BaseVoicesFragment` to correctly utilize `notifyDataSetChanged()` for `refreshCurrentItems()` calls when reacting to Realm updates without list reallocation. This change cleans up redundant list management following the transition of `VoicesAdapter` to extend Android's standard `ListAdapter`. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
1 parent e6c54f7 commit 93cb08d

5 files changed

Lines changed: 8 additions & 31 deletions

File tree

app/src/main/java/org/ole/planet/myplanet/base/BaseVoicesFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ abstract class BaseVoicesFragment : BaseContainerFragment(), OnNewsItemClickList
6969
if (result.resultCode == Activity.RESULT_OK) {
7070
val newsId = result.data?.getStringExtra("newsId")
7171
newsId.let { adapterNews?.updateReplyBadge(it) }
72-
adapterNews?.refreshCurrentItems()
72+
adapterNews?.notifyDataSetChanged()
7373
}
7474
}
7575
}
7676

7777
override fun onDataChanged() {
78-
adapterNews?.refreshCurrentItems()
78+
adapterNews?.notifyDataSetChanged()
7979
}
8080

8181
override fun onReplyPosted(newsId: String?) {

app/src/main/java/org/ole/planet/myplanet/ui/teams/voices/TeamsVoicesFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,15 +240,15 @@ class TeamsVoicesFragment : BaseTeamFragment() {
240240
adapterNews?.sharedPrefManager = sharedPrefManager
241241
adapterNews?.setListener(this)
242242
if (!isMemberFlow.value) adapterNews?.setNonTeamMember(true)
243-
realmNewsList?.let { adapterNews?.updateList(it) }
243+
realmNewsList?.let { adapterNews?.submitList(it) }
244244
binding.rvDiscussion.adapter = adapterNews
245245
adapterNews?.let {
246246
showNoData(binding.tvNodata, it.itemCount, "discussions")
247247
}
248248
} else {
249249
(existingAdapter as? VoicesAdapter)?.let { adapter ->
250250
realmNewsList?.let {
251-
adapter.updateList(it)
251+
adapter.submitList(it)
252252
showNoData(binding.tvNodata, adapter.itemCount, "discussions")
253253
}
254254
}

app/src/main/java/org/ole/planet/myplanet/ui/voices/ReplyActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ open class ReplyActivity : AppCompatActivity(), OnNewsItemClickListener {
165165
} else {
166166
newsAdapter.updateParentNews(news)
167167
}
168-
newsAdapter.updateList(list)
168+
newsAdapter.submitList(list)
169169
}
170170
}
171171

app/src/main/java/org/ole/planet/myplanet/ui/voices/VoicesAdapter.kt

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -136,17 +136,6 @@ class VoicesAdapter(
136136
this.imageList = imageList
137137
}
138138

139-
fun addItem(news: RealmNews?) {
140-
val currentList = currentList.toMutableList()
141-
currentList.add(0, news)
142-
submitListSafely(currentList) {
143-
recyclerView?.post {
144-
recyclerView?.scrollToPosition(0)
145-
recyclerView?.smoothScrollToPosition(0)
146-
}
147-
}
148-
}
149-
150139
fun setFromLogin(fromLogin: Boolean) {
151140
this.fromLogin = fromLogin
152141
}
@@ -327,7 +316,7 @@ class VoicesAdapter(
327316
newsToDelete?.id?.let { id ->
328317
deletePostFn(id) {
329318
val newList = snapshotList.toMutableList().apply { removeAt(adjustedPos) }
330-
submitListSafely(newList)
319+
submitList(newList)
331320
parentNews?.id?.let { pid ->
332321
val current = replyCountCache[pid]
333322
replyCountCache[pid] = if (current != null) maxOf(0, current - 1) else 0
@@ -426,25 +415,13 @@ class VoicesAdapter(
426415
return null
427416
}
428417

429-
fun updateList(newList: List<RealmNews?>) {
430-
submitListSafely(newList)
431-
}
432-
433418
fun updateParentNews(news: RealmNews?) {
434419
val contentChanged = parentNews?.message != news?.message ||
435420
parentNews?.isEdited != news?.isEdited
436421
parentNews = news
437422
if (contentChanged) notifyItemChanged(0)
438423
}
439424

440-
fun refreshCurrentItems() {
441-
submitListSafely(currentList.toList())
442-
}
443-
444-
private fun submitListSafely(list: List<RealmNews?>, commitCallback: Runnable? = null) {
445-
submitList(list, commitCallback)
446-
}
447-
448425
private fun setMemberClickListeners(holder: VoicesViewHolder, userModel: RealmUser?, currentLeader: RealmUser?) {
449426
if (!fromLogin) {
450427
holder.binding.imgUser.setOnClickListener {

app/src/main/java/org/ole/planet/myplanet/ui/voices/VoicesFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,10 +267,10 @@ class VoicesFragment : BaseVoicesFragment() {
267267
adapterNews?.setFromLogin(requireArguments().getBoolean("fromLogin"))
268268
adapterNews?.setListener(this)
269269
adapterNews?.registerAdapterDataObserver(observer)
270-
adapterNews?.updateList(sortedList)
270+
adapterNews?.submitList(sortedList)
271271
binding.rvNews.adapter = adapterNews
272272
} else {
273-
(binding.rvNews.adapter as? VoicesAdapter)?.updateList(list)
273+
(binding.rvNews.adapter as? VoicesAdapter)?.submitList(list)
274274
}
275275
adapterNews?.let { showNoData(binding.tvMessage, it.itemCount, currentEmptyStateSource) }
276276
}

0 commit comments

Comments
 (0)