diff options
| author | Patrick | 2026-05-07 19:39:16 +0200 |
|---|---|---|
| committer | Patrick | 2026-05-07 19:39:16 +0200 |
| commit | 669e36d7518589f56f200fca9908e5adcb2139c1 (patch) | |
| tree | f18b4b8001e2b5b4abaea68a5ae802a4553293a5 /srcs | |
| parent | 8be9d1e9adad836798c23d6bd1e5c0ba7554fac8 (diff) | |
| download | unexpected-keyboard-669e36d7518589f56f200fca9908e5adcb2139c1.tar.gz unexpected-keyboard-669e36d7518589f56f200fca9908e5adcb2139c1.zip | |
add skintone handling to Emoji class; read skintones in init()
Diffstat (limited to 'srcs')
| -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); } } |
