Skip to content

Commit e84477a

Browse files
Teacher extra finding fix: Course Browser page toolbar overlaps with android top status bar issue when color overlay disabled.
1 parent 8dac51a commit e84477a

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

apps/teacher/src/main/java/com/instructure/teacher/fragments/CourseBrowserFragment.kt

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ import android.content.Intent
2121
import android.net.Uri
2222
import android.view.MenuItem
2323
import android.view.View
24+
import android.view.ViewGroup
2425
import androidx.coordinatorlayout.widget.CoordinatorLayout
26+
import androidx.core.view.ViewCompat
27+
import androidx.core.view.WindowInsetsCompat
28+
import androidx.core.view.isVisible
2529
import androidx.recyclerview.widget.RecyclerView
2630
import com.google.android.material.appbar.AppBarLayout
2731
import com.instructure.canvasapi2.models.CanvasContext
@@ -47,7 +51,6 @@ import com.instructure.pandautils.utils.ParcelableArg
4751
import com.instructure.pandautils.utils.ViewStyler
4852
import com.instructure.pandautils.utils.a11yManager
4953
import com.instructure.pandautils.utils.applyBottomSystemBarInsets
50-
import com.instructure.pandautils.utils.applyTopSystemBarInsets
5154
import com.instructure.pandautils.utils.color
5255
import com.instructure.pandautils.utils.isSwitchAccessEnabled
5356
import 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

Comments
 (0)