summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/avatars/AvatarManagerImpl.java')
-rwxr-xr-xsrc/com/isode/stroke/avatars/AvatarManagerImpl.java47
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) {