diff options
Diffstat (limited to 'srcs/juloo.keyboard2/Emoji.java')
| -rw-r--r-- | srcs/juloo.keyboard2/Emoji.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/Emoji.java b/srcs/juloo.keyboard2/Emoji.java index 549f88d..8a82e31 100644 --- a/srcs/juloo.keyboard2/Emoji.java +++ b/srcs/juloo.keyboard2/Emoji.java @@ -12,10 +12,18 @@ import java.util.List; public class Emoji { private final KeyValue _kv; + private List<Emoji> _skintones; protected Emoji(String bytecode) { this._kv = new KeyValue(bytecode, KeyValue.Kind.String, 0, 0); + this._skintones = new ArrayList<>(); + } + + protected Emoji(Emoji e) + { + this._kv = e.kv(); + this._skintones = new ArrayList<>(e.skintones()); } public KeyValue kv() @@ -23,6 +31,16 @@ public class Emoji return _kv; } + public List<Emoji> skintones() + { + return _skintones; + } + + public void addSkintone(Emoji skintone) + { + _skintones.add(skintone); + } + private final static List<Emoji> _all = new ArrayList<>(); private final static List<List<Emoji>> _groups = new ArrayList<>(); @@ -43,6 +61,7 @@ public class Emoji while (!(line = reader.readLine()).isEmpty()) { Emoji e = new Emoji(line); + _all.add(e); _stringMap.put(line, e); } @@ -60,6 +79,23 @@ public class Emoji } _groups.add(_all.subList(last, _all.size())); } + + inputStream = res.openRawResource(R.raw.emojis_skintone_modifiable); + reader = new BufferedReader(new InputStreamReader(inputStream)); + + // Read skintone modifiable emojis + while ((line = reader.readLine()) != null) + { + int baseIndex = Integer.parseInt(line); + Emoji baseEmoji = _all.get(baseIndex); + + baseEmoji.addSkintone(new Emoji(baseEmoji)); + + while (!(line = reader.readLine()).isEmpty()) + { + baseEmoji.addSkintone(new Emoji(line)); + } + } } catch (IOException e) { Logs.exn("Emoji.init() failed", e); } } |
