diff options
author | Alan Young <consult.awy@gmail.com> | 2015-06-29 09:26:14 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2015-07-07 08:58:14 (GMT) |
commit | d32bc2d8ab89f9f9787f417d71055e2b88a3b92b (patch) | |
tree | 9a7dbb85b33805e0428e39efb3da9d1f127528c3 /src/com/isode/stroke/avatars/AvatarMemoryStorage.java | |
parent | 1f31d8301bbb89a61235d575ac3c5a2061df3a69 (diff) | |
download | stroke-d32bc2d8ab89f9f9787f417d71055e2b88a3b92b.zip stroke-d32bc2d8ab89f9f9787f417d71055e2b88a3b92b.tar.bz2 |
Update Avatar access model.
Use the String avatar hash as the general handle for an avatar.
AvatarManager.getAvatar(JID jid) will return null if no
avatar is available.
AvatarManager.getAvatarPath() and AvatarStorage.getAvatarPath() are
deleted.
Make AvatarProvider & AvatarManager abstract classes instead of
interfaces so that their onAvatarChanged Signals are not static fields.
Implement delete() for AvatarManagerImpl and AvatarProvider & subclasses
so that signal connections can be released.
Add @Override annotations as appropriate.
Change-Id: Ia7c9d7607b642bb42c373f81dc6be9a60f0f2134
Diffstat (limited to 'src/com/isode/stroke/avatars/AvatarMemoryStorage.java')
-rwxr-xr-x | src/com/isode/stroke/avatars/AvatarMemoryStorage.java | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/com/isode/stroke/avatars/AvatarMemoryStorage.java b/src/com/isode/stroke/avatars/AvatarMemoryStorage.java index a3ad6f0..10079ba 100755 --- a/src/com/isode/stroke/avatars/AvatarMemoryStorage.java +++ b/src/com/isode/stroke/avatars/AvatarMemoryStorage.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010 Isode Limited. + * Copyright (c) 2010-2015 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -14,8 +14,7 @@ package com.isode.stroke.avatars; import com.isode.stroke.avatars.AvatarStorage; import com.isode.stroke.base.ByteArray; import com.isode.stroke.jid.JID; -import java.nio.file.*; -import java.io.File; + import java.util.*; public class AvatarMemoryStorage implements AvatarStorage { @@ -23,35 +22,38 @@ public class AvatarMemoryStorage implements AvatarStorage { private Map<String, ByteArray> avatars = new HashMap<String, ByteArray>(); private Map<JID, String> jidAvatars = new HashMap<JID, String>(); + @Override public boolean hasAvatar(String hash) { return avatars.containsKey(hash); } + @Override public void addAvatar(String hash, ByteArray avatar) { avatars.put(hash, avatar); } - public ByteArray getAvatar(String hash) { - if(avatars.containsKey(hash)) { - return avatars.get(hash); - } else { - return new ByteArray(); - } - } - - public Path getAvatarPath(String hash) { - return (Paths.get("/avatars" + File.separator + hash)).toAbsolutePath(); + @Override + public String getAvatar(String hash) { + return avatars.containsKey(hash) ? hash : null; } + @Override public void setAvatarForJID(JID jid, String hash) { jidAvatars.put(jid, hash); } + @Override public String getAvatarForJID(JID jid) { if(jidAvatars.containsKey(jid)) { return jidAvatars.get(jid); } else { - return ""; + return null; } } + + // Used for test cases only + public ByteArray getAvatarBytes(String hash) { + return avatars.get(hash); + } + }
\ No newline at end of file |