Fix:Android auto filter out ebook only from downloaded tab

This commit is contained in:
advplyr 2023-06-19 14:03:29 -05:00
parent ff4f8324e7
commit 0d1312e497
8 changed files with 2255 additions and 7300 deletions

View file

@ -305,9 +305,9 @@ data class PodcastEpisode(
.setSubtitle(libraryItemDescription.title) .setSubtitle(libraryItemDescription.title)
.setExtras(extras) .setExtras(extras)
// libraryItemDescription.iconBitmap?.let { libraryItemDescription.iconBitmap?.let {
// mediaDescriptionBuilder.setIconBitmap(it) mediaDescriptionBuilder.setIconBitmap(it)
// } }
return mediaDescriptionBuilder.build() return mediaDescriptionBuilder.build()
} }

View file

@ -110,17 +110,17 @@ class LocalLibraryItem(
override fun getMediaDescription(progress:MediaProgressWrapper?, ctx:Context?): MediaDescriptionCompat { override fun getMediaDescription(progress:MediaProgressWrapper?, ctx:Context?): MediaDescriptionCompat {
val coverUri = getCoverUri() val coverUri = getCoverUri()
// var bitmap:Bitmap? = null var bitmap:Bitmap? = null
// if (coverContentUrl != null) { if (coverContentUrl != null) {
// ctx?.let { ctx?.let {
// bitmap = if (Build.VERSION.SDK_INT < 28) { bitmap = if (Build.VERSION.SDK_INT < 28) {
// MediaStore.Images.Media.getBitmap(it.contentResolver, coverUri) MediaStore.Images.Media.getBitmap(it.contentResolver, coverUri)
// } else { } else {
// val source: ImageDecoder.Source = ImageDecoder.createSource(it.contentResolver, coverUri) val source: ImageDecoder.Source = ImageDecoder.createSource(it.contentResolver, coverUri)
// ImageDecoder.decodeBitmap(source) ImageDecoder.decodeBitmap(source)
// } }
// } }
// } }
val extras = Bundle() val extras = Bundle()
extras.putLong( extras.putLong(
@ -156,9 +156,9 @@ class LocalLibraryItem(
.setSubtitle(authorName) .setSubtitle(authorName)
.setExtras(extras) .setExtras(extras)
// bitmap?.let { bitmap?.let {
// mediaDescriptionBuilder.setIconBitmap(bitmap) mediaDescriptionBuilder.setIconBitmap(bitmap)
// } }
return mediaDescriptionBuilder.build() return mediaDescriptionBuilder.build()
} }

View file

@ -1,7 +1,10 @@
package com.audiobookshelf.app.data package com.audiobookshelf.app.data
import android.content.Context import android.content.Context
import android.graphics.ImageDecoder
import android.net.Uri import android.net.Uri
import android.os.Build
import android.provider.MediaStore
import android.support.v4.media.MediaMetadataCompat import android.support.v4.media.MediaMetadataCompat
import com.audiobookshelf.app.BuildConfig import com.audiobookshelf.app.BuildConfig
import com.audiobookshelf.app.R import com.audiobookshelf.app.R
@ -165,16 +168,16 @@ class PlaybackSession(
.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON_URI, getCoverUri().toString()) .putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON_URI, getCoverUri().toString())
// Local covers get bitmap // Local covers get bitmap
// if (localLibraryItem?.coverContentUrl != null) { if (localLibraryItem?.coverContentUrl != null) {
// val bitmap = if (Build.VERSION.SDK_INT < 28) { val bitmap = if (Build.VERSION.SDK_INT < 28) {
// MediaStore.Images.Media.getBitmap(ctx.contentResolver, getCoverUri()) MediaStore.Images.Media.getBitmap(ctx.contentResolver, getCoverUri())
// } else { } else {
// val source: ImageDecoder.Source = ImageDecoder.createSource(ctx.contentResolver, getCoverUri()) val source: ImageDecoder.Source = ImageDecoder.createSource(ctx.contentResolver, getCoverUri())
// ImageDecoder.decodeBitmap(source) ImageDecoder.decodeBitmap(source)
// } }
// metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, bitmap) metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, bitmap)
// metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmap) metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmap)
// } }
return metadataBuilder.build() return metadataBuilder.build()
} }

View file

@ -4,7 +4,9 @@ import android.annotation.SuppressLint
import android.app.* import android.app.*
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Bitmap
import android.graphics.Color import android.graphics.Color
import android.graphics.ImageDecoder
import android.hardware.Sensor import android.hardware.Sensor
import android.hardware.SensorManager import android.hardware.SensorManager
import android.net.ConnectivityManager import android.net.ConnectivityManager
@ -12,6 +14,7 @@ import android.net.Network
import android.net.NetworkCapabilities import android.net.NetworkCapabilities
import android.net.NetworkRequest import android.net.NetworkRequest
import android.os.* import android.os.*
import android.provider.MediaStore
import android.provider.Settings import android.provider.Settings
import android.support.v4.media.MediaBrowserCompat import android.support.v4.media.MediaBrowserCompat
import android.support.v4.media.MediaDescriptionCompat import android.support.v4.media.MediaDescriptionCompat
@ -289,18 +292,18 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
return MediaDescriptionCompat.Builder().build() return MediaDescriptionCompat.Builder().build()
} }
var coverUri = currentPlaybackSession!!.getCoverUri() val coverUri = currentPlaybackSession!!.getCoverUri()
// var bitmap:Bitmap? = null var bitmap: Bitmap? = null
// Local covers get bitmap // Local covers get bitmap
// if (currentPlaybackSession!!.localLibraryItem?.coverContentUrl != null) { if (currentPlaybackSession!!.localLibraryItem?.coverContentUrl != null) {
// bitmap = if (Build.VERSION.SDK_INT < 28) { bitmap = if (Build.VERSION.SDK_INT < 28) {
// MediaStore.Images.Media.getBitmap(ctx.contentResolver, coverUri) MediaStore.Images.Media.getBitmap(ctx.contentResolver, coverUri)
// } else { } else {
// val source: ImageDecoder.Source = ImageDecoder.createSource(ctx.contentResolver, coverUri) val source: ImageDecoder.Source = ImageDecoder.createSource(ctx.contentResolver, coverUri)
// ImageDecoder.decodeBitmap(source) ImageDecoder.decodeBitmap(source)
// } }
// } }
// Fix for local images crashing on Android 11 for specific devices // Fix for local images crashing on Android 11 for specific devices
// https://stackoverflow.com/questions/64186578/android-11-mediastyle-notification-crash/64232958#64232958 // https://stackoverflow.com/questions/64186578/android-11-mediastyle-notification-crash/64232958#64232958
@ -322,9 +325,9 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
.setTitle(currentPlaybackSession!!.displayTitle) .setTitle(currentPlaybackSession!!.displayTitle)
.setIconUri(coverUri) .setIconUri(coverUri)
// bitmap?.let { bitmap?.let {
// mediaDescriptionBuilder.setIconBitmap(it) mediaDescriptionBuilder.setIconBitmap(it)
// } }
return mediaDescriptionBuilder.build() return mediaDescriptionBuilder.build()
} }
@ -1041,11 +1044,13 @@ class PlayerNotificationService : MediaBrowserServiceCompat() {
val localBrowseItems:MutableList<MediaBrowserCompat.MediaItem> = mutableListOf() val localBrowseItems:MutableList<MediaBrowserCompat.MediaItem> = mutableListOf()
localBooks.forEach { localLibraryItem -> localBooks.forEach { localLibraryItem ->
if (localLibraryItem.media.getAudioTracks().isNotEmpty()) {
val progress = DeviceManager.dbManager.getLocalMediaProgress(localLibraryItem.id) val progress = DeviceManager.dbManager.getLocalMediaProgress(localLibraryItem.id)
val description = localLibraryItem.getMediaDescription(progress, ctx) val description = localLibraryItem.getMediaDescription(progress, ctx)
localBrowseItems += MediaBrowserCompat.MediaItem(description, MediaBrowserCompat.MediaItem.FLAG_PLAYABLE) localBrowseItems += MediaBrowserCompat.MediaItem(description, MediaBrowserCompat.MediaItem.FLAG_PLAYABLE)
} }
}
localPodcasts.forEach { localLibraryItem -> localPodcasts.forEach { localLibraryItem ->
val mediaDescription = localLibraryItem.getMediaDescription(null, ctx) val mediaDescription = localLibraryItem.getMediaDescription(null, ctx)

View file

@ -70,7 +70,7 @@ export default {
return this.libraryItem.isLocal return this.libraryItem.isLocal
}, },
localCover() { localCover() {
return this.libraryItem ? this.libraryItem.coverContentUrl : null return this.libraryItem?.coverContentUrl || null
}, },
squareAspectRatio() { squareAspectRatio() {
return this.bookCoverAspectRatio === 1 return this.bookCoverAspectRatio === 1

9453
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -45,6 +45,7 @@ const Constants = {
} }
export { export {
PlayMethod,
PlayerState, PlayerState,
BookCoverAspectRatio BookCoverAspectRatio
} }

View file

@ -1,5 +1,6 @@
import { Network } from '@capacitor/network' import { Network } from '@capacitor/network'
import { AbsAudioPlayer } from '@/plugins/capacitor' import { AbsAudioPlayer } from '@/plugins/capacitor'
import { PlayMethod } from '@/plugins/constants'
export const state = () => ({ export const state = () => ({
deviceData: null, deviceData: null,
@ -35,7 +36,7 @@ export const getters = {
return !!state.currentPlaybackSession return !!state.currentPlaybackSession
}, },
getIsCurrentSessionLocal: state => { getIsCurrentSessionLocal: state => {
return state.currentPlaybackSession?.playMethod == this.$constants.PlayMethod.LOCAL return state.currentPlaybackSession?.playMethod == PlayMethod.LOCAL
}, },
getIsMediaStreaming: state => (libraryItemId, episodeId) => { getIsMediaStreaming: state => (libraryItemId, episodeId) => {
if (!state.currentPlaybackSession || !libraryItemId) return false if (!state.currentPlaybackSession || !libraryItemId) return false