fix: compose content can't be previewed due to accessing preferences in compose functions
- Access preferences in Activities instead - Fetch the dark theme status from the framework
This commit is contained in:
parent
a226dac725
commit
33e2ab5262
|
@ -1,6 +1,5 @@
|
|||
package org.fdroid.fdroid.compose
|
||||
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.heightIn
|
||||
import androidx.compose.foundation.layout.padding
|
||||
|
@ -23,24 +22,14 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import org.fdroid.fdroid.Preferences
|
||||
import org.fdroid.fdroid.ui.theme.AppTheme
|
||||
import java.util.Locale
|
||||
|
||||
object ComposeUtils {
|
||||
|
||||
|
||||
@Composable
|
||||
fun FDroidContent(content: @Composable () -> Unit) {
|
||||
val darkTheme = when (Preferences.get().theme) {
|
||||
Preferences.Theme.light -> false
|
||||
Preferences.Theme.dark -> true
|
||||
Preferences.Theme.followSystem -> isSystemInDarkTheme()
|
||||
Preferences.Theme.night -> true
|
||||
Preferences.Theme.lightWithDarkActionBar -> false
|
||||
}
|
||||
val pureBlack = Preferences.get().isPureBlack
|
||||
AppTheme(darkTheme = darkTheme, pureBlack = pureBlack) {
|
||||
Surface(content = content)
|
||||
}
|
||||
Surface(content = content)
|
||||
}
|
||||
|
||||
@Composable
|
||||
|
|
|
@ -41,14 +41,17 @@ import org.fdroid.fdroid.Preferences
|
|||
import org.fdroid.fdroid.R
|
||||
import org.fdroid.fdroid.compose.ComposeUtils
|
||||
import org.fdroid.fdroid.compose.ComposeUtils.FDroidContent
|
||||
import org.fdroid.fdroid.ui.theme.AppTheme
|
||||
|
||||
class IpfsGatewayAddActivity : AppCompatActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
val pureBlack = Preferences.get().isPureBlack
|
||||
|
||||
setContent {
|
||||
FDroidContent {
|
||||
AppTheme(pureBlack = pureBlack) {
|
||||
IpfsGatewayAddScreen(onBackClicked = { onBackPressedDispatcher.onBackPressed() },
|
||||
onAddUserGateway = { url ->
|
||||
// don't allow adding default gateways to the user gateways list
|
||||
|
|
|
@ -46,6 +46,7 @@ import org.fdroid.fdroid.R
|
|||
import org.fdroid.fdroid.compose.ComposeUtils
|
||||
import org.fdroid.fdroid.compose.ComposeUtils.FDroidContent
|
||||
import org.fdroid.fdroid.compose.ComposeUtils.LifecycleEventListener
|
||||
import org.fdroid.fdroid.ui.theme.AppTheme
|
||||
|
||||
class IpfsGatewaySettingsActivity : AppCompatActivity() {
|
||||
|
||||
|
@ -55,11 +56,14 @@ class IpfsGatewaySettingsActivity : AppCompatActivity() {
|
|||
super.onCreate(savedInstanceState)
|
||||
|
||||
prefs = Preferences.get()
|
||||
val pureBlack = prefs.isPureBlack
|
||||
|
||||
setContent {
|
||||
FDroidContent {
|
||||
IpfsGatewaySettingsScreen(prefs = prefs,
|
||||
onBackClicked = { onBackPressedDispatcher.onBackPressed() })
|
||||
AppTheme(pureBlack = pureBlack) {
|
||||
FDroidContent {
|
||||
IpfsGatewaySettingsScreen(prefs = prefs,
|
||||
onBackClicked = { onBackPressedDispatcher.onBackPressed() })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,9 +36,11 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.core.os.LocaleListCompat
|
||||
import androidx.core.util.Consumer
|
||||
import org.fdroid.database.Repository
|
||||
import org.fdroid.fdroid.Preferences
|
||||
import org.fdroid.fdroid.R
|
||||
import org.fdroid.fdroid.compose.ComposeUtils.FDroidContent
|
||||
import org.fdroid.fdroid.compose.ComposeUtils.FDroidOutlineButton
|
||||
import org.fdroid.fdroid.ui.theme.AppTheme
|
||||
import org.fdroid.fdroid.views.repos.RepoIcon
|
||||
import org.fdroid.index.IndexFormatVersion.TWO
|
||||
|
||||
|
@ -53,15 +55,19 @@ fun setContentRepoChooser(
|
|||
onRepoChanged: Consumer<Repository>,
|
||||
onPreferredRepoChanged: Consumer<Long>,
|
||||
) {
|
||||
val pureBlack = Preferences.get().isPureBlack
|
||||
|
||||
composeView.setContent {
|
||||
FDroidContent {
|
||||
RepoChooser(
|
||||
repos = repos,
|
||||
currentRepoId = currentRepoId,
|
||||
preferredRepoId = preferredRepoId,
|
||||
onRepoChanged = onRepoChanged::accept,
|
||||
onPreferredRepoChanged = onPreferredRepoChanged::accept,
|
||||
)
|
||||
AppTheme(pureBlack = pureBlack) {
|
||||
FDroidContent {
|
||||
RepoChooser(
|
||||
repos = repos,
|
||||
currentRepoId = currentRepoId,
|
||||
preferredRepoId = preferredRepoId,
|
||||
onRepoChanged = onRepoChanged::accept,
|
||||
onPreferredRepoChanged = onPreferredRepoChanged::accept,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.fdroid.fdroid.R
|
|||
import org.fdroid.fdroid.UpdateService
|
||||
import org.fdroid.fdroid.compose.ComposeUtils.FDroidContent
|
||||
import org.fdroid.fdroid.nearby.SwapService
|
||||
import org.fdroid.fdroid.ui.theme.AppTheme
|
||||
import org.fdroid.fdroid.views.apps.AppListActivity
|
||||
import org.fdroid.fdroid.views.apps.AppListActivity.EXTRA_REPO_ID
|
||||
import org.fdroid.index.RepoManager
|
||||
|
@ -53,19 +54,24 @@ class AddRepoActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
val pureBlack = Preferences.get().isPureBlack
|
||||
|
||||
setContent {
|
||||
FDroidContent {
|
||||
val state = repoManager.addRepoState.collectAsState().value
|
||||
BackHandler(state is AddRepoError) {
|
||||
// reset state when going back on error screen
|
||||
repoManager.abortAddingRepository()
|
||||
AppTheme(pureBlack = pureBlack) {
|
||||
FDroidContent {
|
||||
val state = repoManager.addRepoState.collectAsState().value
|
||||
BackHandler(state is AddRepoError) {
|
||||
// reset state when going back on error screen
|
||||
repoManager.abortAddingRepository()
|
||||
}
|
||||
AddRepoIntroScreen(
|
||||
state = state,
|
||||
onFetchRepo = this::onFetchRepo,
|
||||
onAddRepo = { repoManager.addFetchedRepository() },
|
||||
onBackClicked = { onBackPressedDispatcher.onBackPressed() },
|
||||
)
|
||||
}
|
||||
AddRepoIntroScreen(
|
||||
state = state,
|
||||
onFetchRepo = this::onFetchRepo,
|
||||
onAddRepo = { repoManager.addFetchedRepository() },
|
||||
onBackClicked = { onBackPressedDispatcher.onBackPressed() },
|
||||
)
|
||||
}
|
||||
}
|
||||
addOnNewIntentListener { intent ->
|
||||
|
|
Loading…
Reference in New Issue