1package eu.siacs.conversations.xml;
 2
 3import com.google.common.collect.Iterables;
 4import java.util.Locale;
 5import java.util.Map;
 6
 7public class LocalizedContent {
 8
 9    public static final String STREAM_LANGUAGE = "en";
10
11    public final String content;
12    public final String language;
13    public final int count;
14
15    public LocalizedContent(final String content, final String language, final int count) {
16        this.content = content;
17        this.language = language;
18        this.count = count;
19    }
20
21    public static LocalizedContent get(final Map<String, String> contents) {
22        if (contents.isEmpty()) {
23            return null;
24        }
25        final String userLanguage = Locale.getDefault().getLanguage();
26        final String localized = contents.get(userLanguage);
27        if (localized != null) {
28            return new LocalizedContent(localized, userLanguage, contents.size());
29        }
30        final String streamLanguageContent = contents.get(STREAM_LANGUAGE);
31        if (streamLanguageContent != null) {
32            return new LocalizedContent(streamLanguageContent, STREAM_LANGUAGE, contents.size());
33        }
34        final Map.Entry<String, String> first = Iterables.get(contents.entrySet(), 0);
35        return new LocalizedContent(first.getValue(), first.getKey(), contents.size());
36    }
37}