Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("design")
SQL1.Initialize(File.DirDefaultExternal, "testdb", True)
ImageViews.Initialize
ListviewSpotsCustom.Initialize(Me, "ListviewSpotsCustom")
PanelItems.AddView(ListviewSpotsCustom.AsView, 0, 0, 100%x, 90%y)
CreateTables 'create tables when it not exists
` getnewitems 'call sub to getting items from mysql server
End Sub
Sub Getnewspots
ExecuteRemoteQuery("SELECT * FROM movies ORDER BY title ASC", SPOT_LIST)
End Sub
Sub ExecuteRemoteQuery(Query As String, JobName As String)
Dim job As HttpJob
job.Initialize(JobName, Me)
job.PostString("http://****/android.php", Query)
End Sub
Sub JobDone(Job As HttpJob)
If Job.Success Then
Dim res As String
res = Job.GetString
Log("Response from server: " & res)
Dim parser As JSONParser
parser.Initialize(res)
Select Job.JobName
Case MOVIE_LIST
Dim movies As List
Dim job1 As HttpJob
movies = parser.NextArray 'returns a list with maps
For i = 0 To movies.Size - 1
Dim m As Map
m = movies.Get(i)
id = m.Get("id")
Dim actorstemp = m.Get("actors")
Dim actors = actorstemp.Replace("'","''")
Dim titletemp = m.Get("title")
Dim title = titletemp.Replace("'","''")
Dim Cursor1 As Cursor
Cursor1 = SQL1.ExecQuery("SELECT * FROM movies WHERE id='" & m.Get("id") & "'")
Cursor1.Position = 0
SQL1.ExecNonQuery("INSERT INTO movies (id,title,actors,thumbnail) VALUES('" & m.Get("id") & "','" & title & "','" & actors & "','" & m.Get("thumbnail") &"')")
Dim ImageJob As HttpJob
ImageJob.Initialize("ImageJob", Me)
ImageJob.Download(m.Get("thumbnail"))
ImageJob.Tag = m.Get("id")
Next
myProgressDialog.Hide
Case "ImageJob"
Dim InputStream1 As InputStream
InputStream1 = Job.GetInputStream
Dim OutputStream1 As OutputStream
OutputStream1.InitializeToBytesArray(1000)
File.Copy2(InputStream1, OutputStream1)
Dim Buffer() As Byte 'declares an empty array
Buffer = OutputStream1.ToBytesArray
'write the image To the database
SQL1.ExecNonQuery2("INSERT INTO images VALUES('" & Job.Tag & "', ?)", Array As Object(Buffer))
End Select
Else
ToastMessageShow("Error: " & Job.ErrorMessage, True)
End If
Job.Release
Readspots 'This is the problem, it calls to early the readspots url while the job is not complete
End Sub
Sub Readspots
Dim Cursor2 As Cursor
Dim Buffer() As Byte 'declare an empty byte array
Cursor2 = SQL1.ExecQuery("SELECT * FROM movies,images WHERE movies.id=images.id")
For i = 0 To Cursor2.RowCount - 1
Cursor2.Position = i
Buffer = Cursor2.GetBlob("image")
Dim InputStream1 As InputStream
InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
Dim Bitmap1 As Bitmap
Bitmap1.Initialize2(InputStream1)
Dim p As Panel
p.Initialize("")
ListviewSpotsCustom.Add(p, 75dip, Cursor2.GetString("title"))
p.LoadLayout("listItem")
Dim richlinea As RichString
richlinea.initialize("{BI}" & Cursor2.GetString("title") & "{BI}" & " (" & Cursor2.GetString("year") & ")" & CRLF & "{IT}" & Cursor2.GetString("actors") & "{IT}" & CRLF & "{R}" & "{R}" )
richlinea.color2(Colors.Yellow,"{C}")
richlinea.Style2(richlinea.STYLE_BOLD, "{BI}")
richlinea.Style2(richlinea.STYLE_ITALIC, "{IT}")
richlinea.RelativeSize2(0.8, "{R}")
richlinea.Typeface2("serif", "{T}")
Label2.text=richlinea 'Where lbl1 is a label view
ImageViews.Add(ImageView1)
ImageView1.SetBackgroundImage(Bitmap1)
InputStream1.Close
Next
Cursor2.Close
End Sub