diff --git a/app/src/main/java/org/tasks/compose/AddAccountDialog.kt b/app/src/main/java/org/tasks/compose/AddAccountDialog.kt
index 91ddc57e3..9a06f6c98 100644
--- a/app/src/main/java/org/tasks/compose/AddAccountDialog.kt
+++ b/app/src/main/java/org/tasks/compose/AddAccountDialog.kt
@@ -8,7 +8,6 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
-import org.tasks.BuildConfig
import org.tasks.R
import org.tasks.sync.AddAccountDialog.Platform
import org.tasks.themes.TasksTheme
@@ -17,6 +16,7 @@ import org.tasks.themes.TasksTheme
fun AddAccountDialog(
hasTasksAccount: Boolean,
hasPro: Boolean,
+ enableMicrosoftSync: Boolean = true,
selected: (Platform) -> Unit,
) {
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
@@ -36,7 +36,7 @@ fun AddAccountDialog(
icon = R.drawable.ic_google,
onClick = { selected(Platform.GOOGLE_TASKS) }
)
- if (BuildConfig.DEBUG) {
+ if (enableMicrosoftSync) {
SyncAccount(
title = R.string.microsoft,
cost = if (hasPro) null else R.string.cost_free,
diff --git a/app/src/main/java/org/tasks/sync/AddAccountDialog.kt b/app/src/main/java/org/tasks/sync/AddAccountDialog.kt
index 7ec1436e0..280d39cca 100644
--- a/app/src/main/java/org/tasks/sync/AddAccountDialog.kt
+++ b/app/src/main/java/org/tasks/sync/AddAccountDialog.kt
@@ -9,6 +9,7 @@ import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.dialogs.DialogBuilder
import org.tasks.extensions.Context.openUri
+import org.tasks.preferences.Preferences
import org.tasks.themes.TasksTheme
import org.tasks.themes.Theme
import javax.inject.Inject
@@ -18,6 +19,7 @@ class AddAccountDialog : DialogFragment() {
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var theme: Theme
+ @Inject lateinit var preferences: Preferences
private val hasTasksAccount: Boolean
get() = arguments?.getBoolean(EXTRA_HAS_TASKS_ACCOUNT) ?: false
@@ -43,6 +45,7 @@ class AddAccountDialog : DialogFragment() {
TasksTheme(theme = theme.themeBase.index) {
org.tasks.compose.AddAccountDialog(
hasTasksAccount = hasTasksAccount,
+ enableMicrosoftSync = preferences.getBoolean(R.string.p_microsoft_sync, false),
hasPro = hasPro,
selected = this::selected
)
diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml
index cb698ffd1..c4c8f9fa5 100644
--- a/app/src/main/res/values/keys.xml
+++ b/app/src/main/res/values/keys.xml
@@ -435,4 +435,5 @@
completed_tasks_at_bottom
shown_beast_mode_hint
last_sync_time
+ microsoft_sync
diff --git a/app/src/main/res/xml/preferences_advanced.xml b/app/src/main/res/xml/preferences_advanced.xml
index d2b347181..8dcccb1d1 100644
--- a/app/src/main/res/xml/preferences_advanced.xml
+++ b/app/src/main/res/xml/preferences_advanced.xml
@@ -2,6 +2,12 @@
+
+