Skip to content

Commit a090357

Browse files
committed
smoother course and resources display
1 parent 10963d9 commit a090357

File tree

3 files changed

+25
-34
lines changed

3 files changed

+25
-34
lines changed

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,14 @@ abstract class BaseRecyclerFragment<LI> : BaseRecyclerParentFragment<Any?>(), On
164164

165165
isAddInProgress = false
166166
setJoinInProgress(false)
167-
recyclerView.adapter = getAdapter()
168-
showNoData(tvMessage, getAdapter().itemCount, "")
167+
168+
if (!mRealm.isClosed) {
169+
mRealm.refresh()
170+
}
171+
172+
val newAdapter = getAdapter()
173+
recyclerView.adapter = newAdapter
174+
showNoData(tvMessage, newAdapter.itemCount, "")
169175

170176
result.exceptionOrNull()?.let { throw it }
171177

app/src/main/java/org/ole/planet/myplanet/ui/courses/CoursesFragment.kt

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,7 @@ import androidx.fragment.app.Fragment
2020
import androidx.lifecycle.lifecycleScope
2121
import androidx.recyclerview.widget.RecyclerView
2222
import com.google.android.material.snackbar.Snackbar
23-
import com.google.gson.JsonObject
2423
import dagger.hilt.android.AndroidEntryPoint
25-
import java.util.Calendar
26-
import java.util.UUID
27-
import javax.inject.Inject
2824
import kotlinx.coroutines.Dispatchers
2925
import kotlinx.coroutines.Job
3026
import kotlinx.coroutines.delay
@@ -41,9 +37,7 @@ import org.ole.planet.myplanet.callback.TagClickListener
4137
import org.ole.planet.myplanet.model.RealmCourseProgress.Companion.getCourseProgress
4238
import org.ole.planet.myplanet.model.RealmMyCourse
4339
import org.ole.planet.myplanet.model.RealmRating.Companion.getRatings
44-
import org.ole.planet.myplanet.model.RealmSearchActivity
4540
import org.ole.planet.myplanet.model.RealmTag
46-
import org.ole.planet.myplanet.model.RealmTag.Companion.getTagsArray
4741
import org.ole.planet.myplanet.model.RealmUserModel
4842
import org.ole.planet.myplanet.repository.TagsRepository
4943
import org.ole.planet.myplanet.service.UserProfileDbHandler
@@ -53,10 +47,10 @@ import org.ole.planet.myplanet.ui.resources.CollectionsFragment
5347
import org.ole.planet.myplanet.ui.sync.RealtimeSyncHelper
5448
import org.ole.planet.myplanet.ui.sync.RealtimeSyncMixin
5549
import org.ole.planet.myplanet.utilities.DialogUtils
56-
import org.ole.planet.myplanet.utilities.JsonUtils
5750
import org.ole.planet.myplanet.utilities.KeyboardUtils.setupUI
5851
import org.ole.planet.myplanet.utilities.NavigationHelper
5952
import org.ole.planet.myplanet.utilities.SharedPrefManager
53+
import javax.inject.Inject
6054

6155
@AndroidEntryPoint
6256
class CoursesFragment : BaseRecyclerFragment<RealmMyCourse?>(), OnCourseItemSelected, TagClickListener, RealtimeSyncMixin {
@@ -222,14 +216,19 @@ class CoursesFragment : BaseRecyclerFragment<RealmMyCourse?>(), OnCourseItemSele
222216
}
223217

224218
override fun getAdapter(): RecyclerView.Adapter<*> {
225-
adapterCourses = CoursesAdapter(
226-
requireActivity(),
227-
emptyList(),
228-
HashMap<String?, JsonObject>(),
229-
userModel,
230-
tagsRepository
231-
)
232-
adapterCourses.setProgressMap(HashMap<String?, JsonObject>())
219+
val allCourses: List<RealmMyCourse?> = getList(RealmMyCourse::class.java).filterIsInstance<RealmMyCourse?>().filter { !it?.courseTitle.isNullOrBlank() }
220+
221+
val courseList = if (isMyCourseLib) {
222+
allCourses.filter { it?.isMyCourse == true }
223+
} else {
224+
allCourses.sortedWith(compareBy({ it?.isMyCourse }, { it?.courseTitle }))
225+
}
226+
227+
val map = getRatings(mRealm, "course", model?.id)
228+
val progressMap = getCourseProgress(mRealm, model?.id)
229+
230+
adapterCourses = CoursesAdapter(requireActivity(), courseList, map, userModel, tagsRepository)
231+
adapterCourses.setProgressMap(progressMap)
233232
adapterCourses.setListener(this@CoursesFragment)
234233
adapterCourses.setRatingChangeListener(this@CoursesFragment)
235234
return adapterCourses
@@ -377,10 +376,6 @@ class CoursesFragment : BaseRecyclerFragment<RealmMyCourse?>(), OnCourseItemSele
377376
if ((selectedItems?.size ?: 0) > 0) {
378377
confirmation = createAlertDialog()
379378
confirmation.show()
380-
addToMyList()
381-
selectedItems?.clear()
382-
tvAddToLib.isEnabled = false
383-
checkList()
384379
}
385380
}
386381
etSearch = requireView().findViewById(R.id.et_search)
@@ -545,12 +540,9 @@ class CoursesFragment : BaseRecyclerFragment<RealmMyCourse?>(), OnCourseItemSele
545540
}
546541
.setNegativeButton(R.string.ok) { dialog: DialogInterface, _: Int ->
547542
dialog.cancel()
548-
clearAllSelections()
549-
loadDataAsync()
550543
}
551544
.setOnDismissListener {
552-
clearAllSelections()
553-
loadDataAsync()
545+
addToMyList()
554546
}
555547

556548
return builder.create()

app/src/main/java/org/ole/planet/myplanet/ui/resources/ResourcesFragment.kt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -265,10 +265,6 @@ class ResourcesFragment : BaseRecyclerFragment<RealmMyLibrary?>(), OnLibraryItem
265265
if ((selectedItems?.size ?: 0) > 0) {
266266
confirmation = createAlertDialog()
267267
confirmation?.show()
268-
addToMyList()
269-
selectedItems?.clear()
270-
tvAddToLib.isEnabled = false
271-
checkList()
272268
}
273269
}
274270
}
@@ -402,12 +398,9 @@ class ResourcesFragment : BaseRecyclerFragment<RealmMyLibrary?>(), OnLibraryItem
402398
}
403399
builder.setNegativeButton(getString(R.string.ok)) { dialog: DialogInterface, _: Int ->
404400
dialog.cancel()
405-
val newFragment = ResourcesFragment()
406-
recreateFragment(newFragment)
407401
}
408-
builder.setOnDismissListener{
409-
val newFragment = ResourcesFragment()
410-
recreateFragment(newFragment)
402+
builder.setOnDismissListener {
403+
addToMyList()
411404
}
412405
return builder.create()
413406
}

0 commit comments

Comments
 (0)