mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 15:50:16 +02:00
Remove PIN & sign-in auto settings (#397)
Unfortunately, I think the PIN and automatic sign-in features require more thought before it should be rolled out as a stable feature. This PR disables the two settings and removes them from the UI. See discussions in #321 and will reopen #268
This commit is contained in:
parent
fa141adc60
commit
82927d1968
3 changed files with 50 additions and 47 deletions
|
|
@ -1,7 +1,6 @@
|
|||
package com.github.damontecres.wholphin
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.foundation.background
|
||||
|
|
@ -10,7 +9,6 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
|
|
@ -45,7 +43,6 @@ import com.github.damontecres.wholphin.services.UpdateChecker
|
|||
import com.github.damontecres.wholphin.services.hilt.AuthOkHttpClient
|
||||
import com.github.damontecres.wholphin.ui.CoilConfig
|
||||
import com.github.damontecres.wholphin.ui.LocalImageUrlService
|
||||
import com.github.damontecres.wholphin.ui.isNotNullOrBlank
|
||||
import com.github.damontecres.wholphin.ui.launchIO
|
||||
import com.github.damontecres.wholphin.ui.nav.ApplicationContent
|
||||
import com.github.damontecres.wholphin.ui.nav.Destination
|
||||
|
|
@ -53,8 +50,6 @@ import com.github.damontecres.wholphin.ui.theme.WholphinTheme
|
|||
import com.github.damontecres.wholphin.util.DebugLogTree
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.firstOrNull
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jellyfin.sdk.model.serializer.toUUIDOrNull
|
||||
|
|
@ -146,7 +141,8 @@ class MainActivity : AppCompatActivity() {
|
|||
) {
|
||||
var isRestoringSession by remember { mutableStateOf(true) }
|
||||
LaunchedEffect(Unit) {
|
||||
if (appPreferences.signInAutomatically) {
|
||||
// TODO PIN-related
|
||||
// if (appPreferences.signInAutomatically) {
|
||||
try {
|
||||
serverRepository.restoreSession(
|
||||
appPreferences.currentServerId?.toUUIDOrNull(),
|
||||
|
|
@ -155,7 +151,7 @@ class MainActivity : AppCompatActivity() {
|
|||
} catch (ex: Exception) {
|
||||
Timber.e(ex, "Exception restoring session")
|
||||
}
|
||||
}
|
||||
// }
|
||||
isRestoringSession = false
|
||||
}
|
||||
val current by serverRepository.current.observeAsState()
|
||||
|
|
@ -177,32 +173,34 @@ class MainActivity : AppCompatActivity() {
|
|||
)
|
||||
}
|
||||
} else {
|
||||
DisposableEffect(Unit) {
|
||||
onDispose {
|
||||
if (!appPreferences.signInAutomatically || current?.user?.hasPin == true) {
|
||||
serverRepository.closeSession()
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO PIN-related
|
||||
// DisposableEffect(Unit) {
|
||||
// onDispose {
|
||||
// if (!appPreferences.signInAutomatically || current?.user?.hasPin == true) {
|
||||
// serverRepository.closeSession()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
key(current?.server?.id, current?.user?.id) {
|
||||
LaunchedEffect(current?.user?.pin) {
|
||||
if (current?.user?.pin?.isNotNullOrBlank() == true) {
|
||||
// If user has a pin, then obscure the window in previews
|
||||
window?.setFlags(
|
||||
WindowManager.LayoutParams.FLAG_SECURE,
|
||||
WindowManager.LayoutParams.FLAG_SECURE,
|
||||
)
|
||||
} else {
|
||||
window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
}
|
||||
// TODO PIN-related
|
||||
// LaunchedEffect(current?.user?.pin) {
|
||||
// if (current?.user?.pin?.isNotNullOrBlank() == true) {
|
||||
// // If user has a pin, then obscure the window in previews
|
||||
// window?.setFlags(
|
||||
// WindowManager.LayoutParams.FLAG_SECURE,
|
||||
// WindowManager.LayoutParams.FLAG_SECURE,
|
||||
// )
|
||||
// } else {
|
||||
// window?.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
// }
|
||||
// }
|
||||
val initialDestination =
|
||||
when {
|
||||
current != null -> Destination.Home()
|
||||
|
||||
!appPreferences.signInAutomatically -> Destination.ServerList
|
||||
// TODO PIN-related
|
||||
// !appPreferences.signInAutomatically -> Destination.ServerList
|
||||
|
||||
// TODO user list?
|
||||
else -> Destination.ServerList
|
||||
}
|
||||
val backStack = rememberNavBackStack(initialDestination)
|
||||
|
|
@ -249,11 +247,12 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
override fun onRestart() {
|
||||
super.onRestart()
|
||||
val signInAutomatically =
|
||||
runBlocking { userPreferencesDataStore.data.firstOrNull()?.signInAutomatically } ?: true
|
||||
Timber.i("onRestart: signInAutomatically=$signInAutomatically")
|
||||
if (!signInAutomatically || serverRepository.currentUser.value?.hasPin == true) {
|
||||
serverRepository.closeSession()
|
||||
}
|
||||
// TODO PIN-related
|
||||
// val signInAutomatically =
|
||||
// runBlocking { userPreferencesDataStore.data.firstOrNull()?.signInAutomatically } ?: true
|
||||
// Timber.i("onRestart: signInAutomatically=$signInAutomatically")
|
||||
// if (!signInAutomatically || serverRepository.currentUser.value?.hasPin == true) {
|
||||
// serverRepository.closeSession()
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -793,7 +793,8 @@ val basicPreferences =
|
|||
title = R.string.ui_interface,
|
||||
preferences =
|
||||
listOf(
|
||||
AppPreference.SignInAuto,
|
||||
// TODO PIN-related
|
||||
// AppPreference.SignInAuto,
|
||||
AppPreference.HomePageItems,
|
||||
AppPreference.CombineContinueNext,
|
||||
AppPreference.RewatchNextUp,
|
||||
|
|
@ -826,7 +827,8 @@ val basicPreferences =
|
|||
title = R.string.profile_specific_settings,
|
||||
preferences =
|
||||
listOf(
|
||||
AppPreference.RequireProfilePin,
|
||||
// TODO PIN-related
|
||||
// AppPreference.RequireProfilePin,
|
||||
AppPreference.UserPinnedNavDrawerItems,
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -119,11 +119,13 @@ fun SwitchUserContent(
|
|||
users = users,
|
||||
currentUser = currentUser,
|
||||
onSwitchUser = { user ->
|
||||
if (user.pin.isNotNullOrBlank()) {
|
||||
switchUserWithPin = user
|
||||
} else {
|
||||
// TODO PIN-related
|
||||
// if (user.pin.isNotNullOrBlank()) {
|
||||
// switchUserWithPin = user
|
||||
// } else {
|
||||
// viewModel.switchUser(user)
|
||||
// }
|
||||
viewModel.switchUser(user)
|
||||
}
|
||||
},
|
||||
onAddUser = { showAddUser = true },
|
||||
onRemoveUser = { user ->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue