diff --git a/Rocklogger.b4a b/Rocklogger.b4a
deleted file mode 100644
index 4bac2b7..0000000
--- a/Rocklogger.b4a
+++ /dev/null
@@ -1,447 +0,0 @@
-Build1=Default,b4a.rocklogster
-File1=mapfrag.bal
-File2=marker1.png
-File3=marker2.png
-File4=overlay (1).png
-File5=overlay.png
-File6=overlaywhite.png
-File7=Rockloggervisual.bal
-FileGroup1=Default Group
-FileGroup2=Default Group
-FileGroup3=Default Group
-FileGroup4=Default Group
-FileGroup5=Default Group
-FileGroup6=Default Group
-FileGroup7=Default Group
-Group=Default Group
-Library1=core
-Library2=gps
-Library3=runtimepermissions
-Library4=randomaccessfile
-Library5=googlemaps
-Library6=googlemapsextras
-ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.DarkTheme)~\n~~\n~AddApplicationText(~\n~~\n~)~\n~~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~~\n~~\n~'End of default text.~\n~'broken icon manifest~\n~SetApplicationAttribute(android:icon, "@mipmap/ic_launcher")~\n~CreateResource(mipmap-anydpi-v26, ic_launcher.xml,~\n~~\n~ ~\n~ ~\n~~\n~)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~~\n~
-Module1=Mapmod
-Module2=Starter
-NumberOfFiles=7
-NumberOfLibraries=6
-NumberOfModules=2
-Version=9.9
-@EndOfDesignText@
-#Region Module Attributes
- #FullScreen: False
- #IncludeTitle: True
- #ApplicationLabel: RockLogster
- #VersionCode: 1
- #VersionName:
- #SupportedOrientations: unspecified
-#End Region
-#BridgeLogger: true
-Sub Process_Globals
- Public updateclick As Boolean
- Public RockList As List
- Public WeedList As List
- Public PointList As List
- Dim headerlist As List
- Public locationstringlist As List
- Public headerposition As Map
-
-End Sub
-
-'Correct the log syntax
-'add menu item to clear log
-'add comment to last log
-'highlight last log
-'more buttons
-
-Sub Globals
-
-
- Dim locationstrings() As String
- Dim headerstringget As Matcher
-
- Type LoggedEntry (Date As String, Lat As Double, Lot As Double, obstacle As String, comment As String)
- Private lblLon As LoggedEntry
- Public lblpnlrock As Label
- Dim lblSpeed As Label
- Dim lblSatellites As Label
- Private btnRock As Button
- Private btnWeed As Button
- Private editxt As EditText
- Private lblSatIndicator As Label
- Private STime As Double
- Private SLong As String
- Private SLat As String
- Private BtnDownTime As Double
- Private BtnUpTime As Double
- Public FLong As String
- Public FLat As String
- Public FTime As Double
-
- Public FileStringBuilder As StringBuilder
- Public EstimatorStringBuilder As StringBuilder
- Public FileString As String
- Private FileList As List
- Public DelayedSat As Boolean
- Public lbl2secwarn As Label
- Public EstimatorString As String
- Private pnlrock As Panel
- Private lblpnlpoint As Label
- Private lblpnlweed As Label
- Private rp As RuntimePermissions
- Dim cust2 As LoggedEntry
- Dim raf2 As B4XSerializator
- Dim cust2list As List
- Private printbut As Button
- Private savebut As Button
-
- Private ButDownTime As Long
- Private ButUpTime As Long
- Private LocDown As Location
- Private LocUp As Location
- Public ELong As Double
- Public ELat As Double
-
-
-
- Public paneldowncomplete As Boolean
-
- Private butviewmap As Button
- Private lblpnlcust As Label
-End Sub
-
-Sub Activity_Create(FirstTime As Boolean)
- Activity.LoadLayout("Rockloggervisual")
- Activity.AddMenuItem("Clear Log", "Clearlog")
- FileStringBuilder.Initialize
- EstimatorStringBuilder.Initialize
- FileList.Initialize
- RockList.Initialize
- WeedList.Initialize
- PointList.Initialize
-
- 'cust2.Initialize
- 'cust2list.Initialize
- rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
- rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE)
- If File.Exists(rp.GetSafeDirdefaultExternal(""), "Editxt.txt") Then
- editxt.text = File.Readstring(rp.GetSafeDirDefaultExternal(""), "editxt.txt")
-' End If
-' If File.Exists(rp.GetSafeDirdefaultExternal(""), "Weedlist.txt") Then
-' WeedList = File.ReadList(rp.GetSafeDirDefaultExternal(""), "Weedlist.txt")
-' End If
-' If File.Exists(rp.GetSafeDirdefaultExternal(""), "Pointlist.txt") Then
-' PointList = File.ReadList(rp.GetSafeDirDefaultExternal(""), "Pointlist.txt")
- End If
- convert_texttolists
-End Sub
-
-Sub Print_rocks
-
- Private sb As StringBuilder
- sb.Initialize
- sb.append(DateTime.Date(DateTime.Now))'.Append(CRLF)
-
- If headerlist.Size >0 Then
-' If updateclick = False Then
- For i = 0 To headerlist.Size - 1
- sb.Append(CRLF).Append(headerlist.get(i))'.Append(CRLF)
- sb.Append(CRLF).Append(locationstringlist.get(i+1))'.Append(CRLF)
- 'Log(sb.ToString)
- Next
-' Else
-' For i = 0 To headerlist.Size - 1
-' sb.Append(headerlist.get(i))
-' sb.Append(locationstringlist.get(i+1))'.Append(CRLF)
-' 'Log(sb.ToString)
-' Log("trueb")
-' Next
-' End If
- End If
- updateclick = False 'flag
- editxt.Text = (sb.ToString)
-End Sub
-
-Sub convert_texttolists
-
- headerposition.Initialize
- headerlist.Initialize
- headerstringget = Regex.matcher2("^\D+$",Regex.MULTILINE, editxt.text)'use this to break loaded textedit file into strings or when textedit text is changed
- Do While headerstringget.Find = True
- headerlist.Add(headerstringget.Match)
- headerposition.Put(headerstringget.Match,headerlist.Size)
-
- Log($"headerstringsize${headerlist.size}"$)
- Loop
- For i = 0 To headerlist.Size-1
- Log(headerlist.Get(i))
- Next
- locationstringlist.Initialize
-
- locationstrings = Regex.Split2("\n^\D+$\n",Regex.MULTILINE, editxt.text)'/n to split around the newline, and not include it in the string
- For i=0 To locationstrings.Length - 1
- locationstringlist.Add(locationstrings(i))
- Next
-
- Log($"Splitted Size: ${locationstrings.Length} "$)
-' For i= 0 To teststring.Length-1
-' Log($"Val #${i}=${teststring(i)}"$)
-' Next
-
-' For Each k As String In headerposition.Keys
-' Log($"k${k}"$)
-' Log($"Positionk${headerposition.Get(k)}"$)
-' Next
-
-' Private sb As StringBuilder
-' sb.Initialize
-' sb.append(DateTime.Date(DateTime.Now)).Append(CRLF)
-' For i = 0 To headerlist.Size - 1
-' sb.Append(headerlist.get(i)).Append(CRLF)
-' sb.Append(locationstrings(i+1)).Append(CRLF)
-' Next
-'Log(sb.ToString)
- Print_rocks
-
-End Sub
-
-Sub Clearlog_Click
- 'cust2list.Clear
- locationstringlist.Clear
- headerlist.Clear
- headerposition.clear
-
- FileList.Clear
- FileString = ""
- editxt.Text = ""
- EstimatorString = ""
- FileStringBuilder.Initialize
- RockList.Clear
- WeedList.Clear
- PointList.Clear
- Log ("Clear")
-convert_texttolists
-End Sub
-
-Sub Activity_Resume
- If Starter.GPS1.GPSEnabled = False Then
- ToastMessageShow("Please enable the GPS device.", True)
- StartActivity(Starter.GPS1.LocationSettingsIntent) 'Will open the relevant settings screen.
- Else
- Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION)
- Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
- If Result Then CallSubDelayed(Starter, "StartGPS")
- End If
-End Sub
-
-
-Sub Activity_Pause (UserClosed As Boolean)
- File.WriteList(rp.GetSafeDirDefaultExternal(""), "Rocklist.txt", RockList)
- File.WriteList(rp.GetSafeDirDefaultExternal(""), "Weedlist.txt", WeedList)
- File.WriteList(rp.GetSafeDirDefaultExternal(""), "Pointlist.txt", PointList)
- File.WriteString(rp.GetSafeDirDefaultExternal(""), "editext.txt", editxt.text)
- Log("writelists")
- CallSubDelayed(Starter, "StopGPS")
- 'File.WriteList(File.DirRootExternal, "LogRocks.txt", FileList)
- 'File.WriteBytes(File.DirInternal, "List", raf2.ConvertObjectToBytes(cust2list))
- 'Log("listsave")
-End Sub
-
-Public Sub GpsStatus (Satellites As List)
- 'Dim sb As StringBuilder
- 'sb.Initialize
- 'sb.Append("Satellites:").Append(CRLF)
- 'For i = 0 To Satellites.Size - 1
- ' Dim Satellite As GPSSatellite = Satellites.Get(i)
- ' sb.Append(CRLF).Append(Satellite.Prn).Append($" $1.2{Satellite.Snr}"$).Append(" ").Append(Satellite.UsedInFix)
- ' sb.Append(" ").Append($" $1.2{Satellite.Azimuth}"$).Append($" $1.2{Satellite.Elevation}"$)
- 'Next
- 'lblSatellites.Text = sb.ToString
- 'lblSatIndicator.Color = 0xff7fff00
-End Sub
-Public Sub LocationChanged(Location1 As Location)
- 'lblLat.Text = "Lat = " & Location1.ConvertToMinutes(Location1.Latitude)
- 'lblLon.Text = "Lon = " & Location1.ConvertToMinutes(Location1.Longitude)
- 'lblSpeed.Text = $"Speed = $1.2{Location1.Speed} m/s "$
- lblSatIndicator.Color = 0xff7fff00
-End Sub
-Sub pnlrock_touch(ACTION As Int,X As Float,Y As Float)
- Select ACTION
- Case Activity.ACTION_DOWN
- lblpnlrock.Color = 0xFFDEB887
- Panel_down
-
-
- Case Activity.ACTION_UP
- lblpnlrock.Color = 0xFFFFEBCD
- Panel_up("Rocks")
-
- Case Activity.ACTION_MOVE
-
- End Select
-End Sub
-Sub Panel_down
- ButDownTime = DateTime.Now
- paneldowncomplete = False
- Do While Starter.ValidGPS = False
- Sleep (100)
- Loop
- 'STime = DateTime.Now
- LocDown = Starter.Location2
- paneldowncomplete = True
- 'SLong = Starter.Location2.Longitude
- 'checks for valid gps
- 'logs lat and long and time
-End Sub
-Sub Panel_up(obstacle As String)
- ButUpTime = DateTime.Now
- Log("panelup")
- Do While Starter.ValidGPS = False Or paneldowncomplete = False
- Sleep (200)
- Loop
- If (ButUpTime - LocDown.Time < 2000) And (ButUpTime - ButDownTime >500) Then
- lbl2secwarn.Visible = True
- Sleep (2000)
- lbl2secwarn.Visible = False
-
- End If
- LocUp = Starter.Location2
- Estimator(obstacle)
-End Sub
-
-Sub Estimator(obstacle As String)
- DateTime.DateFormat = ("dd/MM/yyyy")
-If (LocDown.Time = LocUp.Time) Then
- ELat = LocUp.Latitude
- ELong = LocUp.Longitude
-Else
- ELat =LocDown.Latitude - (LocDown.Latitude - LocUp.Latitude)*(LocDown.Time - 2*ButDownTime + ButUpTime)/(LocDown.Time - LocUp.Time)
- ELong = (LocDown.Longitude - LocUp.Longitude)*(2*ButDownTime-LocUp.Time-ButUpTime)/(LocDown.Time - LocUp.Time)+LocUp.longitude
-End If
-Log(ELong)
-Log(obstacle)
- Log(headerposition.Get(obstacle))
- Log(headerposition.ContainsKey(obstacle))
- 'origional calculationELat = FLat + (BtnDownTime-FTime)*(SLat - FLat)/(STime - FTime)
- 'ELong = FLong + (BtnDownTime-FTime)*(SLong - FLong)/(STime - FTime)
-Dim sb2 As StringBuilder
- sb2.Initialize
-If headerposition.ContainsKey(obstacle) = False Then
- Log("false")
- headerlist.Add(obstacle)
- headerposition.Put(obstacle,headerlist.Size)
- sb2.Append($",$2.6{ELat} $2.6{ELong},"$)
- locationstringlist.Add(sb2.tostring)
- 'locationstringlist.get(1)="e"
-Else
- Log("true")
- sb2.Append(locationstringlist.get(headerposition.Get(obstacle))).Append($",$2.6{ELat} $2.6{ELong},"$)
- locationstringlist.InsertAt(headerposition.Get(obstacle),sb2.tostring)
- locationstringlist.RemoveAt(headerposition.Get(obstacle)+1)
-End If
-
-'If obstacle = "Rock" Then
-' If RockList.Size = 0 Then
-' RockList.Add("Rocks")
-' End If
-' RockList.Add($",$2.6{ELat} $2.6{ELong},"$)
-'Else If obstacle = "Weed" Then
-' If WeedList.Size = 0 Then
-' WeedList.Add("Weeds")
-' End If
-' WeedList.Add($",$2.6{ELat} $2.6{ELong},"$)
-'Else If obstacle = "Point" Then
-' If PointList.Size = 0 Then
-' PointList.Add("Points")
-' End If
-' PointList.Add($",$2.6{ELat} $2.6{ELong},"$)
-'End If
-Print_rocks
-End Sub
-
-
-Sub pnlweed_Touch (Action As Int, X As Float, Y As Float)
- Select Action
- Case Activity.ACTION_DOWN
- lblpnlweed.Color = 0xFF61c800
- Panel_down
-
- Case Activity.ACTION_UP
- lblpnlweed.Color = 0xFF7cfc00
- '_up
- Panel_up("Weed")
-
- Case Activity.ACTION_MOVE
-
- End Select
-End Sub
-
-Sub pnlpoint_Touch (Action As Int, X As Float, Y As Float)
- Select Action
- Case Activity.ACTION_DOWN
- lblpnlpoint.Color = 0xFF68320d
- Panel_down
-
- Case Activity.ACTION_UP
- lblpnlpoint.Color = 0xff8b4513
- '_up
- Panel_up("Point")
-
- Case Activity.ACTION_MOVE
-
- End Select
-End Sub
-
-Sub savebut_Click
- If File.Exists(rp.GetSafeDirdefaultExternal(""), "Editxt.txt") Then
- editxt.text = File.Readstring(rp.GetSafeDirDefaultExternal(""), "editxt.txt")
- End If
- convert_texttolists
-End Sub
-
-Sub printbut_Click
-editxt.RequestFocus
-editxt.SelectAll
-
-End Sub
-
-Sub butviewmap_click
- StartActivity(Mapmod)
-End Sub
-
-'Sub Editxt_TextChanged(Old As String,New As String)
-
-'End Sub
-
-Sub Updatebtn_Click
- 'updateclick=True 'used to prevent double new lines in string
- convert_texttolists
-
- 'Log(headerlist.Size)
- 'Log(locationstringlist)
-End Sub
-
-Sub pnlcust_Touch (Action As Int, X As Float, Y As Float)
- Select Action
- Case Activity.ACTION_DOWN
- 'lblpnlpoint.Color = 0xFF68320d
- Panel_down
- For i = 0 To headerlist.Size - 1
- If headerlist.Get(i) <> "Rocks" Then
- If headerlist.Get(i) <> "Weed" Then
- If headerlist.Get(i) <> "Point" Then
- lblpnlcust.Text = headerlist.Get(i)
- Exit
- End If
- End If
- End If
- Next
- Case Activity.ACTION_UP
- 'lblpnlpoint.Color = 0xff8b4513
- '_up
- Panel_up(lblpnlcust.text)
-
- Case Activity.ACTION_MOVE
-
- End Select
-End Sub
\ No newline at end of file