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

Unverified Commit 5222c13a authored by Sunik Kupfer's avatar Sunik Kupfer Committed by Ricki Hirner
Browse files

Support read-only task lists for Tasks.org (bitfireAT/davx5#160)



* [WIP] save task list access level to android task list for tasks.org to use
* Disrecommend using OpenTasks in selection dialog
* Update string, use matching ical4android

Co-authored-by: default avatarRicki Hirner <hirner@bitfire.at>
parent b17b38ff
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -17,8 +17,9 @@ import at.bitfire.davdroid.log.Logger
import at.bitfire.ical4android.AndroidTaskList
import at.bitfire.ical4android.AndroidTaskListFactory
import at.bitfire.ical4android.TaskProvider
import org.dmfs.tasks.contract.TaskContract.TaskLists
import org.dmfs.tasks.contract.TaskContract.Tasks
import org.dmfs.tasks.contract.TaskContract.TaskLists
import org.dmfs.tasks.contract.TaskContract.TaskListColumns
import java.util.logging.Level

class LocalTaskList private constructor(
@@ -59,6 +60,11 @@ class LocalTaskList private constructor(
            if (withColor)
                values.put(TaskLists.LIST_COLOR, info.color ?: Constants.DAVDROID_GREEN_RGBA)

            if (info.privWriteContent && !info.forceReadOnly)
                values.put(TaskListColumns.ACCESS_LEVEL, TaskListColumns.ACCESS_LEVEL_OWNER)
            else
                values.put(TaskListColumns.ACCESS_LEVEL, TaskListColumns.ACCESS_LEVEL_READ)

            return values
        }

+30 −30
Original line number Diff line number Diff line
@@ -116,69 +116,69 @@
                        app:layout_constraintEnd_toEndOf="@id/end"/>

                    <RadioButton
                        android:id="@+id/openTasksRadio"
                        android:id="@+id/tasksOrgRadio"
                        style="@style/TextAppearance.MaterialComponents.Body1"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/card_margin_title_text"
                        android:checked="@={model.openTasksSelected}"
                        android:clickable="@{model.openTasksInstalled}"
                        android:text="@string/intro_tasks_opentasks"
                        android:checked="@={model.tasksOrgSelected}"
                        android:clickable="@{model.tasksOrgInstalled}"
                        android:text="@string/intro_tasks_tasks_org"
                        android:textAlignment="viewStart"
                        app:layout_constraintEnd_toStartOf="@id/openTasksSwitch"
                        app:layout_constraintEnd_toStartOf="@id/tasksOrgSwitch"
                        app:layout_constraintStart_toStartOf="@id/start"
                        app:layout_constraintTop_toBottomOf="@id/jtxInfo" />
                    <TextView
                        android:id="@+id/openTasksInfo"
                        android:id="@+id/tasksOrgInfo"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        app:layout_constraintTop_toBottomOf="@id/openTasksRadio"
                        app:layout_constraintTop_toBottomOf="@id/tasksOrgRadio"
                        app:layout_constraintStart_toStartOf="@id/start"
                        app:layout_constraintEnd_toStartOf="@id/end"
                        style="@style/TextAppearance.MaterialComponents.Body2"
                        app:html="@{@string/intro_tasks_opentasks_info}"/>
                        app:html="@{@string/intro_tasks_tasks_org_info}" />
                    <com.google.android.material.switchmaterial.SwitchMaterial
                        android:id="@+id/openTasksSwitch"
                        android:id="@+id/tasksOrgSwitch"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:checked="@={model.openTasksRequested}"
                        android:clickable="@{!model.openTasksInstalled}"
                        app:layout_constraintTop_toTopOf="@id/openTasksRadio"
                        app:layout_constraintBottom_toBottomOf="@id/openTasksRadio"
                        app:layout_constraintStart_toEndOf="@id/openTasksRadio"
                        android:checked="@={model.tasksOrgRequested}"
                        android:clickable="@{!model.tasksOrgInstalled}"
                        app:layout_constraintTop_toTopOf="@id/tasksOrgRadio"
                        app:layout_constraintBottom_toBottomOf="@id/tasksOrgRadio"
                        app:layout_constraintStart_toEndOf="@id/tasksOrgRadio"
                        app:layout_constraintEnd_toEndOf="@id/end"/>

                    <RadioButton
                        android:id="@+id/tasksOrgRadio"
                        android:id="@+id/openTasksRadio"
                        style="@style/TextAppearance.MaterialComponents.Body1"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/card_margin_title_text"
                        android:checked="@={model.tasksOrgSelected}"
                        android:clickable="@{model.tasksOrgInstalled}"
                        android:text="@string/intro_tasks_tasks_org"
                        android:checked="@={model.openTasksSelected}"
                        android:clickable="@{model.openTasksInstalled}"
                        android:text="@string/intro_tasks_opentasks"
                        android:textAlignment="viewStart"
                        app:layout_constraintEnd_toStartOf="@id/tasksOrgSwitch"
                        app:layout_constraintEnd_toStartOf="@id/openTasksSwitch"
                        app:layout_constraintStart_toStartOf="@id/start"
                        app:layout_constraintTop_toBottomOf="@id/openTasksInfo" />
                        app:layout_constraintTop_toBottomOf="@id/tasksOrgInfo" />
                    <TextView
                        android:id="@+id/tasksOrgInfo"
                        android:id="@+id/openTasksInfo"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        app:layout_constraintTop_toBottomOf="@id/tasksOrgRadio"
                        app:layout_constraintTop_toBottomOf="@id/openTasksRadio"
                        app:layout_constraintStart_toStartOf="@id/start"
                        app:layout_constraintEnd_toStartOf="@id/end"
                        style="@style/TextAppearance.MaterialComponents.Body2"
                        app:html="@{@string/intro_tasks_tasks_org_info}" />
                        app:html="@{@string/intro_tasks_opentasks_info}"/>
                    <com.google.android.material.switchmaterial.SwitchMaterial
                        android:id="@+id/tasksOrgSwitch"
                        android:id="@+id/openTasksSwitch"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:checked="@={model.tasksOrgRequested}"
                        android:clickable="@{!model.tasksOrgInstalled}"
                        app:layout_constraintTop_toTopOf="@id/tasksOrgRadio"
                        app:layout_constraintBottom_toBottomOf="@id/tasksOrgRadio"
                        app:layout_constraintStart_toEndOf="@id/tasksOrgRadio"
                        android:checked="@={model.openTasksRequested}"
                        android:clickable="@{!model.openTasksInstalled}"
                        app:layout_constraintTop_toTopOf="@id/openTasksRadio"
                        app:layout_constraintBottom_toBottomOf="@id/openTasksRadio"
                        app:layout_constraintStart_toEndOf="@id/openTasksRadio"
                        app:layout_constraintEnd_toEndOf="@id/end"/>

                    <CheckBox
@@ -192,7 +192,7 @@
                        android:visibility="@{model.openTasksInstalled ? View.GONE : View.VISIBLE}"
                        app:layout_constraintEnd_toEndOf="@id/end"
                        app:layout_constraintStart_toStartOf="@id/start"
                        app:layout_constraintTop_toBottomOf="@id/tasksOrgInfo" />
                        app:layout_constraintTop_toBottomOf="@id/openTasksInfo" />

                </androidx.constraintlayout.widget.ConstraintLayout>

+2 −2
Original line number Diff line number Diff line
@@ -50,8 +50,8 @@
    <string name="intro_tasks_title">Tasks support</string>
    <string name="intro_tasks_text1">If tasks are supported by your server, they can be synchronized with a supported tasks app:</string>
    <string name="intro_tasks_opentasks">OpenTasks</string>
    <string name="intro_tasks_opentasks_info"><![CDATA[For some features like subtasks or recurring tasks, you may need <a href="https://www.davx5.com/faq/tasks/advanced-task-features">additional apps</a>.]]></string>
    <string name="intro_tasks_tasks_org">Tasks</string>
    <string name="intro_tasks_opentasks_info">Doesn\'t seem to be developed anymore – not recommended.</string>
    <string name="intro_tasks_tasks_org">Tasks.org</string>
    <string name="intro_tasks_tasks_org_info"><![CDATA[Some features <a href="https://www.davx5.com/faq/tasks/advanced-task-features">are not supported</a> (yet).]]></string>
    <string name="intro_tasks_no_app_store">No app store available</string>
    <string name="intro_tasks_dont_show">I don\'t need tasks support.*</string>
Compare 2964f7e4 to f1969808
Original line number Diff line number Diff line
Subproject commit 2964f7e48f0fdb8a339d8d84db6b33672f101c12
Subproject commit f1969808ad24eae1bb73b1cba29c10c5c2a7c653