Skip to content

Commit

Permalink
Merge pull request #3313 from AquaWolf/feature/conversations
Browse files Browse the repository at this point in the history
Feature/conversations
  • Loading branch information
bmarty authored Oct 13, 2021
2 parents 9661fa0 + 2223e95 commit 4f51dbd
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
1 change: 1 addition & 0 deletions newsfragment/3313.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Priority conversations for Android 11+
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,11 @@ class ShortcutsHandler @Inject constructor(
return
}

ShortcutManagerCompat.removeAllDynamicShortcuts(context)
// according to Android documentation
// removeLongLivedShortcuts for API 29 and lower should behave like removeDynamicShortcuts(Context, List)
// getDynamicShortcuts: returns all dynamic shortcuts from the app.
val shortcuts = ShortcutManagerCompat.getDynamicShortcuts(context).map { it.id }
ShortcutManagerCompat.removeLongLivedShortcuts(context, shortcuts)

// We can only disabled pinned shortcuts with the API, but at least it will prevent the crash
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,22 @@ package im.vector.app.features.notifications

import android.content.Context
import android.graphics.Bitmap
import android.os.Build
import android.os.Handler
import android.os.HandlerThread
import androidx.annotation.WorkerThread
import androidx.core.app.NotificationCompat
import androidx.core.app.Person
import androidx.core.content.pm.ShortcutInfoCompat
import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.graphics.drawable.IconCompat
import im.vector.app.ActiveSessionDataSource
import im.vector.app.BuildConfig
import im.vector.app.R
import im.vector.app.core.resources.StringProvider
import im.vector.app.core.utils.FirstThrottler
import im.vector.app.features.displayname.getBestName
import im.vector.app.features.home.room.detail.RoomDetailActivity
import im.vector.app.features.invite.AutoAcceptInvites
import im.vector.app.features.settings.VectorPreferences
import me.gujun.android.span.span
Expand Down Expand Up @@ -331,6 +336,19 @@ class NotificationDrawerManager @Inject constructor(private val context: Context
.setKey(event.senderId)
.build()

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val openRoomIntent = RoomDetailActivity.shortcutIntent(context, roomId)

val shortcut = ShortcutInfoCompat.Builder(context, roomId)
.setLongLived(true)
.setIntent(openRoomIntent)
.setShortLabel(roomName)
.setIcon(largeBitmap?.let { IconCompat.createWithAdaptiveBitmap(it) } ?: iconLoader.getUserIcon(event.senderAvatarPath))
.build()

ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)
}

if (event.outGoingMessage && event.outGoingMessageFailed) {
style.addMessage(stringProvider.getString(R.string.notification_inline_reply_failed), event.timestamp, senderPerson)
roomEventGroupInfo.hasSmartReplyError = true
Expand Down

0 comments on commit 4f51dbd

Please sign in to comment.