diff options
Diffstat (limited to 'src/com/isode/stroke/avatars/AvatarManagerImpl.java')
-rwxr-xr-x | src/com/isode/stroke/avatars/AvatarManagerImpl.java | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/src/com/isode/stroke/avatars/AvatarManagerImpl.java b/src/com/isode/stroke/avatars/AvatarManagerImpl.java index b324b3e..7803670 100755 --- a/src/com/isode/stroke/avatars/AvatarManagerImpl.java +++ b/src/com/isode/stroke/avatars/AvatarManagerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2013 Isode Limited. + * Copyright (c) 2010-2015 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -11,30 +11,22 @@ package com.isode.stroke.avatars; -import com.isode.stroke.avatars.AvatarManager; -import com.isode.stroke.avatars.CombinedAvatarProvider; -import com.isode.stroke.muc.MUCRegistry; -import com.isode.stroke.avatars.AvatarStorage; import com.isode.stroke.client.StanzaChannel; -import com.isode.stroke.vcards.VCardManager; -import com.isode.stroke.avatars.VCardUpdateAvatarManager; -import com.isode.stroke.avatars.VCardAvatarManager; -import com.isode.stroke.avatars.OfflineAvatarManager; import com.isode.stroke.crypto.CryptoProvider; -import com.isode.stroke.base.ByteArray; import com.isode.stroke.jid.JID; -import com.isode.stroke.signals.Slot1; -import java.nio.file.*; +import com.isode.stroke.muc.MUCRegistry; import com.isode.stroke.signals.SignalConnection; +import com.isode.stroke.signals.Slot1; +import com.isode.stroke.vcards.VCardManager; -public class AvatarManagerImpl implements AvatarManager { +public class AvatarManagerImpl extends AvatarManager { - private CombinedAvatarProvider combinedAvatarProvider = new CombinedAvatarProvider(); + private final CombinedAvatarProvider combinedAvatarProvider = new CombinedAvatarProvider(); private AvatarStorage avatarStorage; private VCardUpdateAvatarManager vcardUpdateAvatarManager; private VCardAvatarManager vcardAvatarManager; private OfflineAvatarManager offlineAvatarManager; - private SignalConnection onAvatarChangedConnection; + private final SignalConnection onAvatarChangedConnection; public AvatarManagerImpl(VCardManager vcardManager, StanzaChannel stanzaChannel, AvatarStorage avatarStorage, CryptoProvider crypto) { this(vcardManager, stanzaChannel, avatarStorage, crypto, null); @@ -52,27 +44,22 @@ public class AvatarManagerImpl implements AvatarManager { combinedAvatarProvider.addProvider(offlineAvatarManager); onAvatarChangedConnection = combinedAvatarProvider.onAvatarChanged.connect(new Slot1<JID>() { - - public void call(JID p1) { - handleCombinedAvatarChanged(p1); - } + @Override public void call(JID p1) {handleCombinedAvatarChanged(p1);} }); } - - public Path getAvatarPath(JID jid) { - String hash = combinedAvatarProvider.getAvatarHash(jid); - if (hash != null && hash.length() != 0) { - return avatarStorage.getAvatarPath(hash); - } - return Paths.get(""); + + public void delete() { + onAvatarChangedConnection.disconnect(); + combinedAvatarProvider.delete(); } - public ByteArray getAvatar(JID jid) { + @Override + public String getAvatar(JID jid) { String hash = combinedAvatarProvider.getAvatarHash(jid); - if (hash != null && hash.length() != 0) { - return avatarStorage.getAvatar(hash); + if (hash != null && hash.length() != 0 && avatarStorage.hasAvatar(hash)) { + return hash; } - return new ByteArray(); + return null; } private void handleCombinedAvatarChanged(JID jid) { |