@@ -21,7 +21,11 @@ import android.content.Intent
2121import android.net.Uri
2222import android.view.MenuItem
2323import android.view.View
24+ import android.view.ViewGroup
2425import androidx.coordinatorlayout.widget.CoordinatorLayout
26+ import androidx.core.view.ViewCompat
27+ import androidx.core.view.WindowInsetsCompat
28+ import androidx.core.view.isVisible
2529import androidx.recyclerview.widget.RecyclerView
2630import com.google.android.material.appbar.AppBarLayout
2731import com.instructure.canvasapi2.models.CanvasContext
@@ -47,7 +51,6 @@ import com.instructure.pandautils.utils.ParcelableArg
4751import com.instructure.pandautils.utils.ViewStyler
4852import com.instructure.pandautils.utils.a11yManager
4953import com.instructure.pandautils.utils.applyBottomSystemBarInsets
50- import com.instructure.pandautils.utils.applyTopSystemBarInsets
5154import com.instructure.pandautils.utils.color
5255import com.instructure.pandautils.utils.isSwitchAccessEnabled
5356import com.instructure.pandautils.utils.isTablet
@@ -200,7 +203,30 @@ class CourseBrowserFragment : BaseSyncFragment<
200203 }
201204
202205 appBarLayout.setBackgroundColor(presenter.canvasContext.color)
203- appBarLayout.applyTopSystemBarInsets()
206+
207+ // Handle top insets based on color overlay setting
208+ if (overlayToolbar.isVisible) {
209+ // Color overlay enabled: apply top margin to AppBarLayout
210+ ViewCompat .setOnApplyWindowInsetsListener(appBarLayout) { view, insets ->
211+ val systemBars = insets.getInsets(WindowInsetsCompat .Type .systemBars())
212+ val layoutParams = view.layoutParams as ? ViewGroup .MarginLayoutParams
213+ layoutParams?.topMargin = systemBars.top
214+ view.layoutParams = layoutParams
215+ insets
216+ }
217+ ViewCompat .requestApplyInsets(appBarLayout)
218+ } else {
219+ // Color overlay disabled: apply top margin to noOverlayToolbar
220+ ViewCompat .setOnApplyWindowInsetsListener(noOverlayToolbar) { view, insets ->
221+ val systemBars = insets.getInsets(WindowInsetsCompat .Type .systemBars())
222+ val layoutParams = view.layoutParams as ? ViewGroup .MarginLayoutParams
223+ layoutParams?.topMargin = systemBars.top
224+ view.layoutParams = layoutParams
225+ insets
226+ }
227+ ViewCompat .requestApplyInsets(noOverlayToolbar)
228+ }
229+
204230 toolbar.setupBackButton(this @CourseBrowserFragment)
205231 toolbar.setupMenu(R .menu.menu_course_browser, menuItemCallback)
206232 ViewStyler .colorToolbarIconsAndText(requireActivity(), toolbar, requireContext().getColor(R .color.textLightest))
0 commit comments