diff --git a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt index 31fd76a30..24d2fca14 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt @@ -129,7 +129,7 @@ class MainActivity : AppCompatActivity() { binding.composeView.setContent { if (viewModel.drawerOpen.collectAsStateWithLifecycle().value) { - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { val sheetState = rememberModalBottomSheetState( skipPartiallyExpanded = true, confirmValueChange = { true }, diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt index 4d840d959..7d70d27d1 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -143,6 +143,7 @@ import org.tasks.tasklist.TasksResults import org.tasks.tasklist.ViewHolderFactory import org.tasks.themes.ColorProvider import org.tasks.themes.TasksTheme +import org.tasks.themes.Theme import org.tasks.themes.ThemeColor import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.ui.TaskEditEvent @@ -185,6 +186,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL @Inject lateinit var taskEditEventBus: TaskEditEventBus @Inject lateinit var database: Database @Inject lateinit var markdown: MarkdownProvider + @Inject lateinit var theme: Theme private val listViewModel: TaskListViewModel by viewModels() private val mainViewModel: MainActivityViewModel by activityViewModels() @@ -363,7 +365,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL binding.banner.setContent { val context = LocalContext.current val state = listViewModel.state.collectAsStateWithLifecycle().value - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { val hasRemindersPermission by rememberReminderPermissionState() val notificationPermissions = if (AndroidUtilities.atLeastTiramisu()) { rememberPermissionState( diff --git a/app/src/main/java/org/tasks/activities/BaseListSettingsActivity.kt b/app/src/main/java/org/tasks/activities/BaseListSettingsActivity.kt index 566964060..d39d9a378 100644 --- a/app/src/main/java/org/tasks/activities/BaseListSettingsActivity.kt +++ b/app/src/main/java/org/tasks/activities/BaseListSettingsActivity.kt @@ -63,7 +63,7 @@ abstract class BaseListSettingsActivity : ThemedInjectingAppCompatActivity(), To setOnClickListener { showThemePicker() } } findViewById(R.id.icon).setContent { - TasksTheme { + TasksTheme(theme = tasksTheme.themeBase.index) { Row( verticalAlignment = Alignment.CenterVertically, ) { diff --git a/app/src/main/java/org/tasks/auth/SignInActivity.kt b/app/src/main/java/org/tasks/auth/SignInActivity.kt index 35c7e6f1f..7c94eba8f 100644 --- a/app/src/main/java/org/tasks/auth/SignInActivity.kt +++ b/app/src/main/java/org/tasks/auth/SignInActivity.kt @@ -30,7 +30,14 @@ import androidx.lifecycle.lifecycleScope import at.bitfire.dav4jvm.exception.HttpException import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch -import net.openid.appauth.* +import net.openid.appauth.AuthState +import net.openid.appauth.AuthorizationException +import net.openid.appauth.AuthorizationRequest +import net.openid.appauth.AuthorizationServiceConfiguration +import net.openid.appauth.ClientSecretBasic +import net.openid.appauth.RegistrationRequest +import net.openid.appauth.RegistrationResponse +import net.openid.appauth.ResponseTypeValues import org.tasks.R import org.tasks.Tasks.Companion.IS_GENERIC import org.tasks.analytics.Firebase @@ -42,7 +49,7 @@ import org.tasks.compose.SignInDialog import org.tasks.dialogs.DialogBuilder import org.tasks.extensions.Context.openUri import org.tasks.themes.TasksTheme -import org.tasks.themes.ThemeColor +import org.tasks.themes.Theme import timber.log.Timber import java.util.concurrent.CountDownLatch import java.util.concurrent.ExecutorService @@ -61,7 +68,7 @@ import javax.inject.Inject */ @AndroidEntryPoint class SignInActivity : ComponentActivity() { - @Inject lateinit var themeColor: ThemeColor + @Inject lateinit var theme: Theme @Inject lateinit var inventory: Inventory @Inject lateinit var dialogBuilder: DialogBuilder @Inject lateinit var firebase: Firebase @@ -98,7 +105,7 @@ class SignInActivity : ComponentActivity() { var selectedPlatform by rememberSaveable { mutableStateOf(autoSelect) } - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { selectedPlatform ?.let { Dialog(onDismissRequest = { finish() }) { @@ -349,7 +356,7 @@ class SignInActivity : ComponentActivity() { Timber.i("Warming up browser instance for auth request") mAuthIntent.set(authService.createCustomTabsIntent( mAuthRequest.get().toUri(), - themeColor.primaryColor + theme.themeColor.primaryColor )) mAuthIntentLatch.countDown() } diff --git a/app/src/main/java/org/tasks/billing/PurchaseActivity.kt b/app/src/main/java/org/tasks/billing/PurchaseActivity.kt index 5d75e05cb..c9bb71d7b 100644 --- a/app/src/main/java/org/tasks/billing/PurchaseActivity.kt +++ b/app/src/main/java/org/tasks/billing/PurchaseActivity.kt @@ -56,7 +56,7 @@ class PurchaseActivity : AppCompatActivity(), OnPurchasesUpdated { } setContent { - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { BackHandler { finish() } diff --git a/app/src/main/java/org/tasks/caldav/BaseCaldavAccountSettingsActivity.kt b/app/src/main/java/org/tasks/caldav/BaseCaldavAccountSettingsActivity.kt index 22dc264a5..93d60eed9 100644 --- a/app/src/main/java/org/tasks/caldav/BaseCaldavAccountSettingsActivity.kt +++ b/app/src/main/java/org/tasks/caldav/BaseCaldavAccountSettingsActivity.kt @@ -24,7 +24,6 @@ import at.bitfire.dav4jvm.exception.HttpException import com.franmontiel.persistentcookiejar.persistence.CookiePersistor import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar -import org.tasks.data.entity.Task import com.todoroo.astrid.service.TaskDeleter import kotlinx.coroutines.launch import okhttp3.HttpUrl.Companion.toHttpUrlOrNull @@ -34,9 +33,10 @@ import org.tasks.analytics.Firebase import org.tasks.billing.Inventory import org.tasks.billing.PurchaseActivity import org.tasks.compose.ServerSelector +import org.tasks.data.dao.CaldavDao import org.tasks.data.entity.CaldavAccount import org.tasks.data.entity.CaldavAccount.Companion.SERVER_UNKNOWN -import org.tasks.data.dao.CaldavDao +import org.tasks.data.entity.Task import org.tasks.databinding.ActivityCaldavAccountSettingsBinding import org.tasks.dialogs.DialogBuilder import org.tasks.dialogs.Linkify @@ -138,7 +138,7 @@ abstract class BaseCaldavAccountSettingsActivity : ThemedInjectingAppCompatActiv ) binding.password.setOnFocusChangeListener { _, hasFocus -> onPasswordFocused(hasFocus) } binding.serverSelector.setContent { - TasksTheme { + TasksTheme(theme = tasksTheme.themeBase.index) { var selected by rememberSaveable { serverType } ServerSelector(selected) { serverType.value = it diff --git a/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.kt b/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.kt index 2716b32af..e64a7d961 100644 --- a/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.kt +++ b/app/src/main/java/org/tasks/caldav/CaldavCalendarSettingsActivity.kt @@ -53,7 +53,7 @@ class CaldavCalendarSettingsActivity : BaseCaldavCalendarSettingsActivity() { caldavCalendar?.takeIf { it.id > 0 }?.let { findViewById(R.id.people).setContent { - TasksTheme { + TasksTheme(theme = tasksTheme.themeBase.index) { val principals = principalDao.getPrincipals(it.id).collectAsStateWithLifecycle(initialValue = emptyList()).value PrincipalList( principals = principals, @@ -66,7 +66,7 @@ class CaldavCalendarSettingsActivity : BaseCaldavCalendarSettingsActivity() { findViewById(R.id.fab) .apply { isVisible = true } .setContent { - TasksTheme { + TasksTheme(theme = tasksTheme.themeBase.index) { val openDialog = rememberSaveable { mutableStateOf(false) } ShareInviteDialog( openDialog, diff --git a/app/src/main/java/org/tasks/calendars/CalendarPicker.kt b/app/src/main/java/org/tasks/calendars/CalendarPicker.kt index 346e99c15..a1ce5e29f 100644 --- a/app/src/main/java/org/tasks/calendars/CalendarPicker.kt +++ b/app/src/main/java/org/tasks/calendars/CalendarPicker.kt @@ -9,27 +9,32 @@ import androidx.fragment.app.Fragment import dagger.hilt.android.AndroidEntryPoint import org.tasks.compose.pickers.CalendarPicker import org.tasks.dialogs.DialogBuilder +import org.tasks.themes.TasksTheme +import org.tasks.themes.Theme import javax.inject.Inject @AndroidEntryPoint class CalendarPicker : DialogFragment() { @Inject lateinit var dialogBuilder: DialogBuilder + @Inject lateinit var theme: Theme override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { return dialogBuilder .newDialog() .setContent { - CalendarPicker( - selected = arguments?.getString(EXTRA_SELECTED), - onSelected = { - targetFragment!!.onActivityResult( - targetRequestCode, - Activity.RESULT_OK, - Intent().putExtra(EXTRA_CALENDAR_ID, it?.id) - ) - dismiss() - }, - ) + TasksTheme(theme = theme.themeBase.index) { + CalendarPicker( + selected = arguments?.getString(EXTRA_SELECTED), + onSelected = { + targetFragment!!.onActivityResult( + targetRequestCode, + Activity.RESULT_OK, + Intent().putExtra(EXTRA_CALENDAR_ID, it?.id) + ) + dismiss() + }, + ) + } } .show() } diff --git a/app/src/main/java/org/tasks/compose/IconPickerActivity.kt b/app/src/main/java/org/tasks/compose/IconPickerActivity.kt index 608186a74..e5dd1ded1 100644 --- a/app/src/main/java/org/tasks/compose/IconPickerActivity.kt +++ b/app/src/main/java/org/tasks/compose/IconPickerActivity.kt @@ -28,17 +28,19 @@ import org.tasks.billing.PurchaseActivity.Companion.EXTRA_NAME_YOUR_PRICE import org.tasks.compose.pickers.IconPicker import org.tasks.compose.pickers.IconPickerViewModel import org.tasks.themes.TasksTheme +import org.tasks.themes.Theme import javax.inject.Inject @AndroidEntryPoint class IconPickerActivity : AppCompatActivity() { @Inject lateinit var inventory: Inventory + @Inject lateinit var theme: Theme @OptIn(ExperimentalMaterial3Api::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { var hasPro by remember { mutableStateOf(false) } LifecycleEventEffect(Lifecycle.Event.ON_RESUME) { hasPro = inventory.hasPro diff --git a/app/src/main/java/org/tasks/compose/pickers/DatePickerDialog.kt b/app/src/main/java/org/tasks/compose/pickers/DatePickerDialog.kt index 368c7f09e..740c7ea5a 100644 --- a/app/src/main/java/org/tasks/compose/pickers/DatePickerDialog.kt +++ b/app/src/main/java/org/tasks/compose/pickers/DatePickerDialog.kt @@ -23,37 +23,35 @@ fun DatePickerDialog( selected: (Long) -> Unit, dismiss: () -> Unit, ) { - TasksTheme { - val initialDateUTC by remember(initialDate) { - derivedStateOf { - DateTime(initialDate).toUTC().millis - } + val initialDateUTC by remember(initialDate) { + derivedStateOf { + DateTime(initialDate).toUTC().millis } - val datePickerState = rememberDatePickerState( - initialSelectedDateMillis = initialDateUTC, - ) - androidx.compose.material3.DatePickerDialog( - onDismissRequest = { dismiss() }, - dismissButton = { - TextButton(onClick = dismiss) { - Text(text = stringResource(id = R.string.cancel)) - } - }, - confirmButton = { - TextButton( - onClick = { - datePickerState - .selectedDateMillis - ?.let { selected(it - DateTime(it).offset) } - dismiss() - } - ) { - Text(text = stringResource(id = R.string.ok)) + } + val datePickerState = rememberDatePickerState( + initialSelectedDateMillis = initialDateUTC, + ) + androidx.compose.material3.DatePickerDialog( + onDismissRequest = { dismiss() }, + dismissButton = { + TextButton(onClick = dismiss) { + Text(text = stringResource(id = R.string.cancel)) + } + }, + confirmButton = { + TextButton( + onClick = { + datePickerState + .selectedDateMillis + ?.let { selected(it - DateTime(it).offset) } + dismiss() } + ) { + Text(text = stringResource(id = R.string.ok)) } - ) { - DatePicker(state = datePickerState) } + ) { + DatePicker(state = datePickerState) } } diff --git a/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt b/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt index 8459eecdd..5a4d7ce00 100644 --- a/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt +++ b/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt @@ -8,7 +8,6 @@ import androidx.appcompat.app.AlertDialog import androidx.compose.runtime.Composable import androidx.compose.ui.platform.ComposeView import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.tasks.themes.TasksTheme class AlertDialogBuilder internal constructor(private val context: Context) { private val builder: AlertDialog.Builder @@ -72,9 +71,7 @@ class AlertDialogBuilder internal constructor(private val context: Context) { builder.setView(ComposeView(context) .apply { setContent { - TasksTheme { - content() - } + content() } } ) diff --git a/app/src/main/java/org/tasks/dialogs/SortSettingsActivity.kt b/app/src/main/java/org/tasks/dialogs/SortSettingsActivity.kt index 643c2e480..ed0201992 100644 --- a/app/src/main/java/org/tasks/dialogs/SortSettingsActivity.kt +++ b/app/src/main/java/org/tasks/dialogs/SortSettingsActivity.kt @@ -62,10 +62,14 @@ import kotlinx.coroutines.launch import org.tasks.R import org.tasks.compose.SystemBars import org.tasks.themes.TasksTheme +import org.tasks.themes.Theme +import javax.inject.Inject @AndroidEntryPoint class SortSettingsActivity : ComponentActivity() { + @Inject lateinit var theme: Theme + private val viewModel: SortSettingsViewModel by viewModels() @OptIn(ExperimentalMaterial3Api::class) @@ -74,7 +78,7 @@ class SortSettingsActivity : ComponentActivity() { WindowCompat.setDecorFitsSystemWindows(window, false) window.statusBarColor = ContextCompat.getColor(this, android.R.color.transparent) setContent { - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { val scrimColor = if (isSystemInDarkTheme()) Color(0x52454545) else diff --git a/app/src/main/java/org/tasks/repeats/CustomRecurrenceActivity.kt b/app/src/main/java/org/tasks/repeats/CustomRecurrenceActivity.kt index 98bc27bb7..d188977b9 100644 --- a/app/src/main/java/org/tasks/repeats/CustomRecurrenceActivity.kt +++ b/app/src/main/java/org/tasks/repeats/CustomRecurrenceActivity.kt @@ -10,15 +10,19 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import dagger.hilt.android.AndroidEntryPoint import org.tasks.compose.pickers.CustomRecurrence import org.tasks.themes.TasksTheme +import org.tasks.themes.Theme +import javax.inject.Inject @AndroidEntryPoint class CustomRecurrenceActivity : FragmentActivity() { + @Inject lateinit var theme: Theme + val viewModel: CustomRecurrenceViewModel by viewModels() override fun onPostCreate(savedInstanceState: Bundle?) { super.onPostCreate(savedInstanceState) setContent { - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { CustomRecurrence( state = viewModel.state.collectAsStateWithLifecycle().value, save = { diff --git a/app/src/main/java/org/tasks/sync/AddAccountDialog.kt b/app/src/main/java/org/tasks/sync/AddAccountDialog.kt index af52ccebc..51f285557 100644 --- a/app/src/main/java/org/tasks/sync/AddAccountDialog.kt +++ b/app/src/main/java/org/tasks/sync/AddAccountDialog.kt @@ -9,12 +9,15 @@ import dagger.hilt.android.AndroidEntryPoint import org.tasks.R import org.tasks.dialogs.DialogBuilder import org.tasks.extensions.Context.openUri +import org.tasks.themes.TasksTheme +import org.tasks.themes.Theme import javax.inject.Inject @AndroidEntryPoint class AddAccountDialog : DialogFragment() { @Inject lateinit var dialogBuilder: DialogBuilder + @Inject lateinit var theme: Theme private val hasTasksAccount: Boolean get() = arguments?.getBoolean(EXTRA_HAS_TASKS_ACCOUNT) ?: false @@ -34,10 +37,12 @@ class AddAccountDialog : DialogFragment() { .newDialog() .setTitle(R.string.choose_synchronization_service) .setContent { - org.tasks.compose.AddAccountDialog( - hasTasksAccount = hasTasksAccount, - selected = this::selected - ) + TasksTheme(theme = theme.themeBase.index) { + org.tasks.compose.AddAccountDialog( + hasTasksAccount = hasTasksAccount, + selected = this::selected + ) + } } .setNeutralButton(R.string.help) { _, _ -> activity?.openUri(R.string.help_url_sync) } .setNegativeButton(R.string.cancel, null) diff --git a/app/src/main/java/org/tasks/tags/TagPickerActivity.kt b/app/src/main/java/org/tasks/tags/TagPickerActivity.kt index 560bc0321..1d18b4c29 100644 --- a/app/src/main/java/org/tasks/tags/TagPickerActivity.kt +++ b/app/src/main/java/org/tasks/tags/TagPickerActivity.kt @@ -83,7 +83,7 @@ class TagPickerActivity : ThemedInjectingAppCompatActivity() { viewModel.search("") setContent { - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { TagPicker( viewModel, onBackClicked = { handleBackPressed() }, diff --git a/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt b/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt index 397426680..d9664dce6 100644 --- a/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt +++ b/app/src/main/java/org/tasks/tasklist/TaskViewHolder.kt @@ -41,6 +41,7 @@ import org.tasks.markdown.Markdown import org.tasks.preferences.Preferences import org.tasks.themes.TasksIcons import org.tasks.themes.TasksTheme +import org.tasks.themes.Theme import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.time.startOfDay import org.tasks.ui.CheckBoxProvider @@ -64,7 +65,8 @@ class TaskViewHolder internal constructor( private val rowPaddingDp: Int, private val rowPaddingPx: Int, private val linkify: Linkify, - private val markdown: Markdown + private val markdown: Markdown, + private val theme: Theme, ) : RecyclerView.ViewHolder(binding.root) { private val row: ViewGroup = binding.row private val dueDate: TextView = binding.dueDate.apply { @@ -255,7 +257,7 @@ class TaskViewHolder internal constructor( val toggleSubtasks = { task: Long, collapsed: Boolean -> callback.toggleSubtasks(task, collapsed) } val onClick = { it: Filter -> callback.onClick(it) } chipGroup.setContent { - TasksTheme { + TasksTheme(theme = theme.themeBase.index) { ChipGroup( modifier = Modifier.padding( end = 16.dp, diff --git a/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.kt b/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.kt index 13ab69b8c..0cf74a025 100644 --- a/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.kt +++ b/app/src/main/java/org/tasks/tasklist/ViewHolderFactory.kt @@ -14,17 +14,19 @@ import org.tasks.markdown.MarkdownProvider import org.tasks.preferences.Preferences import org.tasks.preferences.ResourceResolver import org.tasks.tasklist.TaskViewHolder.ViewHolderCallbacks +import org.tasks.themes.Theme import org.tasks.ui.CheckBoxProvider import org.tasks.ui.ChipProvider import javax.inject.Inject class ViewHolderFactory @Inject constructor( - @param:ActivityContext private val context: Context, - private val preferences: Preferences, - private val chipProvider: ChipProvider, - private val checkBoxProvider: CheckBoxProvider, - private val linkify: Linkify, - private val headerFormatter: HeaderFormatter, + @param:ActivityContext private val context: Context, + private val preferences: Preferences, + private val chipProvider: ChipProvider, + private val checkBoxProvider: CheckBoxProvider, + private val linkify: Linkify, + private val headerFormatter: HeaderFormatter, + private val theme: Theme, ) { private val textColorSecondary: Int = ResourceResolver.getData(context, android.R.attr.textColorSecondary) private val textColorOverdue: Int = context.getColor(R.color.overdue) @@ -47,21 +49,22 @@ class ViewHolderFactory @Inject constructor( fun newViewHolder(parent: ViewGroup?, callbacks: ViewHolderCallbacks) = TaskViewHolder( - context as Activity, - TaskAdapterRowBinding.inflate(LayoutInflater.from(context), parent, false), - preferences, - fontSize, - chipProvider, - checkBoxProvider, - textColorOverdue, - textColorSecondary, - callbacks, - metrics, - background, - selectedColor, - rowPaddingDp, - rowPaddingPx, - linkify, - markdown + context as Activity, + TaskAdapterRowBinding.inflate(LayoutInflater.from(context), parent, false), + preferences, + fontSize, + chipProvider, + checkBoxProvider, + textColorOverdue, + textColorSecondary, + callbacks, + metrics, + background, + selectedColor, + rowPaddingDp, + rowPaddingPx, + linkify, + markdown, + theme = theme, ) } \ No newline at end of file diff --git a/kmp/src/commonMain/kotlin/org/tasks/themes/TasksTheme.kt b/kmp/src/commonMain/kotlin/org/tasks/themes/TasksTheme.kt index c3897e93b..b38bc0a03 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/themes/TasksTheme.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/themes/TasksTheme.kt @@ -13,10 +13,29 @@ import androidx.compose.ui.graphics.luminance const val BLUE = -14575885 const val WHITE = -1 - @Composable fun ColorScheme.isDark() = this.background.luminance() <= 0.5 +private val lightColorScheme = lightColorScheme( + surface = Color.White, + background = Color.White, +) + +private val darkColorScheme = darkColorScheme( + surface = Color(0xFF202124), + background = Color(0xFF202124), +) + +private val blackColorScheme = darkColorScheme.copy( + background = Color.Black, + surface = Color.Black, +) + +private val wallpaperScheme = darkColorScheme.copy( + background = Color.Transparent, + surface = Color(0x99000000), +) + @Composable fun TasksTheme( theme: Int = 5, @@ -24,14 +43,11 @@ fun TasksTheme( content: @Composable () -> Unit, ) { val colorScheme = when (theme) { - 0 -> lightColorScheme() - 1 -> darkColorScheme( - surface = Color.Black, - background = Color.Black, - ) - - 2, 3 -> darkColorScheme() - else -> if (isSystemInDarkTheme()) darkColorScheme() else lightColorScheme() + 0 -> lightColorScheme + 1 -> blackColorScheme + 2 -> darkColorScheme + 3 -> wallpaperScheme + else -> if (isSystemInDarkTheme()) darkColorScheme else lightColorScheme } val colorOnPrimary = remember(primary) { if (calculateContrast(WHITE, primary) < 3) { @@ -48,4 +64,4 @@ fun TasksTheme( ) { content() } -} \ No newline at end of file +}