Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be16d217 authored by Lucas Dupin's avatar Lucas Dupin Committed by Automerger Merge Worker
Browse files

Merge "Enable media resumption" into rvc-dev am: b174638e

Change-Id: I37a180b422e9dc4366f885db1820673430f26b73
parents 6fdd92ef b174638e
Loading
Loading
Loading
Loading
+13 −22
Original line number Original line Diff line number Diff line
@@ -22,13 +22,11 @@ import android.content.Context
import android.graphics.Bitmap
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Canvas
import android.graphics.ImageDecoder
import android.graphics.ImageDecoder
import android.graphics.Rect
import android.graphics.drawable.Drawable
import android.graphics.drawable.Drawable
import android.graphics.drawable.Icon
import android.graphics.drawable.Icon
import android.media.MediaMetadata
import android.media.MediaMetadata
import android.media.session.MediaSession
import android.media.session.MediaSession
import android.net.Uri
import android.net.Uri
import android.provider.Settings
import android.service.notification.StatusBarNotification
import android.service.notification.StatusBarNotification
import android.text.TextUtils
import android.text.TextUtils
import android.util.Log
import android.util.Log
@@ -37,8 +35,8 @@ import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.statusbar.notification.MediaNotificationProcessor
import com.android.systemui.statusbar.notification.MediaNotificationProcessor
import com.android.systemui.statusbar.notification.row.HybridGroupManager
import com.android.systemui.statusbar.notification.row.HybridGroupManager
import com.android.systemui.util.Utils
import java.io.IOException
import java.io.IOException
import java.util.*
import java.util.concurrent.Executor
import java.util.concurrent.Executor
import javax.inject.Inject
import javax.inject.Inject
import javax.inject.Singleton
import javax.inject.Singleton
@@ -126,8 +124,8 @@ class MediaDataManager @Inject constructor(
        if (artWorkIcon != null) {
        if (artWorkIcon != null) {
            // If we have art, get colors from that
            // If we have art, get colors from that
            if (artworkBitmap == null) {
            if (artworkBitmap == null) {
                if (artWorkIcon.type == Icon.TYPE_BITMAP
                if (artWorkIcon.type == Icon.TYPE_BITMAP ||
                        || artWorkIcon.type == Icon.TYPE_ADAPTIVE_BITMAP) {
                        artWorkIcon.type == Icon.TYPE_ADAPTIVE_BITMAP) {
                    artworkBitmap = artWorkIcon.bitmap
                    artworkBitmap = artWorkIcon.bitmap
                } else {
                } else {
                    val drawable: Drawable = artWorkIcon.loadDrawable(context)
                    val drawable: Drawable = artWorkIcon.loadDrawable(context)
@@ -195,7 +193,6 @@ class MediaDataManager @Inject constructor(
                    song, artWorkIcon, actionIcons, actionsToShowCollapsed, sbn.packageName, token,
                    song, artWorkIcon, actionIcons, actionsToShowCollapsed, sbn.packageName, token,
                    notif.contentIntent))
                    notif.contentIntent))
        }
        }

    }
    }


    /**
    /**
@@ -222,14 +219,14 @@ class MediaDataManager @Inject constructor(
     */
     */
    private fun loadBitmapFromUri(uri: Uri): Bitmap? {
    private fun loadBitmapFromUri(uri: Uri): Bitmap? {
        // ImageDecoder requires a scheme of the following types
        // ImageDecoder requires a scheme of the following types
        if (uri.getScheme() == null) {
        if (uri.scheme == null) {
            return null;
            return null
        }
        }


        if (!uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)
        if (!uri.scheme.equals(ContentResolver.SCHEME_CONTENT) &&
                && !uri.getScheme().equals(ContentResolver.SCHEME_ANDROID_RESOURCE)
                !uri.scheme.equals(ContentResolver.SCHEME_ANDROID_RESOURCE) &&
                && !uri.getScheme().equals(ContentResolver.SCHEME_FILE)) {
                !uri.scheme.equals(ContentResolver.SCHEME_FILE)) {
            return null;
            return null
        }
        }


        val source = ImageDecoder.createSource(context.getContentResolver(), uri)
        val source = ImageDecoder.createSource(context.getContentResolver(), uri)
@@ -261,26 +258,20 @@ class MediaDataManager @Inject constructor(
    }
    }


    private fun isMediaNotification(sbn: StatusBarNotification): Boolean {
    private fun isMediaNotification(sbn: StatusBarNotification): Boolean {
        if (!useUniversalMediaPlayer()) {
        if (!Utils.useQsMediaPlayer(context)) {
            return false
            return false
        }
        }
        if (!sbn.notification.hasMediaSession()) {
        if (!sbn.notification.hasMediaSession()) {
            return false
            return false
        }
        }
        val notificationStyle = sbn.notification.notificationStyle
        val notificationStyle = sbn.notification.notificationStyle
        if (Notification.DecoratedMediaCustomViewStyle::class.java.equals(notificationStyle)
        if (Notification.DecoratedMediaCustomViewStyle::class.java.equals(notificationStyle) ||
                || Notification.MediaStyle::class.java.equals(notificationStyle)) {
                Notification.MediaStyle::class.java.equals(notificationStyle)) {
            return true
            return true
        }
        }
        return false
        return false
    }
    }


    /**
     * are we using the universal media player
     */
    private fun useUniversalMediaPlayer()
            = Settings.System.getInt(context.contentResolver, "qs_media_player", 1) > 0

    /**
    /**
     * Are there any media notifications active?
     * Are there any media notifications active?
     */
     */
+1 −1
Original line number Original line Diff line number Diff line
@@ -130,7 +130,7 @@ public class Utils {
     */
     */
    public static boolean useQsMediaPlayer(Context context) {
    public static boolean useQsMediaPlayer(Context context) {
        int flag = Settings.Global.getInt(context.getContentResolver(),
        int flag = Settings.Global.getInt(context.getContentResolver(),
                Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, 0);
                Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, 1);
        return flag > 0;
        return flag > 0;
    }
    }
}
}