From 2605a8d61cf34a6a2caae787f88fec4c22b8d5d7 Mon Sep 17 00:00:00 2001 From: Hasib Prince Date: Wed, 24 Apr 2024 17:47:20 +0600 Subject: [PATCH 1/3] fixed: scroll to middle of the homepage --- .../main/java/foundation/e/apps/ui/home/HomeFragment.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt index 1c111d5e4..8e0a31bec 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt @@ -19,6 +19,8 @@ package foundation.e.apps.ui.home import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.view.View import androidx.appcompat.app.AlertDialog import androidx.fragment.app.activityViewModels @@ -92,6 +94,11 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall } homeParentRVAdapter?.setData(it.data!!) + + // scrolling to top 1 second later to give time UI elements to be rendered + Handler(Looper.getMainLooper()).postDelayed({ + binding.parentRV.scrollToPosition(0) + }, 1000) } } -- GitLab From c3ce24e90a7bd6b28676927f0401e17447acc516 Mon Sep 17 00:00:00 2001 From: Hasib Prince Date: Wed, 24 Apr 2024 18:10:39 +0600 Subject: [PATCH 2/3] refactor: fix detekt --- app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt index 8e0a31bec..47932f975 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt @@ -70,6 +70,10 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall @Inject lateinit var pwaManager: PWAManager + companion object { + private const val DELAY_SCROLL = 1000L + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentHomeBinding.bind(view) @@ -98,7 +102,7 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall // scrolling to top 1 second later to give time UI elements to be rendered Handler(Looper.getMainLooper()).postDelayed({ binding.parentRV.scrollToPosition(0) - }, 1000) + }, DELAY_SCROLL) } } -- GitLab From 0c4775ee22a6d0ace1c205b7e22c47b164bb8c16 Mon Sep 17 00:00:00 2001 From: Hasib Prince Date: Mon, 29 Apr 2024 20:27:58 +0600 Subject: [PATCH 3/3] refactor: hanlder is replaced by coroutine --- .../java/foundation/e/apps/ui/home/HomeFragment.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt index 47932f975..e086de665 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt @@ -19,8 +19,6 @@ package foundation.e.apps.ui.home import android.os.Bundle -import android.os.Handler -import android.os.Looper import android.view.View import androidx.appcompat.app.AlertDialog import androidx.fragment.app.activityViewModels @@ -48,6 +46,7 @@ import foundation.e.apps.ui.application.subFrags.ApplicationDialogFragment import foundation.e.apps.ui.home.model.HomeChildRVAdapter import foundation.e.apps.ui.home.model.HomeParentRVAdapter import foundation.e.apps.ui.parentFragment.TimeoutFragment +import kotlinx.coroutines.delay import kotlinx.coroutines.launch import javax.inject.Inject @@ -71,7 +70,7 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall lateinit var pwaManager: PWAManager companion object { - private const val DELAY_SCROLL = 1000L + private const val SCROLL_DELAY_IN_MILLIS = 500L } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -99,10 +98,11 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstall homeParentRVAdapter?.setData(it.data!!) - // scrolling to top 1 second later to give time UI elements to be rendered - Handler(Looper.getMainLooper()).postDelayed({ + // scrolling to top 500 ms later to give time UI elements to be rendered + viewLifecycleOwner.lifecycleScope.launch { + delay(SCROLL_DELAY_IN_MILLIS) binding.parentRV.scrollToPosition(0) - }, DELAY_SCROLL) + } } } -- GitLab