From 72e5e6ae862d150ebac9bbc08969fd83a28b8101 Mon Sep 17 00:00:00 2001 From: Ray <154766448+damontecres@users.noreply.github.com> Date: Sun, 8 Feb 2026 13:38:09 -0500 Subject: [PATCH] Add option to send relevant media info to server for bug reports (#840) ## Description Adds a item in the More menu to send information about the media item to the server (and app logs). This includes the "media sources" which is info about the files and stream/tracks in the files. It also includes device info, the playback preferences, and the device's transcoding profile. All of this info is useful for debugging playback issues. ### Related issues N/A ### Testing Emulator testing ## Screenshots N/A ## AI or LLM usage None --- .../wholphin/services/MediaReportService.kt | 80 +++++++++++++++++++ .../ui/components/CollectionFolderGrid.kt | 3 + .../ui/components/RecommendedContent.kt | 3 + .../ui/components/RecommendedMovie.kt | 10 ++- .../ui/components/RecommendedTvShow.kt | 10 ++- .../wholphin/ui/detail/DebugPage.kt | 10 ++- .../wholphin/ui/detail/DetailUtils.kt | 23 +++++- .../detail/discover/DiscoverMovieDetails.kt | 1 + .../ui/detail/episode/EpisodeDetails.kt | 1 + .../ui/detail/episode/EpisodeViewModel.kt | 2 + .../wholphin/ui/detail/movie/MovieDetails.kt | 1 + .../ui/detail/movie/MovieViewModel.kt | 2 + .../ui/detail/series/SeriesDetails.kt | 1 + .../ui/detail/series/SeriesOverview.kt | 1 + .../ui/detail/series/SeriesViewModel.kt | 2 + .../damontecres/wholphin/ui/main/HomePage.kt | 1 + .../wholphin/ui/main/HomeViewModel.kt | 2 + app/src/main/res/values/strings.xml | 1 + 18 files changed, 147 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/github/damontecres/wholphin/services/MediaReportService.kt diff --git a/app/src/main/java/com/github/damontecres/wholphin/services/MediaReportService.kt b/app/src/main/java/com/github/damontecres/wholphin/services/MediaReportService.kt new file mode 100644 index 00000000..14a93ba2 --- /dev/null +++ b/app/src/main/java/com/github/damontecres/wholphin/services/MediaReportService.kt @@ -0,0 +1,80 @@ +package com.github.damontecres.wholphin.services + +import android.content.Context +import android.os.Build +import com.github.damontecres.wholphin.data.ServerRepository +import com.github.damontecres.wholphin.services.hilt.IoCoroutineScope +import com.github.damontecres.wholphin.ui.launchIO +import com.github.damontecres.wholphin.ui.showToast +import com.github.damontecres.wholphin.util.ExceptionHandler +import dagger.hilt.android.qualifiers.ApplicationContext +import kotlinx.coroutines.CoroutineScope +import kotlinx.serialization.json.Json +import org.jellyfin.sdk.api.client.ApiClient +import org.jellyfin.sdk.api.client.extensions.clientLogApi +import org.jellyfin.sdk.api.client.extensions.userLibraryApi +import org.jellyfin.sdk.model.ClientInfo +import org.jellyfin.sdk.model.DeviceInfo +import org.jellyfin.sdk.model.UUID +import org.jellyfin.sdk.model.api.BaseItemDto +import timber.log.Timber +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class MediaReportService + @Inject + constructor( + @param:ApplicationContext private val context: Context, + private val api: ApiClient, + private val serverRepository: ServerRepository, + private val userPreferencesService: UserPreferencesService, + private val clientInfo: ClientInfo, + private val deviceInfo: DeviceInfo, + private val deviceProfileService: DeviceProfileService, + @param:IoCoroutineScope private val ioScope: CoroutineScope, + ) { + val json = + Json { + encodeDefaults = false + } + + fun sendReportFor(itemId: UUID) { + ioScope.launchIO(ExceptionHandler(autoToast = true)) { + val item = api.userLibraryApi.getItem(itemId = itemId).content + sendReportFor(item) + } + } + + suspend fun sendReportFor(item: BaseItemDto) { + val sources = + item.mediaSources ?: api.userLibraryApi + .getItem(itemId = item.id) + .content.mediaSources + val sourcesJson = json.encodeToString(sources) + val playbackPrefs = userPreferencesService.getCurrent().appPreferences.playbackPreferences + val serverVersion = serverRepository.currentServer.value?.serverVersion + val deviceProfile = + deviceProfileService.getOrCreateDeviceProfile(playbackPrefs, serverVersion) + val deviceProfileJson = json.encodeToString(deviceProfile) + val body = + """ + Send media info + serverVersion=$serverVersion + clientInfo=$clientInfo + deviceInfo=$deviceInfo + manufacturer=${Build.MANUFACTURER} + model=${Build.MODEL} + apiLevel=${Build.VERSION.SDK_INT} + + playbackPrefs=${playbackPrefs.toString().replace("\n", ", ").replace("\t", " ")} + + deviceProfile=$deviceProfileJson + + mediaSources=$sourcesJson + """.trimIndent() + Timber.w(body) + val response by api.clientLogApi.logFile(body) + showToast(context, "Sent! Filename=${response.fileName}") + } + } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt index 89cda77e..6d20211f 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt @@ -58,6 +58,7 @@ import com.github.damontecres.wholphin.data.model.LibraryDisplayInfo import com.github.damontecres.wholphin.preferences.UserPreferences import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.FavoriteWatchManager +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.ui.AspectRatios import com.github.damontecres.wholphin.ui.RequestOrRestoreFocus @@ -120,6 +121,7 @@ class CollectionFolderViewModel private val favoriteWatchManager: FavoriteWatchManager, private val backdropService: BackdropService, val navigationManager: NavigationManager, + val mediaReportService: MediaReportService, @Assisted itemId: String, @Assisted initialSortAndDirection: SortAndDirection?, @Assisted("recursive") private val recursive: Boolean, @@ -664,6 +666,7 @@ fun CollectionFolderGrid( playlistViewModel.loadPlaylists(MediaType.VIDEO) showPlaylistDialog.makePresent(it) }, + onSendMediaInfo = viewModel.mediaReportService::sendReportFor, ), ), onDismissRequest = { moreDialog.makeAbsent() }, diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedContent.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedContent.kt index 869a454d..24b3d502 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedContent.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedContent.kt @@ -22,6 +22,7 @@ import com.github.damontecres.wholphin.data.model.BaseItem import com.github.damontecres.wholphin.preferences.UserPreferences import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.FavoriteWatchManager +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.ui.OneTimeLaunchedEffect import com.github.damontecres.wholphin.ui.data.AddPlaylistViewModel @@ -46,6 +47,7 @@ abstract class RecommendedViewModel( val context: Context, val navigationManager: NavigationManager, val favoriteWatchManager: FavoriteWatchManager, + val mediaReportService: MediaReportService, private val backdropService: BackdropService, ) : ViewModel() { abstract fun init() @@ -190,6 +192,7 @@ fun RecommendedContent( playlistViewModel.loadPlaylists(MediaType.VIDEO) showPlaylistDialog.makePresent(it) }, + onSendMediaInfo = viewModel.mediaReportService::sendReportFor, ), ), onDismissRequest = { moreDialog.makeAbsent() }, diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedMovie.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedMovie.kt index 866efbf3..e44c72f7 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedMovie.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedMovie.kt @@ -14,6 +14,7 @@ import com.github.damontecres.wholphin.preferences.AppPreferences import com.github.damontecres.wholphin.preferences.UserPreferences import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.FavoriteWatchManager +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.services.SuggestionService import com.github.damontecres.wholphin.services.SuggestionsResource @@ -58,8 +59,15 @@ class RecommendedMovieViewModel @Assisted val parentId: UUID, navigationManager: NavigationManager, favoriteWatchManager: FavoriteWatchManager, + mediaReportService: MediaReportService, backdropService: BackdropService, - ) : RecommendedViewModel(context, navigationManager, favoriteWatchManager, backdropService) { + ) : RecommendedViewModel( + context, + navigationManager, + favoriteWatchManager, + mediaReportService, + backdropService, + ) { @AssistedFactory interface Factory { fun create(parentId: UUID): RecommendedMovieViewModel diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedTvShow.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedTvShow.kt index 2decd21a..4e952033 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedTvShow.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/RecommendedTvShow.kt @@ -14,6 +14,7 @@ import com.github.damontecres.wholphin.preferences.UserPreferences import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.FavoriteWatchManager import com.github.damontecres.wholphin.services.LatestNextUpService +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.services.SuggestionService import com.github.damontecres.wholphin.services.SuggestionsResource @@ -62,8 +63,15 @@ class RecommendedTvShowViewModel @Assisted val parentId: UUID, navigationManager: NavigationManager, favoriteWatchManager: FavoriteWatchManager, + mediaReportService: MediaReportService, backdropService: BackdropService, - ) : RecommendedViewModel(context, navigationManager, favoriteWatchManager, backdropService) { + ) : RecommendedViewModel( + context, + navigationManager, + favoriteWatchManager, + mediaReportService, + backdropService, + ) { @AssistedFactory interface Factory { fun create(parentId: UUID): RecommendedTvShowViewModel diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DebugPage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DebugPage.kt index f0ad2c0c..0abcdc07 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DebugPage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DebugPage.kt @@ -49,6 +49,7 @@ import org.jellyfin.sdk.api.client.ApiClient import org.jellyfin.sdk.api.client.extensions.clientLogApi import org.jellyfin.sdk.model.ClientInfo import org.jellyfin.sdk.model.DeviceInfo +import timber.log.Timber import java.io.BufferedReader import java.io.InputStreamReader import javax.inject.Inject @@ -137,9 +138,13 @@ class DebugViewModel Send App Logs clientInfo=$clientInfo deviceInfo=$deviceInfo + manufacturer=${Build.MANUFACTURER} + model=${Build.MODEL} + apiLevel=${Build.VERSION.SDK_INT} - """.trimIndent() + logcat - val response by api.clientLogApi.logFile(body) + """.trimIndent() + Timber.w(body) + val response by api.clientLogApi.logFile(body + logcat) showToast(context, "Sent! Filename=${response.fileName}") } } @@ -253,6 +258,7 @@ fun DebugPage( "DeviceInfo: ${viewModel.deviceInfo}", "Manufacturer: ${Build.MANUFACTURER}", "Model: ${Build.MODEL}", + "API Level: ${Build.VERSION.SDK_INT}", "Display Modes:", *viewModel.refreshRateService.supportedDisplayModes, ).forEach { diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DetailUtils.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DetailUtils.kt index 8a210c27..cebfff70 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DetailUtils.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/DetailUtils.kt @@ -25,9 +25,10 @@ import kotlin.time.Duration.Companion.seconds data class MoreDialogActions( val navigateTo: (Destination) -> Unit, - var onClickWatch: (UUID, Boolean) -> Unit, - var onClickFavorite: (UUID, Boolean) -> Unit, - var onClickAddPlaylist: (UUID) -> Unit, + val onClickWatch: (UUID, Boolean) -> Unit, + val onClickFavorite: (UUID, Boolean) -> Unit, + val onClickAddPlaylist: (UUID) -> Unit, + val onSendMediaInfo: (UUID) -> Unit, ) enum class ClearChosenStreams { @@ -205,6 +206,14 @@ fun buildMoreDialogItems( ) }, ) + add( + DialogItem( + text = R.string.send_media_info_log_to_server, + iconStringRes = R.string.fa_file_video, + ) { + actions.onSendMediaInfo.invoke(item.id) + }, + ) } fun buildMoreDialogItemsForHome( @@ -314,6 +323,14 @@ fun buildMoreDialogItemsForHome( }, ) } + add( + DialogItem( + text = R.string.send_media_info_log_to_server, + iconStringRes = R.string.fa_file_video, + ) { + actions.onSendMediaInfo.invoke(itemId) + }, + ) } fun buildMoreDialogItemsForPerson( diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/DiscoverMovieDetails.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/DiscoverMovieDetails.kt index 3c22e8a9..7df86615 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/DiscoverMovieDetails.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/discover/DiscoverMovieDetails.kt @@ -108,6 +108,7 @@ fun DiscoverMovieDetails( onClickWatch = { itemId, watched -> }, onClickFavorite = { itemId, favorite -> }, onClickAddPlaylist = { itemId -> }, + onSendMediaInfo = {}, ) when (val state = loading) { diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeDetails.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeDetails.kt index ead6cfd4..bac9f51a 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeDetails.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeDetails.kt @@ -97,6 +97,7 @@ fun EpisodeDetails( playlistViewModel.loadPlaylists(MediaType.VIDEO) showPlaylistDialog.makePresent(itemId) }, + onSendMediaInfo = viewModel.mediaReportService::sendReportFor, ) when (val state = loading) { diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeViewModel.kt index ee93050e..7808141e 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/episode/EpisodeViewModel.kt @@ -12,6 +12,7 @@ import com.github.damontecres.wholphin.data.model.ItemPlayback import com.github.damontecres.wholphin.preferences.ThemeSongVolume import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.FavoriteWatchManager +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.services.StreamChoiceService import com.github.damontecres.wholphin.services.ThemeSongPlayer @@ -48,6 +49,7 @@ class EpisodeViewModel val serverRepository: ServerRepository, val itemPlaybackRepository: ItemPlaybackRepository, val streamChoiceService: StreamChoiceService, + val mediaReportService: MediaReportService, private val themeSongPlayer: ThemeSongPlayer, private val favoriteWatchManager: FavoriteWatchManager, private val userPreferencesService: UserPreferencesService, diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt index a5d3a7c6..23ed08c3 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt @@ -125,6 +125,7 @@ fun MovieDetails( playlistViewModel.loadPlaylists(MediaType.VIDEO) showPlaylistDialog.makePresent(itemId) }, + onSendMediaInfo = viewModel.mediaReportService::sendReportFor, ) when (val state = loading) { diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieViewModel.kt index 8454f0a1..ed46656c 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieViewModel.kt @@ -18,6 +18,7 @@ import com.github.damontecres.wholphin.preferences.ThemeSongVolume import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.ExtrasService import com.github.damontecres.wholphin.services.FavoriteWatchManager +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.services.PeopleFavorites import com.github.damontecres.wholphin.services.SeerrService @@ -64,6 +65,7 @@ class MovieViewModel val serverRepository: ServerRepository, val itemPlaybackRepository: ItemPlaybackRepository, val streamChoiceService: StreamChoiceService, + val mediaReportService: MediaReportService, private val themeSongPlayer: ThemeSongPlayer, private val favoriteWatchManager: FavoriteWatchManager, private val peopleFavorites: PeopleFavorites, diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesDetails.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesDetails.kt index cef5412b..55335057 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesDetails.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesDetails.kt @@ -230,6 +230,7 @@ fun SeriesDetails( playlistViewModel.loadPlaylists(MediaType.VIDEO) showPlaylistDialog.makePresent(itemId) }, + onSendMediaInfo = viewModel.mediaReportService::sendReportFor, ), ) if (showWatchConfirmation) { diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverview.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverview.kt index d95a5bbb..a8a9d83f 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverview.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesOverview.kt @@ -215,6 +215,7 @@ fun SeriesOverview( playlistViewModel.loadPlaylists(MediaType.VIDEO) showPlaylistDialog = it }, + onSendMediaInfo = viewModel.mediaReportService::sendReportFor, ), onChooseVersion = { chooseVersion = diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesViewModel.kt index 8ae7a579..3d80aa9d 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/series/SeriesViewModel.kt @@ -16,6 +16,7 @@ import com.github.damontecres.wholphin.data.model.Trailer import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.ExtrasService import com.github.damontecres.wholphin.services.FavoriteWatchManager +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.services.PeopleFavorites import com.github.damontecres.wholphin.services.SeerrService @@ -85,6 +86,7 @@ class SeriesViewModel private val trailerService: TrailerService, private val extrasService: ExtrasService, val streamChoiceService: StreamChoiceService, + val mediaReportService: MediaReportService, private val userPreferencesService: UserPreferencesService, private val backdropService: BackdropService, private val seerrService: SeerrService, diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt index ac946d8b..9f67dd2e 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt @@ -138,6 +138,7 @@ fun HomePage( playlistViewModel.loadPlaylists(MediaType.VIDEO) showPlaylistDialog = itemId }, + onSendMediaInfo = viewModel.mediaReportService::sendReportFor, ), ) dialog = diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomeViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomeViewModel.kt index 1911e34d..8e7846b8 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomeViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomeViewModel.kt @@ -13,6 +13,7 @@ import com.github.damontecres.wholphin.services.BackdropService import com.github.damontecres.wholphin.services.DatePlayedService import com.github.damontecres.wholphin.services.FavoriteWatchManager import com.github.damontecres.wholphin.services.LatestNextUpService +import com.github.damontecres.wholphin.services.MediaReportService import com.github.damontecres.wholphin.services.NavigationManager import com.github.damontecres.wholphin.services.UserPreferencesService import com.github.damontecres.wholphin.ui.launchIO @@ -44,6 +45,7 @@ class HomeViewModel val navigationManager: NavigationManager, val serverRepository: ServerRepository, val navDrawerItemRepository: NavDrawerItemRepository, + val mediaReportService: MediaReportService, private val favoriteWatchManager: FavoriteWatchManager, private val datePlayedService: DatePlayedService, private val latestNextUpService: LatestNextUpService, diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c0021de1..63c7c3d2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -484,6 +484,7 @@ Zoom out Slideshow duration Play videos during slideshow + Send media info log to server Disabled