X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/1b0df2c7e727a2a88d50799852b49508128822b8..27d9424f1e7f607ac2dfad5b2164d065ffb79ef7:/src/main/java/cli/JsonSessionStore.java diff --git a/src/main/java/cli/JsonSessionStore.java b/src/main/java/cli/JsonSessionStore.java deleted file mode 100644 index c034fc2c..00000000 --- a/src/main/java/cli/JsonSessionStore.java +++ /dev/null @@ -1,91 +0,0 @@ -package cli; - -import org.json.JSONArray; -import org.json.JSONObject; -import org.whispersystems.libaxolotl.AxolotlAddress; -import org.whispersystems.libaxolotl.state.SessionRecord; -import org.whispersystems.libaxolotl.state.SessionStore; - -import java.io.IOException; -import java.util.*; - -public class JsonSessionStore implements SessionStore { - - private Map sessions = new HashMap<>(); - - public JsonSessionStore() { - - } - - public JsonSessionStore(JSONArray list) throws IOException { - for (int i = 0; i < list.length(); i++) { - JSONObject k = list.getJSONObject(i); - try { - sessions.put(new AxolotlAddress(k.getString("name"), k.getInt("deviceId")), Base64.decode(k.getString("record"))); - } catch (IOException e) { - System.out.println("Error while decoding prekey for: " + k.getString("name")); - } - } - } - - public JSONArray getJson() { - JSONArray result = new JSONArray(); - for (AxolotlAddress address : sessions.keySet()) { - result.put(new JSONObject().put("name", address.getName()). - put("deviceId", address.getDeviceId()). - put("record", Base64.encodeBytes(sessions.get(address)))); - } - return result; - } - - @Override - public synchronized SessionRecord loadSession(AxolotlAddress remoteAddress) { - try { - if (containsSession(remoteAddress)) { - return new SessionRecord(sessions.get(remoteAddress)); - } else { - return new SessionRecord(); - } - } catch (IOException e) { - throw new AssertionError(e); - } - } - - @Override - public synchronized List getSubDeviceSessions(String name) { - List deviceIds = new LinkedList<>(); - - for (AxolotlAddress key : sessions.keySet()) { - if (key.getName().equals(name) && - key.getDeviceId() != 1) { - deviceIds.add(key.getDeviceId()); - } - } - - return deviceIds; - } - - @Override - public synchronized void storeSession(AxolotlAddress address, SessionRecord record) { - sessions.put(address, record.serialize()); - } - - @Override - public synchronized boolean containsSession(AxolotlAddress address) { - return sessions.containsKey(address); - } - - @Override - public synchronized void deleteSession(AxolotlAddress address) { - sessions.remove(address); - } - - @Override - public synchronized void deleteAllSessions(String name) { - for (AxolotlAddress key : new ArrayList<>(sessions.keySet())) { - if (key.getName().equals(name)) { - sessions.remove(key); - } - } - } -}