aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/services/NotificationService.java
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-10-24 14:34:46 +0200
committeriNPUTmice <daniel@gultsch.de>2014-10-24 14:34:46 +0200
commit864f3610b30d684a19fe86eff22835a5ba2e92c4 (patch)
tree008580a0bbe476744d2648a6fe503d9b137ad211 /src/eu/siacs/conversations/services/NotificationService.java
parent1dae59141d345ae023ce94679f087f92b8b999d2 (diff)
picture notification and some drive by bug fixes
Diffstat (limited to 'src/eu/siacs/conversations/services/NotificationService.java')
-rw-r--r--src/eu/siacs/conversations/services/NotificationService.java38
1 files changed, 26 insertions, 12 deletions
diff --git a/src/eu/siacs/conversations/services/NotificationService.java b/src/eu/siacs/conversations/services/NotificationService.java
index 2dff736b..50e3dec0 100644
--- a/src/eu/siacs/conversations/services/NotificationService.java
+++ b/src/eu/siacs/conversations/services/NotificationService.java
@@ -1,5 +1,6 @@
package eu.siacs.conversations.services;
+import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.regex.Matcher;
@@ -11,6 +12,7 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.graphics.Bitmap;
import android.net.Uri;
import android.os.PowerManager;
import android.os.SystemClock;
@@ -109,19 +111,31 @@ public class NotificationService {
mBuilder.setLargeIcon(mXmppConnectionService
.getAvatarService().get(conversation, getPixel(64)));
mBuilder.setContentTitle(conversation.getName());
- StringBuilder text = new StringBuilder();
- for (int i = 0; i < messages.size(); ++i) {
- text.append(getReadableBody(messages.get(i)));
- if (i != messages.size() - 1) {
- text.append("\n");
+ if (messages.size() == 1 && messages.get(0).getType() == Message.TYPE_IMAGE) {
+ try {
+ Bitmap bitmap = mXmppConnectionService.getFileBackend().getThumbnail(messages.get(0),getPixel(288),false);
+ mBuilder.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(bitmap));
+ mBuilder.setContentText(mXmppConnectionService.getString(R.string.image_file));
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ } else {
+ StringBuilder text = new StringBuilder();
+ for (int i = 0; i < messages.size(); ++i) {
+ text.append(getReadableBody(messages.get(i)));
+ if (i != messages.size() - 1) {
+ text.append("\n");
+ }
+ }
+ mBuilder.setStyle(new NotificationCompat.BigTextStyle()
+ .bigText(text.toString()));
+ mBuilder.setContentText(getReadableBody(messages.get(0)));
+ if (notify) {
+ mBuilder.setTicker(getReadableBody(messages
+ .get(messages.size() - 1)));
}
- }
- mBuilder.setStyle(new NotificationCompat.BigTextStyle()
- .bigText(text.toString()));
- mBuilder.setContentText(getReadableBody(messages.get(0)));
- if (notify) {
- mBuilder.setTicker(getReadableBody(messages
- .get(messages.size() - 1)));
}
mBuilder.setContentIntent(createContentIntent(conversation
.getUuid()));