diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt index 771a84e2..5051912c 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackDialog.kt @@ -53,6 +53,7 @@ data class PlaybackSettings( val playbackSpeed: Float, val contentScale: ContentScale, val subtitleDelay: Duration, + val hasSubtitleDownloadPermission: Boolean, ) @Composable @@ -96,6 +97,7 @@ fun PlaybackDialog( SubtitleChoiceBottomDialog( choices = settings.subtitleStreams, currentChoice = settings.subtitleIndex, + hasDownloadPermission = settings.hasSubtitleDownloadPermission, onDismissRequest = { onControllerInteraction.invoke() onDismissRequest.invoke() @@ -275,6 +277,7 @@ fun SubtitleChoiceBottomDialog( onSelectChoice: (Int) -> Unit, onSelectSearch: () -> Unit, gravity: Int, + hasDownloadPermission: Boolean, currentChoice: Int? = null, ) { // TODO enforcing a width ends up ignore the gravity @@ -366,6 +369,7 @@ fun SubtitleChoiceBottomDialog( HorizontalDivider() ListItem( selected = false, + enabled = hasDownloadPermission, onClick = onSelectSearch, leadingContent = {}, headlineContent = { diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt index 3dcf6584..122fc5d4 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackPage.kt @@ -130,6 +130,7 @@ fun PlaybackPage( val player = viewModel.player val mediaInfo by viewModel.currentMediaInfo.observeAsState() + val userDto by viewModel.currentUserDto.observeAsState() val currentPlayback by viewModel.currentPlayback.collectAsState() val currentItemPlayback by viewModel.currentItemPlayback.observeAsState( @@ -561,6 +562,8 @@ fun PlaybackPage( playbackSpeed = playbackSpeed, contentScale = contentScale, subtitleDelay = subtitleDelay, + hasSubtitleDownloadPermission = + remember(userDto) { userDto?.policy?.let { it.isAdministrator || it.enableSubtitleManagement } == true }, ), onDismissRequest = { playbackDialog = null diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt index 880087e6..fe72d7e4 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/playback/PlaybackViewModel.kt @@ -168,6 +168,8 @@ class PlaybackViewModel val subtitleSearch = MutableLiveData(null) val subtitleSearchLanguage = MutableLiveData(Locale.current.language) + val currentUserDto = serverRepository.currentUserDto + init { addCloseable { player.removeListener(this@PlaybackViewModel)