So I am trying to update the background image of a Tile when it reloads, the ByteArray seems to get generated and there are no errors, but the background just remains black. If I apply non-dynamic resource directly, like from drawable it works fine. Code below
private const val ID_SONGART = "ic_songart"
private fun playLayout(....)
.addContent (songImage(deviceParameters))
...
private fun songImage(deviceParameters: DeviceParameters) = Image.Builder()
.setResourceId(ID_SONGART)
.setWidth(expand())
.setHeight(expand())
.build()
override fun onResourcesRequest(...) = serviceScope.future{
.addIdToImageMapping(ID_SONGART, ImageResource.Builder()
.setInlineResource(InlineImageResource.Builder()
.setData(albumImage)
.setWidthPx(200)
.setHeightPx(200)
.setFormat(ResourceBuilders.IMAGE_FORMAT_RGB_565)
.build()
).build()
).build()
}
val albumImage: ByteArray
get() {
var data : ByteArray? = null
if(mmr!!.embeddedPicture!=null){ data = mmr!!.embeddedPicture!!}
if (data != null) {
Log.d("SongIMAGE", data.size.toString())
return data}
else {
var bitmap = BitmapFactory.decodeResource(
resources,
R.drawable.ic_app
)
val stream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
data = stream.toByteArray()
Log.d("DefaultImage", data.size.toString())
return data
}
}