mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-07-23 20:25:44 +02:00
Fix:Android auto filter out ebook only from downloaded tab
This commit is contained in:
parent
ff4f8324e7
commit
0d1312e497
8 changed files with 2255 additions and 7300 deletions
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
9453
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -45,6 +45,7 @@ const Constants = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
|
PlayMethod,
|
||||||
PlayerState,
|
PlayerState,
|
||||||
BookCoverAspectRatio
|
BookCoverAspectRatio
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue