Sub RequestIconLink(GetIconLink As String, PanelImage As B4XView, TitleLabel As B4XView)
Dim job As HttpJob
job.Initialize("Job2", Me)
job.Tag = StateManager.GetIconFileNameByIconLinkName(GetIconLink)
Dim poststr As String = GetIconLink
If StateManager.blnLogOn = True Then Log("Request Icon Url: " & poststr)
If StateManager.blnLogOn = True Then Log(" ")
job.Download(poststr)
job.GetRequest.Timeout = Starter.intIconTimeoutValue '5 seconds default
' job.GetRequest.SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0")
job.GetRequest.SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36")
'Wait for download complete
Wait For (job) JobDone(job As HttpJob)
If StateManager.blnLogOn = True Then Log("JobName = " & job.JobName & ", Success = " & job.Success)
If StateManager.blnLogOn = True Then Log("JobTag = " & job.Tag)
If (job.Success = True) Then
Dim WhatFilename As String
WhatFilename = job.Tag
If StateManager.blnLogOn = True Then Log(WhatFilename)
If StateManager.blnLogOn = True Then Log(" ")
' save icon to a file (when file is available in customlistview visiblerange it will load it instead of url request)
Try
If File.IsDirectory(File.DirInternalCache, Starter.SelectedFolder) = False Then
File.MakeDir(File.DirInternalCache, Starter.SelectedFolder)
End If
'some icon did not display. i think adding user-agent solved it?
Dim out As OutputStream = File.OpenOutput(File.DirInternalCache, Starter.SelectedFolder & WhatFilename, False)
File.Copy2(job.GetInputStream, out)
out.Close
'Display bitmap to panelimage
PanelImage.SetBitmap(job.GetBitmap.Resize(PanelImage.Width, PanelImage.Height, True))
If StateManager.smViewName = 0 Then
If Starter.WhatTabIsIt = 2 Or Starter.WhatTabIsIt = 3 Then
TitleLabel.Visible = False 'title label
End If
End If
Catch
PanelImage.SetBitmap(xui.LoadBitmapResize(File.DirAssets, "No Image.png", PanelImage.Width/2, PanelImage.Height/2, True))
If StateManager.smViewName = 0 Then
If Starter.WhatTabIsIt = 2 Or Starter.WhatTabIsIt = 3 Then
TitleLabel.Visible = True 'title label
End If
End If
If StateManager.blnLogOn = True Then Log("Error Outputstream:" & LastException)
End Try
Else
PanelImage.SetBitmap(xui.LoadBitmapResize(File.DirAssets, "No Image.png", PanelImage.Width/2, PanelImage.Height/2, True))
If StateManager.smViewName = 0 Then
If Starter.WhatTabIsIt = 2 Or Starter.WhatTabIsIt = 3 Then
TitleLabel.Visible = True 'title label
End If
End If
If StateManager.blnLogOn = True Then Log("False JobDone: ")
If StateManager.blnLogOn = True Then Log(" ")
End If
job.Release
End Sub