Sub Process_Globals
Public ActionBarHomeClicked As Boolean
Public TitleHeight As Int
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
Dim p As Phone
If p.SdkVersion >= 28 Then
Dim ctxt As JavaObject
ctxt.InitializeContext
ctxt.RunMethodJO("getWindow", Null).RunMethodJO("getAttributes", Null).SetField("layoutInDisplayCutoutMode", 1)
End If
Dim NavBarHeight As Int = GetNavBarHeight(Activity)
Dim ScreenHeight As Int = GetRealSize.Height
TitleHeight = ScreenHeight - 100%y - NavBarHeight
Log("TitleHeight: " & TitleHeight)
Activity_WindowFocusChanged(True)
Dim lv As LayoutValues = GetRealSize
Dim jo As JavaObject = Activity
jo.RunMethod("setBottom", Array(lv.Height))
jo.RunMethod("setRight", Array(lv.Width))
Activity.Height = lv.Height
Activity.Width = lv.Width
Dim pm As B4XPagesManager
pm.Initialize(Activity)
End Sub
Sub GetRealSize As LayoutValues
Dim lv As LayoutValues
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim WindowManager As JavaObject = ctxt.RunMethodJO("getSystemService", Array("window"))
Dim display As JavaObject = WindowManager.RunMethod("getDefaultDisplay", Null)
Dim point As JavaObject
point.InitializeNewInstance("android.graphics.Point", Null)
display.RunMethod("getRealSize", Array(point))
lv.Width = point.GetField("x")
lv.Height = point.GetField("y")
lv.Scale = 100dip / 100
Return lv
End Sub
Sub GetNavBarHeight(v As View) As Int
Dim jo As JavaObject = v
Dim insets As JavaObject = jo.RunMethod("getRootWindowInsets", Null)
If insets.IsInitialized = False Then Return 0
Dim WindowInsetsType As JavaObject
WindowInsetsType.InitializeStatic("android.view.WindowInsets.Type")
Dim navbar As JavaObject = insets.RunMethod("getInsets", Array(WindowInsetsType.RunMethod("navigationBars", Null)))
Return navbar.GetField("bottom")
End Sub