#Region Project Attributes
#ApplicationLabel: B4A Example
#VersionCode: 1
#VersionName:
#MultiDex: true
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#AdditionalJar: androidx.constraintlayout-core:constraintlayout-core
#AdditionalJar: androidx.constraintlayout:constraintlayout
#AdditionalJar: com.google.android.material:material
#AdditionalJar: androidx.appcompat:appcompat
#AdditionalJar: androidx.appcompat:appcompat-resources
' #AdditionalJar: androidx.fragment:fragment
#AdditionalJar: kotlin-stdlib-1.6.10.jar
' #AdditionalJar: androidx.compose.ui:ui-viewbinding
' #AdditionalJar: androidx.fragment:fragment
' #AdditionalJar: androidx.collection:collection-ktx
#AdditionalJar: androidx.arch.core:core-runtime
#AdditionalJar: androidx.emoji2:emoji2
#AdditionalJar: androidx.emoji2:emoji2-views-helper
#AdditionalJar: androidx.emoji2:emoji2-views
#AdditionalJar: androidx.emoji2:emoji2-bundled
' #AdditionalJar: androidx.constraintlayout-solver:constraintlayout-solver
' #AdditionalJar: androidx.constraintlayout:constraintlayout-compose
'
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#Extends: androidx.appcompat.app.AppCompatActivity
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Private xui As XUI
Public mmpfcEngine As MpfcEngineWrapper
Public rp As RuntimePermissions
Private NativeMe As JavaObject
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'Private MapView1 As MapView
Private Panel1 As Panel
Private MapFragment As MapFragmentWrapper
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
NativeMe.InitializeContext
End If
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Activity.LoadLayout("Layout")
End Sub
Sub Activity_PermissionResult(Permission As String, Result As Boolean)
If Permission = rp.PERMISSION_ACCESS_FINE_LOCATION And Result = True Then
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim engine As JavaObject
engine.InitializeNewInstance("com.company.mapfactorwrapper.MpfcEngineWrapper",Null)
mmpfcEngine = engine
Dim path = rp.GetAllSafeDirsExternal("")(0) As String
mmpfcEngine.InitOSM(ctxt,path,mmpfcEngine.ENGLISH_US)
End If
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub onEngineInitStatusChanged_Fire(result As Int)
If result = mmpfcEngine.SUCCESS Then
Log("Eninge successfully initated")
Else
mmpfcEngine.ActivateDevice("<My API key>")
End If
End Sub
Sub onLocationPermissionNotGranted_Fire(permissionGranted As Boolean)
xui.MsgboxAsync("Hello world!", "B4X")
End Sub
Sub onActivationResult_Fire(activationResult As Boolean)
If activationResult = True Then
xui.MsgboxAsync("Activation successful", "Success")
Else
xui.MsgboxAsync("Failed activation ", "Failed")
End If
End Sub
Sub onMapReady_Fire(ready As Boolean)
Log("Map ready")
End Sub