Skip to content

Commit 1edc254

Browse files
authored
Merge pull request #271 from Aga-C/add-contact-photo-notification
Added contact photo to notification
2 parents 76e8381 + 5751eab commit 1edc254

File tree

1 file changed

+33
-1
lines changed
  • app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers

1 file changed

+33
-1
lines changed

app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@ package com.simplemobiletools.smsmessenger.receivers
33
import android.content.BroadcastReceiver
44
import android.content.Context
55
import android.content.Intent
6+
import android.graphics.Bitmap
67
import android.os.Handler
78
import android.os.Looper
89
import android.provider.Telephony
910
import com.simplemobiletools.commons.extensions.getMyContactsCursor
11+
import com.bumptech.glide.Glide
12+
import com.bumptech.glide.load.engine.DiskCacheStrategy
13+
import com.bumptech.glide.request.RequestOptions
1014
import com.simplemobiletools.commons.extensions.isNumberBlocked
15+
import com.simplemobiletools.commons.helpers.SimpleContactsHelper
1116
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1217
import com.simplemobiletools.commons.models.SimpleContact
18+
import com.simplemobiletools.smsmessenger.R
1319
import com.simplemobiletools.smsmessenger.extensions.*
1420
import com.simplemobiletools.smsmessenger.helpers.refreshMessages
1521
import com.simplemobiletools.smsmessenger.models.Message
@@ -37,6 +43,8 @@ class SmsReceiver : BroadcastReceiver() {
3743
threadId = context.getThreadId(address)
3844
}
3945

46+
val bitmap = getPhotoForNotification(address, context)
47+
4048
Handler(Looper.getMainLooper()).post {
4149
val privateCursor = context.getMyContactsCursor(false, true)?.loadInBackground()
4250
if (!context.isNumberBlocked(address)) {
@@ -65,9 +73,33 @@ class SmsReceiver : BroadcastReceiver() {
6573
refreshMessages()
6674
}
6775

68-
context.showReceivedMessageNotification(address, body, threadId, null)
76+
context.showReceivedMessageNotification(address, body, threadId, bitmap)
6977
}
7078
}
7179
}
7280
}
81+
82+
private fun getPhotoForNotification(address: String, context: Context): Bitmap? {
83+
val photo = SimpleContactsHelper(context).getPhotoUriFromPhoneNumber(address)
84+
val size = context.resources.getDimension(R.dimen.notification_large_icon_size).toInt()
85+
if (photo.isEmpty()) {
86+
return null
87+
}
88+
89+
val options = RequestOptions()
90+
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
91+
.centerCrop()
92+
93+
return try {
94+
Glide.with(context)
95+
.asBitmap()
96+
.load(photo)
97+
.apply(options)
98+
.apply(RequestOptions.circleCropTransform())
99+
.into(size, size)
100+
.get()
101+
} catch (e: Exception) {
102+
null
103+
}
104+
}
73105
}

0 commit comments

Comments
 (0)