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: Ricki Hirner <hirner@bitfire.at>
This commit is contained in:
Sunik Kupfer 2022-11-24 17:31:56 +01:00 committed by Ricki Hirner
parent b17b38ff50
commit 5222c13a23
No known key found for this signature in database
GPG key ID: 79A019FCAAEDD3AA
4 changed files with 45 additions and 39 deletions

View file

@ -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
}

View file

@ -115,39 +115,6 @@
app:layout_constraintStart_toEndOf="@id/jtxRadio"
app:layout_constraintEnd_toEndOf="@id/end"/>
<RadioButton
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.openTasksSelected}"
android:clickable="@{model.openTasksInstalled}"
android:text="@string/intro_tasks_opentasks"
android:textAlignment="viewStart"
app:layout_constraintEnd_toStartOf="@id/openTasksSwitch"
app:layout_constraintStart_toStartOf="@id/start"
app:layout_constraintTop_toBottomOf="@id/jtxInfo" />
<TextView
android:id="@+id/openTasksInfo"
android:layout_width="0dp"
android:layout_height="wrap_content"
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_opentasks_info}"/>
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/openTasksSwitch"
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"
app:layout_constraintEnd_toEndOf="@id/end"/>
<RadioButton
android:id="@+id/tasksOrgRadio"
style="@style/TextAppearance.MaterialComponents.Body1"
@ -160,7 +127,7 @@
android:textAlignment="viewStart"
app:layout_constraintEnd_toStartOf="@id/tasksOrgSwitch"
app:layout_constraintStart_toStartOf="@id/start"
app:layout_constraintTop_toBottomOf="@id/openTasksInfo" />
app:layout_constraintTop_toBottomOf="@id/jtxInfo" />
<TextView
android:id="@+id/tasksOrgInfo"
android:layout_width="0dp"
@ -181,6 +148,39 @@
app:layout_constraintStart_toEndOf="@id/tasksOrgRadio"
app:layout_constraintEnd_toEndOf="@id/end"/>
<RadioButton
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.openTasksSelected}"
android:clickable="@{model.openTasksInstalled}"
android:text="@string/intro_tasks_opentasks"
android:textAlignment="viewStart"
app:layout_constraintEnd_toStartOf="@id/openTasksSwitch"
app:layout_constraintStart_toStartOf="@id/start"
app:layout_constraintTop_toBottomOf="@id/tasksOrgInfo" />
<TextView
android:id="@+id/openTasksInfo"
android:layout_width="0dp"
android:layout_height="wrap_content"
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_opentasks_info}"/>
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/openTasksSwitch"
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"
app:layout_constraintEnd_toEndOf="@id/end"/>
<CheckBox
android:id="@+id/dontShow"
android:layout_width="0dp"
@ -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>

View file

@ -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>

@ -1 +1 @@
Subproject commit 2964f7e48f0fdb8a339d8d84db6b33672f101c12
Subproject commit f1969808ad24eae1bb73b1cba29c10c5c2a7c653