@NonNull
    public static BitmapDrawable getEmojiDrawable(final int wantedSize, final int emoji) {

        EmojiPaint p;
        synchronized (EMOJI_PAINT_CACHE_PER_SIZE) {
            p = EMOJI_PAINT_CACHE_PER_SIZE.get(wantedSize);
            if (p == null) {
                final Resources res = CgeoApplication.getInstance().getApplicationContext().getResources();
                final Pair<Integer, Integer> markerDimensions = new Pair<>((int) (wantedSize * 1.2), (int) (wantedSize * 1.2));
                p = new EmojiUtils.EmojiPaint(res, markerDimensions, wantedSize, 0, DisplayUtils.calculateMaxFontsize(wantedSize, (int) (wantedSize * 0.8), (int) (wantedSize * 1.5), wantedSize));
                EMOJI_PAINT_CACHE_PER_SIZE.put(wantedSize, p);
            }
        }

        return getEmojiDrawable(p, emoji);
    }
get a drawable with given "wantedSize" as both width and height (either from cache or freshly built)

@param wantedSize wanted size of drawable (width and height) in pixel
@param emoji      codepoint of the emoji to display
@return drawable bitmap with emoji on it
main/src/main/java/cgeo/geocaching/utils/EmojiUtils.java