From 037ed7658900c05c3e3f152f0c0009fc1d6df870 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 11 Mar 2025 01:49:56 -0500 Subject: [PATCH] Fix crash when applying insets --- .../com/todoroo/astrid/activity/TaskListFragment.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt index e5d032ce8..5d883878b 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -195,6 +195,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL lateinit var themeColor: ThemeColor private var onClickMenu: () -> Unit = {} private lateinit var binding: FragmentTaskListBinding + private var windowInsets: PaddingValues? = null private val listPickerLauncher = registerForListPickerResult { val selected = taskAdapter.getSelected() lifecycleScope.launch { @@ -280,6 +281,14 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL @SuppressLint("PrivateResource") fun applyInsets(windowInsets: PaddingValues) { + if (this::binding.isInitialized) { + applyInsetsInternal(windowInsets) + } else { + this.windowInsets = windowInsets + } + } + + private fun applyInsetsInternal(windowInsets: PaddingValues) { val density = resources.displayMetrics.density val topInset = (windowInsets.calculateTopPadding().value * density).toInt() val bottomInset = (windowInsets.calculateBottomPadding().value * density).toInt() @@ -301,7 +310,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { binding = FragmentTaskListBinding.inflate(inflater, container, false) - + windowInsets?.let { applyInsetsInternal(it) } filter = getFilter() val swipeRefreshLayout: SwipeRefreshLayout val emptyRefreshLayout: SwipeRefreshLayout