package dekk.pw.pokemate.util;
import POGOProtos.Inventory.Item.ItemAwardOuterClass;
import POGOProtos.Inventory.Item.ItemIdOuterClass;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author kylestev
*/
public class StringConverter {
public static String titleCase(final String sentence) {
return Arrays.stream(sentence.split("\\s|_"))
.map(StringConverter::titlizeWord)
.collect(Collectors.joining(" "));
}
private static String titlizeWord(final String word) {
return word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase();
}
public static String convertItemAwards(List<ItemAwardOuterClass.ItemAward> itemAwards) {
String retStr = "";
Map<Integer, Integer> receivedItems = new HashMap<>();
//check what items we got from the pokestop
for (ItemAwardOuterClass.ItemAward item : itemAwards) {
receivedItems.put(item.getItemId().getNumber(), receivedItems.getOrDefault((item.getItemId().getNumber()),0) + 1);
}
//build the rest of the string
for (Map.Entry<Integer, Integer> item : receivedItems.entrySet()) {
retStr += " - " + StringConverter.titleCase(ItemIdOuterClass.ItemId.forNumber(item.getKey()).name()) + "(x" + item.getValue() + ")";
}
return retStr;
}
}