Two more bug fixes (#1521)

## Description
Fixes bugs:
- Follow up to #1487 since the 404 exception can be ignored in some
cases
- Fixes a only-on-main-thread exception when clearing the secure flag in
some cases

### Related issues
Related to #1469

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
This commit is contained in:
Damontecres 2026-06-05 10:01:08 -04:00 • committed by GitHub
parent 0842c35e34
commit e2a6ae6be4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 14 deletions

View file

@ -50,7 +50,6 @@ import com.github.damontecres.wholphin.services.hilt.AuthOkHttpClient
import com.github.damontecres.wholphin.services.tvprovider.TvProviderSchedulerService
import com.github.damontecres.wholphin.ui.CoilConfig
import com.github.damontecres.wholphin.ui.LocalImageUrlService
import com.github.damontecres.wholphin.ui.collectLatestIn
import com.github.damontecres.wholphin.ui.components.LoadingPage
import com.github.damontecres.wholphin.ui.detail.series.SeasonEpisodeIds
import com.github.damontecres.wholphin.ui.launchDefault
@ -169,16 +168,19 @@ class MainActivity : AppCompatActivity() {
navigationManager.backStack = NavBackStack(startDestination)
}
viewModel.serverRepository.currentUserFlow.collectLatestIn(lifecycleScope) { user ->
if (user?.hasPin == true) {
window?.setFlags(
WindowManager.LayoutParams.FLAG_SECURE,
WindowManager.LayoutParams.FLAG_SECURE,
)
} else {
window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
}
viewModel.serverRepository.currentUserFlow
.onEach { user ->
withContext(Dispatchers.Main) {
if (user?.hasPin == true) {
window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
} else {
window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
}
}.catch { ex ->
Timber.e(ex, "Error with settings flag secure")
}.launchIn(lifecycleScope)
screensaverService.keepScreenOn
.onEach { keepScreenOn ->
Timber.v("keepScreenOn: %s", keepScreenOn)

View file

@ -553,8 +553,10 @@ class HomeSettingsService
): StringProvider =
try {
api.userLibraryApi
.getItem(itemId = itemId)
.content.name
.getItem(
userId = serverRepository.currentUser?.id,
itemId = itemId,
).content.name
?.let {
if (stringRes == null) {
StringStringProvider(it)
@ -876,8 +878,15 @@ class HomeSettingsService
fields = DefaultItemFields,
)
// Not using getItemName because we want to throw the 404
val title =
getItemName(null, row.parentId, ResStringProvider(R.string.collection))
api.userLibraryApi
.getItem(
userId = serverRepository.currentUser?.id,
itemId = row.parentId,
).content.name
?.let { StringStringProvider(it) }
?: ResStringProvider(R.string.collection)
if (usePaging) {
ApiRequestPager(
api,