Skip to content

Commit

Permalink
Always show/hide PIN keyboard & disabled audio tracks when needed (#528)
Browse files Browse the repository at this point in the history
Ensure that the soft keyboard is presented whenever the PIN page is
shown and dismiss the keyboard when the page is removed.

Also, if scene preview audio is disabled, also disable the audio track
instead of just muting the audio.

Dev: persist server-side UI config
  • Loading branch information
damontecres authored Jan 29, 2025
1 parent a4e413c commit 052acd5
Show file tree
Hide file tree
Showing 8 changed files with 198 additions and 104 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class GalleryFragment : TabbedFragment(DataType.GALLERY.name) {
serverViewModel
.requireServer()
.serverPreferences
.getDefaultFilter(
.getDefaultPageFilter(
PageFilterKey.GALLERY_IMAGES,
).findFilter,
objectFilter = ImageFilterType(galleries = galleries),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,13 @@ class GroupFragment : TabbedFragment(DataType.GROUP.name) {
}
tabViewModel.title.value = group.name
val groupSceneFilter =
serverViewModel.requireServer().serverPreferences.getDefaultFilter(PageFilterKey.GROUP_SCENES)
serverViewModel.requireServer().serverPreferences.getDefaultPageFilter(
PageFilterKey.GROUP_SCENES,
)
val subGroupFilter =
serverViewModel.requireServer().serverPreferences.getDefaultFilter(PageFilterKey.GROUP_SUB_GROUPS)
serverViewModel.requireServer().serverPreferences.getDefaultPageFilter(
PageFilterKey.GROUP_SUB_GROUPS,
)
tabViewModel.tabs.value =
listOf(
StashFragmentPagerAdapter.PagerEntry(getString(R.string.stashapp_details)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,28 +87,44 @@ class PerformerFragment : TabbedFragment(DataType.PERFORMER.name) {
StashFragmentPagerAdapter.PagerEntry(DataType.SCENE) {
StashGridControlsFragment(
dataType = DataType.SCENE,
findFilter = server.serverPreferences.getDefaultFilter(PageFilterKey.PERFORMER_SCENES).findFilter,
findFilter =
server.serverPreferences
.getDefaultPageFilter(
PageFilterKey.PERFORMER_SCENES,
).findFilter,
objectFilter = SceneFilterType(performers = performers),
)
},
StashFragmentPagerAdapter.PagerEntry(DataType.GALLERY) {
StashGridControlsFragment(
dataType = DataType.GALLERY,
findFilter = server.serverPreferences.getDefaultFilter(PageFilterKey.PERFORMER_GALLERIES).findFilter,
findFilter =
server.serverPreferences
.getDefaultPageFilter(
PageFilterKey.PERFORMER_GALLERIES,
).findFilter,
objectFilter = GalleryFilterType(performers = performers),
)
},
StashFragmentPagerAdapter.PagerEntry(DataType.IMAGE) {
StashGridControlsFragment(
dataType = DataType.IMAGE,
findFilter = server.serverPreferences.getDefaultFilter(PageFilterKey.PERFORMER_IMAGES).findFilter,
findFilter =
server.serverPreferences
.getDefaultPageFilter(
PageFilterKey.PERFORMER_IMAGES,
).findFilter,
objectFilter = ImageFilterType(performers = performers),
)
},
StashFragmentPagerAdapter.PagerEntry(DataType.GROUP) {
StashGridControlsFragment(
dataType = DataType.GROUP,
findFilter = server.serverPreferences.getDefaultFilter(PageFilterKey.PERFORMER_GROUPS).findFilter,
findFilter =
server.serverPreferences
.getDefaultPageFilter(
PageFilterKey.PERFORMER_GROUPS,
).findFilter,
objectFilter = GroupFilterType(performers = performers),
)
},
Expand Down Expand Up @@ -145,7 +161,7 @@ class PerformerFragment : TabbedFragment(DataType.PERFORMER.name) {
dataType = DataType.PERFORMER,
findFilter =
server.serverPreferences
.getDefaultFilter(
.getDefaultPageFilter(
PageFilterKey.PERFORMER_APPEARS_WITH,
).findFilter,
objectFilter =
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/java/com/github/damontecres/stashapp/PinFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ package com.github.damontecres.stashapp

import android.os.Bundle
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.core.content.ContextCompat.getSystemService
import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
Expand Down Expand Up @@ -65,6 +67,19 @@ class PinFragment : Fragment(R.layout.pin_dialog) {
}
}

override fun onResume() {
super.onResume()
pinEditText.requestFocus()
val imm = getSystemService(requireContext(), InputMethodManager::class.java)!!
imm.showSoftInput(pinEditText, InputMethodManager.SHOW_IMPLICIT)
}

override fun onStop() {
super.onStop()
val imm = getSystemService(requireContext(), InputMethodManager::class.java)!!
imm.hideSoftInputFromWindow(pinEditText.windowToken, 0)
}

private fun startMain() {
serverViewModel.navigationManager.clearPinFragment()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class StudioFragment : TabbedFragment(DataType.STUDIO.name) {
createStashGridFragment(
studio.id,
DataType.SCENE,
server.serverPreferences.getDefaultFilter(PageFilterKey.STUDIO_SCENES).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.STUDIO_SCENES).findFilter,
) { studios ->
SceneFilterType(studios = studios)
}
Expand All @@ -71,7 +71,7 @@ class StudioFragment : TabbedFragment(DataType.STUDIO.name) {
createStashGridFragment(
studio.id,
DataType.GALLERY,
server.serverPreferences.getDefaultFilter(PageFilterKey.STUDIO_GALLERIES).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.STUDIO_GALLERIES).findFilter,
) { studios ->
GalleryFilterType(studios = studios)
}
Expand All @@ -80,7 +80,7 @@ class StudioFragment : TabbedFragment(DataType.STUDIO.name) {
createStashGridFragment(
studio.id,
DataType.IMAGE,
server.serverPreferences.getDefaultFilter(PageFilterKey.STUDIO_IMAGES).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.STUDIO_IMAGES).findFilter,
) { studios ->
ImageFilterType(studios = studios)
}
Expand All @@ -89,7 +89,7 @@ class StudioFragment : TabbedFragment(DataType.STUDIO.name) {
createStashGridFragment(
studio.id,
DataType.PERFORMER,
server.serverPreferences.getDefaultFilter(PageFilterKey.STUDIO_PERFORMERS).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.STUDIO_PERFORMERS).findFilter,
) { studios ->
PerformerFilterType(studios = studios)
}
Expand All @@ -98,7 +98,7 @@ class StudioFragment : TabbedFragment(DataType.STUDIO.name) {
createStashGridFragment(
studio.id,
DataType.GROUP,
server.serverPreferences.getDefaultFilter(PageFilterKey.STUDIO_GROUPS).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.STUDIO_GROUPS).findFilter,
) { studios ->
GroupFilterType(studios = studios)
}
Expand All @@ -116,7 +116,7 @@ class StudioFragment : TabbedFragment(DataType.STUDIO.name) {
dataType = DataType.STUDIO,
findFilter =
server.serverPreferences
.getDefaultFilter(
.getDefaultPageFilter(
PageFilterKey.STUDIO_CHILDREN,
).findFilter,
objectFilter =
Expand Down
10 changes: 5 additions & 5 deletions app/src/main/java/com/github/damontecres/stashapp/TagFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class TagFragment : TabbedFragment(DataType.TAG.name) {
createStashGridFragment(
tag.id,
dataType = DataType.SCENE,
server.serverPreferences.getDefaultFilter(PageFilterKey.TAG_SCENES).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.TAG_SCENES).findFilter,
) { tags ->
SceneFilterType(tags = tags)
}
Expand All @@ -72,7 +72,7 @@ class TagFragment : TabbedFragment(DataType.TAG.name) {
createStashGridFragment(
tag.id,
dataType = DataType.GALLERY,
server.serverPreferences.getDefaultFilter(PageFilterKey.TAG_GALLERIES).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.TAG_GALLERIES).findFilter,
) { tags ->
GalleryFilterType(tags = tags)
}
Expand All @@ -81,7 +81,7 @@ class TagFragment : TabbedFragment(DataType.TAG.name) {
createStashGridFragment(
tag.id,
dataType = DataType.IMAGE,
server.serverPreferences.getDefaultFilter(PageFilterKey.TAG_IMAGES).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.TAG_IMAGES).findFilter,
) { tags ->
ImageFilterType(tags = tags)
}
Expand All @@ -90,7 +90,7 @@ class TagFragment : TabbedFragment(DataType.TAG.name) {
createStashGridFragment(
tag.id,
dataType = DataType.MARKER,
server.serverPreferences.getDefaultFilter(PageFilterKey.TAG_MARKERS).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.TAG_MARKERS).findFilter,
) { tags ->
SceneMarkerFilterType(tags = tags)
}
Expand All @@ -99,7 +99,7 @@ class TagFragment : TabbedFragment(DataType.TAG.name) {
createStashGridFragment(
tag.id,
dataType = DataType.PERFORMER,
server.serverPreferences.getDefaultFilter(PageFilterKey.TAG_PERFORMERS).findFilter,
server.serverPreferences.getDefaultPageFilter(PageFilterKey.TAG_PERFORMERS).findFilter,
) { tags ->
PerformerFilterType(tags = tags)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,13 @@ class StashImageCardView(
if (videoPreviewAudio) {
player.volume = 1f
} else {
if (C.TRACK_TYPE_AUDIO !in player.trackSelectionParameters.disabledTrackTypes) {
player.trackSelectionParameters =
player.trackSelectionParameters
.buildUpon()
.setTrackTypeDisabled(C.TRACK_TYPE_AUDIO, true)
.build()
}
player.volume = 0f
}
player.prepare()
Expand Down
Loading

0 comments on commit 052acd5

Please # to comment.