feat: lil faster home screen? idk tbh

This commit is contained in:
aayush262
2024-06-27 00:23:31 +05:30
parent 46d16be835
commit f62bdf9360
4 changed files with 243 additions and 276 deletions

View File

@@ -50,6 +50,7 @@ import ani.dantotsu.statusBarHeight
import ani.dantotsu.util.Logger
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlin.math.max
@@ -457,53 +458,56 @@ class HomeFragment : Fragment() {
var running = false
val live = Refresh.activity.getOrPut(1) { MutableLiveData(true) }
live.observe(viewLifecycleOwner)
{
if (!running && it) {
live.observe(viewLifecycleOwner) { shouldRefresh ->
if (!running && shouldRefresh) {
running = true
scope.launch {
withContext(Dispatchers.IO) {
//Get userData First
Anilist.userid =
PrefManager.getNullableVal<String>(PrefName.AnilistUserId, null)
?.toIntOrNull()
// Get user data first
Anilist.userid = PrefManager.getNullableVal<String>(PrefName.AnilistUserId, null)?.toIntOrNull()
if (Anilist.userid == null) {
getUserId(requireContext()) {
load()
}
} else {
CoroutineScope(Dispatchers.IO).launch {
withContext(Dispatchers.Main) {
getUserId(requireContext()) {
load()
}
}
} else {
getUserId(requireContext()) {
load()
}
}
model.loaded = true
CoroutineScope(Dispatchers.IO).launch {
model.setListImages()
}
model.setListImages()
}
var empty = true
val homeLayoutShow: List<Boolean> =
PrefManager.getVal(PrefName.HomeLayout)
model.initHomePage()
model.initUserStatus()
(array.indices).forEach { i ->
var empty = true
val homeLayoutShow: List<Boolean> = PrefManager.getVal(PrefName.HomeLayout)
withContext(Dispatchers.Main) {
homeLayoutShow.indices.forEach { i ->
if (homeLayoutShow.elementAt(i)) {
empty = false
} else withContext(Dispatchers.Main) {
} else {
containers[i].visibility = View.GONE
}
}
model.empty.postValue(empty)
}
val initHomePage = async(Dispatchers.IO) { model.initHomePage() }
val initUserStatus = async(Dispatchers.IO) { model.initUserStatus() }
initHomePage.await()
initUserStatus.await()
withContext(Dispatchers.Main) {
model.empty.postValue(empty)
binding.homeHiddenItemsContainer.visibility = View.GONE
}
live.postValue(false)
_binding?.homeRefresh?.isRefreshing = false
running = false
}
binding.homeHiddenItemsContainer.visibility = View.GONE
}
}
}