Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit ff40998e authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé Committed by GitHub
Browse files

Merge pull request #9186 from shamim-emon/fix-issue-9185

Add Switch to PreferenceSetting
parents 78834dc8 0ce0a9f1
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
package net.thunderbird.core.ui.compose.preference.ui.components.list

import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes
import net.thunderbird.core.ui.compose.preference.ui.fake.FakePreferenceData

@Composable
@Preview(showBackground = true)
internal fun Preview_Switch_On_Enabled() {
    PreviewWithThemes {
        PreferenceItemSwitchView(
            preference = FakePreferenceData.switchPreference,
            onPreferenceChange = {},
        )
    }
}

@Composable
@Preview(showBackground = true)
internal fun Preview_Switch_Off_Enabled() {
    PreviewWithThemes {
        PreferenceItemSwitchView(
            preference = FakePreferenceData.switchPreference.copy(value = false),
            onPreferenceChange = {},
        )
    }
}

@Composable
@Preview(showBackground = true)
internal fun Preview_Switch_On_Disabled() {
    PreviewWithThemes {
        PreferenceItemSwitchView(
            preference = FakePreferenceData.switchPreference.copy(enabled = false),
            onPreferenceChange = {},
        )
    }
}

@Composable
@Preview(showBackground = true)
internal fun Preview_Switch_Off_Disabled() {
    PreviewWithThemes {
        PreferenceItemSwitchView(
            preference = FakePreferenceData.switchPreference.copy(value = false, enabled = false),
            onPreferenceChange = {},
        )
    }
}
+9 −0
Original line number Diff line number Diff line
@@ -42,9 +42,18 @@ internal object FakePreferenceData {
        options = choices,
    )

    val switchPreference = PreferenceSetting.Switch(
        id = "switch",
        title = { "Title" },
        description = { "Description" },
        enabled = true,
        value = true,
    )

    val preferences = persistentListOf(
        textPreference,
        colorPreference,
        switchPreference,
        singleChoicePreference,
    )
}
+12 −0
Original line number Diff line number Diff line
@@ -65,6 +65,18 @@ sealed interface PreferenceSetting<T> : Preference {
            val title: () -> String,
        ) : Parcelable
    }

    @Parcelize
    data class Switch(
        override val id: String,
        val title: () -> String,
        val description: () -> String? = { null },
        val enabled: Boolean,
        override val value: Boolean,
    ) : PreferenceSetting<Boolean> {
        @IgnoredOnParcel
        override val requiresEditView: Boolean = false
    }
}

/**
+1 −1
Original line number Diff line number Diff line
@@ -39,6 +39,6 @@ internal fun PreferenceDialog(
        }

        // No dialog needed
        is PreferenceSetting.SingleChoice -> Unit
        is PreferenceSetting.SingleChoice, is PreferenceSetting.Switch -> Unit
    }
}
+8 −0
Original line number Diff line number Diff line
@@ -39,6 +39,14 @@ internal fun PreferenceItem(
            )
        }

        is PreferenceSetting.Switch -> {
            PreferenceItemSwitchView(
                preference = preference,
                onPreferenceChange = onPreferenceChange,
                modifier = modifier,
            )
        }

        // PreferenceDisplay
        is PreferenceDisplay.Custom -> {
            PreferenceItemCustomView(
Loading