From 67b2512a2aebe102f97956c03384f4d6f7ecee04 Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Tue, 22 May 2018 04:01:06 +0300 Subject: [PATCH] query avatar model name for current avatar --- interface/resources/qml/hifi/AvatarApp.qml | 37 +++++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/interface/resources/qml/hifi/AvatarApp.qml b/interface/resources/qml/hifi/AvatarApp.qml index a3ecd3c503..84e57fb6d8 100644 --- a/interface/resources/qml/hifi/AvatarApp.qml +++ b/interface/resources/qml/hifi/AvatarApp.qml @@ -32,14 +32,41 @@ Rectangle { property var jointNames; property var currentAvatarSettings; - function getAvatarName() { - if(avatarName !== '') { - return avatarName; - } + function fetchAvatarModelName(marketId, avatar) { + var xmlhttp = new XMLHttpRequest(); + var url = "https://highfidelity.com/api/v1/marketplace/items/" + marketId; + xmlhttp.onreadystatechange = function() { + if (xmlhttp.readyState === XMLHttpRequest.DONE && xmlhttp.status === 200) { + try { + console.debug('xmlhttp: ', xmlhttp.status, 'got responseText: ', xmlhttp.responseText); + var marketResponse = JSON.parse(xmlhttp.responseText.trim()) + console.debug('got market response: ', JSON.stringify(marketResponse)); + if(marketResponse.status === 'success') { + avatar.modelName = marketResponse.data.title; + } + } + catch(err) { + console.error(err); + } + } + } + xmlhttp.open("GET", url, true); + xmlhttp.send(); + } + + function getAvatarModelName() { if(currentAvatar === null) { return ''; } + if(currentAvatar.modelName !== undefined) { + return currentAvatar.modelName; + } else { + var marketId = allAvatars.extractMarketId(currentAvatar.avatarUrl); + if(marketId !== '') { + fetchAvatarModelName(marketId, currentAvatar); + } + } var avatarUrl = currentAvatar.entry.avatarUrl; var splitted = avatarUrl.split('/'); @@ -387,7 +414,7 @@ Rectangle { TextStyle3 { id: avatarNameLabel text: { - var avatarName = getAvatarName(); + var avatarName = getAvatarModelName(); return avatarName.length <= 14 ? avatarName : avatarName.substring(0, 14) + '...' } anchors.left: avatarImage.right