Sub Activity_Create(FirstTime As Boolean)
canAccessCal = False
Activity.LoadLayout("Layout")
Starter.rp.CheckAndRequest("android.permission.READ_CALENDAR")
wait for Activity_PermissionResult (Permission As String, Result As Boolean)
If Result = False Then
Log("NO Permission READ Calendar")
Else
Starter.rp.CheckAndRequest("android.permission.WRITE_CALENDAR")
wait for Activity_PermissionResult (Permission As String, Result As Boolean)
If Result Then
canAccessCal = True
cr.Initialize("CR")
End If
End If
If canAccessCal Then
' We are working from here now...
Log("can read write calendar")
Dim projection() As String = Array As String(ccon.ID,ccon.NAME,ccon.CALENDAR_DISPLAY_NAME,ccon.ACCOUNT_NAME,ccon.ACCOUNT_TYPE,ccon.OWNER_ACCOUNT)
cr.QueryAsync(ccon.CONTENT_URI,projection, ccon.VISIBLE&"=1",Null,ccon.ID&" ASC")
wait for CR_QueryCompleted(Success As Boolean, Crsr As Cursor)
Log($"QueryCompleted(${Success})"$)
If Crsr.IsInitialized Then
If Crsr.RowCount > 0 Then
Dim Cursor As Cursor
Cursor = Crsr
For i = 0 To Cursor.RowCount - 1
Cursor.Position = i
'calcon.ACCOUNT_TYPE,calcon.OWNER_ACCOUNT)
Log($"CR --------------------------------------"$)
Log(Cursor.GetString(ccon.ID)) ' You can use the constants you used for the projection. But remember: only the ones you defined in the projection are available in the Result.
Log(Cursor.GetString(ccon.NAME))
Log(Cursor.GetString(ccon.CALENDAR_DISPLAY_NAME))
Log(Cursor.GetString(ccon.ACCOUNT_NAME))
Log(Cursor.GetString(ccon.ACCOUNT_TYPE))
Log(Cursor.GetString(ccon.OWNER_ACCOUNT))
Next
Cursor.Close
Else
' No rows
End If
Else
'
End If
End If
End Sub