abouttreesummaryrefslogcommitdiff
path: root/srcs
diff options
context:
space:
mode:
authorPatrick2026-05-07 19:39:16 +0200
committerPatrick2026-05-07 19:39:16 +0200
commit669e36d7518589f56f200fca9908e5adcb2139c1 (patch)
treef18b4b8001e2b5b4abaea68a5ae802a4553293a5 /srcs
parent8be9d1e9adad836798c23d6bd1e5c0ba7554fac8 (diff)
downloadunexpected-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.java36
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); }
}