Convert comments row to compose

pull/1952/head
Alex Baker 3 years ago
parent 7b9b71dd67
commit 60820ab3c9

@ -233,6 +233,7 @@ dependencies {
implementation("androidx.compose.material:material-icons-extended:${Versions.compose}")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.4.1")
implementation("androidx.compose.ui:ui-viewbinding:${Versions.compose}")
implementation("io.coil-kt:coil-compose:2.1.0")
releaseCompileOnly("androidx.compose.ui:ui-tooling:${Versions.compose}")
implementation("com.google.accompanist:accompanist-flowlayout:${Versions.accompanist}")

@ -8,7 +8,6 @@ package com.todoroo.astrid.activity
import android.content.Context
import android.content.Intent
import android.content.res.Configuration
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.view.inputmethod.InputMethodManager
@ -40,7 +39,6 @@ import org.tasks.databinding.TaskListActivityBinding
import org.tasks.dialogs.SortDialog.SortDialogCallback
import org.tasks.dialogs.WhatsNewDialog
import org.tasks.filters.PlaceFilter
import org.tasks.fragments.CommentBarFragment.CommentBarFragmentCallback
import org.tasks.injection.InjectingAppCompatActivity
import org.tasks.intents.TaskIntents.getTaskListIntent
import org.tasks.location.LocationPickerActivity
@ -57,7 +55,7 @@ import timber.log.Timber
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandler, TimerControlSetCallback, CommentBarFragmentCallback, SortDialogCallback {
class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandler, TimerControlSetCallback, SortDialogCallback {
@Inject lateinit var preferences: Preferences
@Inject lateinit var defaultFilterProvider: DefaultFilterProvider
@Inject lateinit var theme: Theme
@ -399,7 +397,7 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
private val taskListFragment: TaskListFragment?
get() = supportFragmentManager.findFragmentByTag(FRAG_TAG_TASK_LIST) as TaskListFragment?
val taskEditFragment: TaskEditFragment?
private val taskEditFragment: TaskEditFragment?
get() = supportFragmentManager.findFragmentByTag(TaskEditFragment.TAG_TASKEDIT_FRAGMENT) as TaskEditFragment?
override suspend fun stopTimer(): Task {
@ -439,11 +437,6 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
}
}
override fun addComment(message: String?, picture: Uri?) {
val taskEditFragment = taskEditFragment
taskEditFragment?.addComment(message, picture)
}
override fun sortChanged(reload: Boolean) {
taskListFragment?.clearCollapsed()
localBroadcastManager.broadcastRefresh()

@ -10,7 +10,6 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.graphics.Paint
import android.net.Uri
import android.os.Bundle
import android.text.format.DateUtils
import android.view.LayoutInflater
@ -48,7 +47,6 @@ import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.files.FilesControlSet
import com.todoroo.astrid.notes.CommentsController
import com.todoroo.astrid.repeats.RepeatControlSet
import com.todoroo.astrid.tags.TagsControlSet
import com.todoroo.astrid.timers.TimerControlSet
@ -56,11 +54,9 @@ import com.todoroo.astrid.timers.TimerPlugin
import com.todoroo.astrid.ui.ReminderControlSet
import com.todoroo.astrid.ui.StartDateControlSet
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.Strings.isNullOrEmpty
@ -70,7 +66,10 @@ import org.tasks.calendars.CalendarPicker
import org.tasks.compose.BeastModeBanner
import org.tasks.compose.collectAsStateLifecycleAware
import org.tasks.compose.edit.*
import org.tasks.data.*
import org.tasks.data.Alarm
import org.tasks.data.Location
import org.tasks.data.TagData
import org.tasks.data.UserActivityDao
import org.tasks.databinding.*
import org.tasks.date.DateTimeUtils.newDateTime
import org.tasks.dialogs.DateTimePicker
@ -101,7 +100,6 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var context: Activity
@Inject lateinit var taskEditControlSetFragmentManager: TaskEditControlSetFragmentManager
@Inject lateinit var commentsController: CommentsController
@Inject lateinit var preferences: Preferences
@Inject lateinit var firebase: Firebase
@Inject lateinit var timerPlugin: TimerPlugin
@ -207,8 +205,6 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
linkify.linkify(title)
}
}
commentsController.initialize(model, binding.comments)
commentsController.reloadView()
binding.composeView.setContent {
MdcTheme {
Column {
@ -235,6 +231,9 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
Divider(modifier = Modifier.fillMaxWidth())
}
}
if (preferences.getBoolean(R.string.p_show_task_edit_comments, true)) {
Comments()
}
}
}
}
@ -316,7 +315,7 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
val model = editViewModel.task
timerPlugin.stopTimer(model)
val elapsedTime = DateUtils.formatElapsedTime(model.elapsedSeconds.toLong())
addComment(String.format(
editViewModel.addComment(String.format(
"%s %s\n%s %s", // $NON-NLS-1$
getString(R.string.TEA_timer_comment_stopped),
DateUtilities.getTimeString(context, newDateTime()),
@ -329,7 +328,7 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
suspend fun startTimer(): Task {
val model = editViewModel.task
timerPlugin.startTimer(model)
addComment(String.format(
editViewModel.addComment(String.format(
"%s %s",
getString(R.string.TEA_timer_comment_started),
DateUtilities.getTimeString(context, newDateTime())),
@ -367,24 +366,6 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
editViewModel.delete()
}
fun addComment(message: String?, picture: Uri?) {
val model = editViewModel.task
val userActivity = UserActivity()
if (picture != null) {
val output = FileHelper.copyToUri(context, preferences.attachmentsDirectory!!, picture)
userActivity.setPicture(output)
}
userActivity.message = message
userActivity.targetId = model.uuid
userActivity.created = DateUtilities.now()
lifecycleScope.launch {
withContext(NonCancellable) {
userActivityDao.createNew(userActivity)
}
commentsController.reloadView()
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
when (requestCode) {
REQUEST_DATE -> {
@ -501,6 +482,22 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
)
}
@Composable
fun Comments() {
CommentsRow(
comments = userActivityDao
.watchComments(editViewModel.task.uuid)
.collectAsStateLifecycleAware(emptyList())
.value,
deleteComment = {
lifecycleScope.launch {
userActivityDao.delete(it)
}
},
openImage = { FileHelper.startActionView(requireActivity(), it) }
)
}
companion object {
const val TAG_TASKEDIT_FRAGMENT = "taskedit_fragment"
const val EXTRA_TASK = "extra_task"

@ -1,146 +0,0 @@
/*
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.notes
import android.app.Activity
import android.app.AlertDialog
import android.graphics.Color
import android.net.Uri
import android.text.Html
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.tasks.R
import org.tasks.data.UserActivity
import org.tasks.data.UserActivityDao
import org.tasks.dialogs.Linkify
import org.tasks.files.FileHelper
import org.tasks.files.ImageHelper
import org.tasks.preferences.Preferences
import java.util.*
import javax.inject.Inject
import kotlin.math.min
class CommentsController @Inject constructor(
private val userActivityDao: UserActivityDao,
private val activity: Activity,
private val preferences: Preferences,
private val locale: Locale
) {
private val items = ArrayList<UserActivity>()
private var commentItems = 10
private var task: Task? = null
private var commentsContainer: ViewGroup? = null
fun initialize(task: Task?, commentsContainer: ViewGroup?) {
this.task = task
this.commentsContainer = commentsContainer
}
fun reloadView() {
if (!preferences.getBoolean(R.string.p_show_task_edit_comments, true)) {
return
}
(activity as AppCompatActivity).lifecycleScope.launch {
items.clear()
commentsContainer!!.removeAllViews()
items.addAll(userActivityDao.getCommentsForTask(task!!.uuid))
for (i in 0 until min(items.size, commentItems)) {
val notesView = getUpdateNotes(items[i], commentsContainer)
commentsContainer!!.addView(notesView)
}
if (items.size > commentItems) {
val loadMore = Button(activity)
loadMore.setHint(R.string.TEA_load_more)
loadMore.setBackgroundColor(Color.alpha(0))
loadMore.setOnClickListener {
// Perform action on click
commentItems += 10
reloadView()
}
commentsContainer!!.addView(loadMore)
}
}
}
private fun getUpdateNotes(userActivity: UserActivity, parent: ViewGroup?): View {
val convertView = activity.layoutInflater.inflate(R.layout.comment_adapter_row, parent, false)
bindView(convertView, userActivity)
return convertView
}
/** Helper method to set the contents and visibility of each field */
private fun bindView(view: View, item: UserActivity) {
// name
val nameView = view.findViewById<TextView>(R.id.title)
nameView.text = Html.fromHtml(item.message)
Linkify.safeLinkify(nameView)
// date
val date = view.findViewById<TextView>(R.id.date)
date.text = DateUtilities.getLongDateStringWithTime(item.created!!, locale)
// picture
val commentPictureView = view.findViewById<ImageView>(R.id.comment_picture)
setupImagePopupForCommentView(view, commentPictureView, item.pictureUri, activity)
// delete button
val deleteBtn = view.findViewById<ImageView>(R.id.clear)
deleteBtn.setOnClickListener {
val builder = AlertDialog.Builder(commentsContainer!!.context)
// Display a message on alert dialog
builder.setMessage(R.string.delete_comment)
// Set a positive button and its click listener on alert dialog
builder.setPositiveButton(R.string.delete){dialog, which ->
(activity as AppCompatActivity).lifecycleScope.launch {
withContext(NonCancellable) {
userActivityDao.delete(item)
}
reloadView()
}
}
// Display a negative button on alert dialog
builder.setNegativeButton(R.string.cancel){dialog,which ->
}
// Finally, make the alert dialog using builder
val dialog: AlertDialog = builder.create()
// Display the alert dialog on app interface
dialog.show()
}
}
companion object {
private fun setupImagePopupForCommentView(
view: View, commentPictureView: ImageView, uri: Uri?, activity: Activity) {
if (uri != null) {
commentPictureView.visibility = View.VISIBLE
commentPictureView.setImageBitmap(
ImageHelper.sampleBitmap(
activity,
uri,
commentPictureView.layoutParams.width,
commentPictureView.layoutParams.height))
view.setOnClickListener { FileHelper.startActionView(activity, uri) }
} else {
commentPictureView.visibility = View.GONE
}
}
}
}

@ -129,7 +129,7 @@ class TasksJsonExporter @Inject constructor(
locationDao.getGeofencesForTask(taskId),
tagDao.getTagsForTask(taskId),
googleTaskDao.getAllByTaskId(taskId),
userActivityDao.getCommentsForTask(task.uuid),
userActivityDao.getComments(taskId),
taskAttachmentDao.getAttachments(task.uuid),
caldavTasks,
vtodoCache.getVtodo( caldavTasks.firstOrNull { !it.isDeleted() })

@ -0,0 +1,23 @@
package org.tasks.compose
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Delete
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.res.stringResource
import org.tasks.R
@Composable
fun DeleteButton(onClick: () -> Unit) {
IconButton(onClick = onClick) {
Icon(
imageVector = Icons.Outlined.Delete,
modifier = Modifier.alpha(ContentAlpha.medium),
contentDescription = stringResource(id = R.string.delete)
)
}
}

@ -0,0 +1,81 @@
package org.tasks.compose.edit
import android.net.Uri
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
import com.todoroo.andlib.utility.DateUtilities
import org.tasks.R
import org.tasks.compose.DeleteButton
import org.tasks.compose.TaskEditRow
import org.tasks.data.UserActivity
import java.util.*
@Composable
fun CommentsRow(
comments: List<UserActivity>,
deleteComment: (UserActivity) -> Unit,
openImage: (Uri) -> Unit,
) {
if (comments.isEmpty()) {
return
}
TaskEditRow(
iconRes = R.drawable.ic_outline_chat_bubble_outline_24px,
content = {
Column(
modifier = Modifier.padding(vertical = 8.dp),
verticalArrangement = Arrangement.spacedBy(16.dp),
) {
comments.forEach {
Comment(
comment = it,
deleteComment = deleteComment,
openImage = openImage,
)
}
}
}
)
}
@Composable
fun Comment(
comment: UserActivity,
deleteComment: (UserActivity) -> Unit,
openImage: (Uri) -> Unit,
) {
Row(verticalAlignment = Alignment.Top) {
Column(
modifier = Modifier.weight(1f).padding(top = 8.dp),
) {
comment.message?.let {
// TODO: linkify text
Text(text = it)
}
comment.pictureUri?.let {
AsyncImage(
model = it,
contentDescription = null,
modifier = Modifier.clickable { openImage(it) }.size(100.dp)
)
}
Text(
text = DateUtilities.getLongDateStringWithTime(comment.created!!, Locale.getDefault()),
style = MaterialTheme.typography.caption,
)
}
DeleteButton(
onClick = {
// TODO: add confirmation dialog
deleteComment(comment)
}
)
}
}

@ -4,6 +4,7 @@ import androidx.room.*
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.helper.UUIDHelper
import kotlinx.coroutines.flow.Flow
@Dao
abstract class UserActivityDao {
@ -17,7 +18,7 @@ abstract class UserActivityDao {
abstract suspend fun delete(userActivity: UserActivity)
@Query("SELECT * FROM userActivity WHERE target_id = :taskUuid ORDER BY created_at DESC ")
abstract suspend fun getCommentsForTask(taskUuid: String): List<UserActivity>
abstract fun watchComments(taskUuid: String): Flow<List<UserActivity>>
@Query("SELECT userActivity.* FROM userActivity INNER JOIN tasks ON tasks._id = :task WHERE target_id = tasks.remoteId")
abstract suspend fun getComments(task: Long): List<UserActivity>

@ -16,6 +16,7 @@ import android.widget.ImageView
import android.widget.LinearLayout
import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.todoroo.andlib.utility.AndroidUtilities
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
@ -27,6 +28,7 @@ import org.tasks.files.ImageHelper
import org.tasks.preferences.Device
import org.tasks.preferences.Preferences
import org.tasks.themes.ThemeColor
import org.tasks.ui.TaskEditViewModel
import javax.inject.Inject
@AndroidEntryPoint
@ -41,16 +43,12 @@ class CommentBarFragment : Fragment() {
private lateinit var commentField: EditText
private lateinit var pictureButton: ImageView
private lateinit var commentBar: LinearLayout
private lateinit var callback: CommentBarFragmentCallback
private var pendingCommentPicture: Uri? = null
override fun onAttach(activity: Activity) {
super.onAttach(activity)
callback = activity as CommentBarFragmentCallback
}
lateinit var viewModel: TaskEditViewModel
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
viewModel = ViewModelProvider(requireParentFragment())[TaskEditViewModel::class.java]
val view = bind(container)
createView(savedInstanceState)
return view
@ -162,7 +160,7 @@ class CommentBarFragment : Fragment() {
commentField.setText("")
pendingCommentPicture = null
resetPictureButton()
callback.addComment(if (isNullOrEmpty(message)) " " else message, picture)
viewModel.addComment(if (isNullOrEmpty(message)) " " else message, picture)
}
private fun resetPictureButton() {
@ -201,10 +199,6 @@ class CommentBarFragment : Fragment() {
}
}
interface CommentBarFragmentCallback {
fun addComment(message: String?, picture: Uri?)
}
companion object {
private const val REQUEST_CODE_CAMERA = 60
private const val EXTRA_TEXT = "extra_text"

@ -1,9 +1,11 @@
package org.tasks.ui
import android.content.Context
import android.net.Uri
import androidx.annotation.MainThread
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.todoroo.andlib.utility.DateUtilities.now
import com.todoroo.astrid.activity.TaskEditFragment
import com.todoroo.astrid.alarms.AlarmService
@ -26,6 +28,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.tasks.R
@ -36,6 +39,7 @@ import org.tasks.data.*
import org.tasks.data.Alarm.Companion.TYPE_REL_END
import org.tasks.data.Alarm.Companion.TYPE_REL_START
import org.tasks.date.DateTimeUtils.toDateTime
import org.tasks.files.FileHelper
import org.tasks.location.GeofenceApi
import org.tasks.preferences.PermissionChecker
import org.tasks.preferences.Preferences
@ -46,7 +50,7 @@ import javax.inject.Inject
@HiltViewModel
class TaskEditViewModel @Inject constructor(
@ApplicationContext context: Context,
@ApplicationContext private val context: Context,
savedStateHandle: SavedStateHandle,
private val taskDao: TaskDao,
private val taskDeleter: TaskDeleter,
@ -59,7 +63,7 @@ class TaskEditViewModel @Inject constructor(
private val geofenceApi: GeofenceApi,
private val tagDao: TagDao,
private val tagDataDao: TagDataDao,
preferences: Preferences,
private val preferences: Preferences,
private val googleTaskDao: GoogleTaskDao,
private val caldavDao: CaldavDao,
private val taskCompleter: TaskCompleter,
@ -67,6 +71,7 @@ class TaskEditViewModel @Inject constructor(
private val taskListEvents: TaskListEventBus,
private val mainActivityEvents: MainActivityEventBus,
private val firebase: Firebase? = null,
private val userActivityDao: UserActivityDao,
) : ViewModel() {
private val resources = context.resources
private var cleared = false
@ -388,6 +393,22 @@ class TaskEditViewModel @Inject constructor(
}
}
fun addComment(message: String?, picture: Uri?) {
val userActivity = UserActivity()
if (picture != null) {
val output = FileHelper.copyToUri(context, preferences.attachmentsDirectory!!, picture)
userActivity.setPicture(output)
}
userActivity.message = message
userActivity.targetId = task.uuid
userActivity.created = now()
viewModelScope.launch {
withContext(NonCancellable) {
userActivityDao.createNew(userActivity)
}
}
}
companion object {
fun String?.stripCarriageReturns(): String? = this?.replace("\\r\\n?".toRegex(), "\n")
}

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
** Copyright (c) 2012 Todoroo Inc
**
** See the file "LICENSE" for the full license governing this code.
-->
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/comment_row"
style="@style/CommentsRow"
android:background="?attr/selectableItemBackground"
android:padding="@dimen/keyline_first">
<include layout="@layout/control_set_clear_button" />
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/delete"
android:paddingEnd="@dimen/keyline_first"
android:background="?attr/selectableItemBackground"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"/>
<!-- add Edit button here -->
<TextView
android:id="@+id/date"
android:textStyle="normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp"/>
<ImageView
android:id="@+id/comment_picture"
android:layout_width="50dip"
android:layout_height="50dip"
android:scaleType="fitCenter"
android:visibility="gone"
tools:ignore="ContentDescription"/>
</LinearLayout>
</RelativeLayout>

@ -79,25 +79,11 @@
android:elevation="0dp"
android:overScrollMode="never">
<LinearLayout
android:id="@+id/control_sets"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<androidx.compose.ui.platform.ComposeView
android:id="@+id/compose_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/comments"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
<androidx.compose.ui.platform.ComposeView
android:id="@+id/compose_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<androidx.fragment.app.FragmentContainerView

@ -235,7 +235,6 @@
<string name="SSD_sort_my_order">ترتيبي</string>
<string name="cancel">إلغاء</string>
<string name="ok">حسنًا</string>
<string name="TEA_load_more">حمّل المزيد…</string>
<string name="start_date">تاريخ البدأ</string>
<string name="SSD_sort_start">بتاريخ البدأ</string>
<string name="export_toast">تم تصدير %1$s إلى %2$s.</string>

@ -58,7 +58,6 @@
<string name="TEA_control_reminders">Напомняне</string>
<string name="TEA_control_timer">Отчитане на времето</string>
<string name="TEA_control_hidden_section">----Винаги скрито----</string>
<string name="TEA_load_more">Зареждане…</string>
<string name="CRA_ignore">Пренебрегване</string>
<string name="CRA_title">Нуждаете се от списък със срещите\?</string>
<string name="CRA_ignore_body">Пренебрегнали сте няколко събития от календара. Трябва ли Tasks да спрe да пита за тях\?</string>

@ -38,7 +38,6 @@
<string name="TEA_control_reminders">Recordatoris</string>
<string name="TEA_control_timer">Controls de temporització</string>
<string name="TEA_control_hidden_section">----Oculta-ho sempre----</string>
<string name="TEA_load_more">Carrega\'n més…</string>
<string name="EPr_beastMode_reset">Restableix els valors predeterminats</string>
<string name="EPr_fullTask_title">Mostra el títol sencer de la tasca</string>
<string name="EPr_manage_delete_completed_gcal_message">Segur que voleu suprimir els esdeveniments de calendari de les tasques completades?</string>

@ -46,7 +46,6 @@
<string name="TEA_control_reminders">Upomínky</string>
<string name="TEA_control_timer">Ovladač časovače</string>
<string name="TEA_control_hidden_section">-----Vždy skrývat----</string>
<string name="TEA_load_more">Načíst více…</string>
<string name="CRA_ignore">Ignorovat</string>
<string name="CRA_title">Potřebujete seznam schůze?</string>
<string name="CRA_ignore_body">Ignorovali jste několik událostí v kalendáři. Má vás Tasks přestat o nich informovat\?</string>

@ -37,7 +37,6 @@
<string name="TEA_control_files">Filer</string>
<string name="TEA_control_reminders">Påmindelser</string>
<string name="TEA_control_hidden_section">----Skjul altid----</string>
<string name="TEA_load_more">Indlæs flere…</string>
<string name="CRA_ignore_all">Ignorér alle begivenheder</string>
<string name="CRA_ignore_this">Ignorér kun denne begivenhed</string>
<string name="EPr_default_importance_title">Standardprioritet</string>

@ -55,7 +55,6 @@
<string name="TEA_control_reminders">Erinnerungen</string>
<string name="TEA_control_timer">Timer-Einstellungen</string>
<string name="TEA_control_hidden_section">----Immer Ausblenden----</string>
<string name="TEA_load_more">Weitere laden …</string>
<string name="CRA_ignore">Ablehnen</string>
<string name="CRA_title">Wollen Sie eine Besprechungsliste erstellen\?</string>
<string name="CRA_ignore_body">Sie haben mehrere Kalendereinträge ignoriert. Soll Tasks nicht mehr danach fragen\?</string>

@ -48,7 +48,6 @@
<string name="TEA_control_reminders">Υπενθυμίσεις</string>
<string name="TEA_control_timer">Χειριστήρια χρονοδιακόπτη</string>
<string name="TEA_control_hidden_section">-----Απόκρυψη πάντα-----</string>
<string name="TEA_load_more">Φόρτωση περισσότερων…</string>
<string name="CRA_ignore">Αγνοήστε</string>
<string name="CRA_title">Χρειάζεστε λίστα για συνάντηση?</string>
<string name="CRA_ignore_body">Αγνοήσατε αρκετές κλήσεις. Να σταματήσουμε να ρωτάμε για αυτές;</string>

@ -181,7 +181,6 @@
<string name="CRA_ignore_this">Ignori nur ĉi tiun eventon</string>
<string name="CRA_ignore_all">Ignori ĉiujn eventojn</string>
<string name="CRA_ignore">Ignori</string>
<string name="TEA_load_more">Ŝarĝi pli…</string>
<string name="TEA_control_reminders">Memorigiloj</string>
<string name="TEA_control_importance">Prioritato</string>
<string name="TEA_control_repeat">Ripeti</string>

@ -55,7 +55,6 @@
<string name="TEA_control_reminders">Recordatorios</string>
<string name="TEA_control_timer">Controles de tiempo</string>
<string name="TEA_control_hidden_section">---Ocultar siempre---</string>
<string name="TEA_load_more">Cargar más…</string>
<string name="CRA_ignore">Ignorar</string>
<string name="CRA_title">¿Necesita una lista de reuniones?</string>
<string name="CRA_ignore_body">Ha ignorado varios eventos de calendario. ¿Debe Tasks dejar de preguntarle sobre ellos?</string>

@ -43,7 +43,6 @@
<string name="TEA_control_files">Failid</string>
<string name="TEA_control_reminders">Meelespead</string>
<string name="TEA_control_hidden_section">----Peida alati----</string>
<string name="TEA_load_more">Laadi lisa…</string>
<string name="CRA_ignore">Ignoreeri</string>
<string name="CRA_ignore_this">Ignoreeri ainult seda sündmust</string>
<string name="CRA_postpone">Võib-olla hiljem</string>

@ -56,7 +56,6 @@
<string name="TEA_control_reminders">Oroigarriak</string>
<string name="TEA_control_timer">Kronometroaren kontrolak</string>
<string name="TEA_control_hidden_section">----Ezkutatu beti----</string>
<string name="TEA_load_more">Kargatu gehiago…</string>
<string name="CRA_ignore">Ezikusi</string>
<string name="CRA_title">Batzarren zerrenda bat behar duzu\?</string>
<string name="CRA_ignore_body">Egutegiko gertaera batzuk ezikusi dituzu. Nahiago zenuke Tasks aplikazioak horiei buruz galdetuko ez balu\?</string>

@ -42,7 +42,6 @@
<string name="TEA_control_reminders">یادآوری ها</string>
<string name="TEA_control_timer">کنترل تایمر</string>
<string name="TEA_control_hidden_section">----همیشه مخفی----</string>
<string name="TEA_load_more">بارگزاری بیشتر</string>
<string name="CRA_ignore">رد کردن</string>
<string name="CRA_title">نیاز به لیست ملاقات دارید ؟</string>
<string name="CRA_ignore_all">نادیده گرفتن تمام رویداد ها</string>

@ -51,7 +51,6 @@
<string name="TEA_control_reminders">Muistutukset</string>
<string name="TEA_control_timer">Ajastuksen säätimet</string>
<string name="TEA_control_hidden_section">----Piilota aina----</string>
<string name="TEA_load_more">Lataa lisää…</string>
<string name="CRA_ignore">Ohita</string>
<string name="CRA_title">Tarvitaanko listaa tapaamisista?</string>
<string name="CRA_ignore_body">Olet ohittanut useita kalenteritapahtumia. Lopettaako Tasks niistä kyselemisen?</string>

@ -49,7 +49,6 @@
<string name="TEA_control_reminders">Rappels</string>
<string name="TEA_control_timer">Contrôles de rappel</string>
<string name="TEA_control_hidden_section">----Toujours masquer----</string>
<string name="TEA_load_more">Charger plus…</string>
<string name="CRA_ignore">Ignorer</string>
<string name="CRA_title">Besoin d\'une liste de réunion ? </string>
<string name="CRA_ignore_body">Vous avez ignoré plusieurs évènements du calendrier. Souhaitez-vous que Tasks cesse de vous les proposer \?</string>

@ -54,7 +54,6 @@
<string name="TEA_control_reminders">Recordatorios</string>
<string name="TEA_control_timer">Controles de tempo</string>
<string name="TEA_control_hidden_section">---Agochar sempre---</string>
<string name="TEA_load_more">Cargar mais…</string>
<string name="CRA_ignore">Ignorar</string>
<string name="CRA_title">Precisa dunha lista de reunións\?</string>
<string name="CRA_ignore_body">Ignorou varios eventos do calendario. Quere que Tasks lle deixe de preguntar por eles\?</string>

@ -10,7 +10,6 @@
<string name="always_display_full_date">Pokaži potpuni datum</string>
<string name="EPr_fullTask_title">Pokaži potpuni naslov zadatka</string>
<string name="EPr_beastMode_reset">Obnovi standardne vrijednosti</string>
<string name="TEA_load_more">Učitaj više…</string>
<string name="TEA_control_files">Datoteke</string>
<string name="TEA_control_notes">Opis</string>
<string name="TEA_control_location">Lokacija</string>

@ -54,7 +54,6 @@
<string name="TEA_control_reminders">Emlékeztetők</string>
<string name="TEA_control_timer">Időzítő Beállítása</string>
<string name="TEA_control_hidden_section">---Elrejtve---</string>
<string name="TEA_load_more">Továbbiak betöltése…</string>
<string name="CRA_ignore">Kihagy</string>
<string name="CRA_title">Szeretne egy listát a találkozókról?</string>
<string name="CRA_ignore_body">Kihagytál jónéhány naptáreseményt. Ne kérdezzen rá többet a Tasks?</string>

@ -35,7 +35,6 @@
<string name="TEA_control_notes">Deskripsi</string>
<string name="TEA_control_files">Berkas</string>
<string name="TEA_control_reminders">Pengingat</string>
<string name="TEA_load_more">Muat lebih banyak…</string>
<string name="CRA_ignore">Abaikan</string>
<string name="CRA_ignore_all">Abaikan semua acara</string>
<string name="CRA_ignore_this">Abaikan hanya acara ini</string>

@ -56,7 +56,6 @@
<string name="TEA_control_reminders">Promemoria</string>
<string name="TEA_control_timer">Regolazione timer</string>
<string name="TEA_control_hidden_section">----Nascondi sempre----</string>
<string name="TEA_load_more">Caricane altre…</string>
<string name="CRA_ignore">Ignora</string>
<string name="CRA_title">Hai bisogno di una lista per le riunioni?</string>
<string name="CRA_ignore_body">Hai ignorato numerosi eventi del calendario. Vuoi che Tasks smetta di notificarteli\?</string>

@ -56,7 +56,6 @@
<string name="TEA_control_reminders">תזכורות</string>
<string name="TEA_control_timer">הערכת זמן</string>
<string name="TEA_control_hidden_section">----להסתיר תמיד----</string>
<string name="TEA_load_more">לטעון עוד…</string>
<string name="CRA_ignore">התעלם</string>
<string name="CRA_title">צריך רשימה לפגישה?</string>
<string name="CRA_ignore_body">התעלמת ממספר אירועי יומן. האם עלי לחדול מלהזכיר לך אירועי יומן?</string>

@ -53,7 +53,6 @@
<string name="TEA_control_reminders">リマインダー</string>
<string name="TEA_control_timer">タイマーコントロール</string>
<string name="TEA_control_hidden_section">----常に隠す----</string>
<string name="TEA_load_more">さらに読み込む…</string>
<string name="CRA_ignore">無視する</string>
<string name="CRA_title">ミーティングリストが必要ですか?</string>
<string name="CRA_ignore_body">いくつかのカレンダーイベントを無視しました. その報告を停止しますか?</string>

@ -54,7 +54,6 @@
<string name="TEA_control_reminders">일정 알림</string>
<string name="TEA_control_timer">타이머 조절</string>
<string name="TEA_control_hidden_section">----항상 숨김----</string>
<string name="TEA_load_more">더 불러오기…</string>
<string name="CRA_ignore">무시하기</string>
<string name="CRA_title">모임 목록이 필요하세요?</string>
<string name="CRA_ignore_body">여러번 달력 일정을 무시하셨습니다. Tasks가 일정을 그만 물어볼까요\?</string>

@ -58,7 +58,6 @@
<string name="TEA_control_reminders">Priminimai</string>
<string name="TEA_control_timer">Laikmačio nustatymai</string>
<string name="TEA_control_hidden_section">----Visada slėpti----</string>
<string name="TEA_load_more">Įkelti daugiau…</string>
<string name="CRA_ignore">Ignoruoti</string>
<string name="CRA_title">Reikia susitikimų sąrašo?</string>
<string name="CRA_ignore_body">Jūs ignoravote kelis kalendoriaus įvykius. Ar Tasks turėtų nustoti apie juos klausti?</string>

@ -37,7 +37,6 @@
<string name="TEA_control_files">ഫയലുകൾ</string>
<string name="TEA_control_reminders">ഓർമ്മപ്പെടുത്തലുകൾ</string>
<string name="TEA_control_hidden_section">---- എല്ലായ്പ്പോഴും മറയ്‌ക്കുക ----</string>
<string name="TEA_load_more">കൂടുതൽ ലോഡുചെയ്യുക…</string>
<string name="CRA_ignore">അവഗണിക്കുക</string>
<string name="CRA_title">ഒരു മീറ്റിംഗ് ലിസ്റ്റ് ആവശ്യമുണ്ടോ\?</string>
</resources>

@ -165,7 +165,6 @@
<string name="TEA_control_gcal">Kalneder</string>
<string name="TEA_control_location">Sted</string>
<string name="TEA_control_timer">Tidtakingskontroller</string>
<string name="TEA_load_more">Last inn mer…</string>
<string name="CRA_ignore">Ignorer</string>
<string name="CRA_title">Trenger du en møteliste\?</string>
<string name="CRA_ignore_body">Du har ignorert flere kalenderhendelser. Skal Tasks slutte å påminne deg om dem\?</string>

@ -55,7 +55,6 @@
<string name="TEA_control_reminders">Herinneringen</string>
<string name="TEA_control_timer">Instellingen tijdklok</string>
<string name="TEA_control_hidden_section">----Onzichtbaar----</string>
<string name="TEA_load_more">Meer laden…</string>
<string name="CRA_ignore">Negeren</string>
<string name="CRA_title">Een vergaderagenda maken\?</string>
<string name="CRA_ignore_body">Je hebt meerdere kalender-items genegeerd. Moet Tasks er niet meer naar vragen\?</string>

@ -51,7 +51,6 @@
<string name="TEA_control_reminders">Przypomnienia</string>
<string name="TEA_control_timer">Sterowanie zegara</string>
<string name="TEA_control_hidden_section">----Zawsze ukrywaj----</string>
<string name="TEA_load_more">Wczytaj więcej…</string>
<string name="CRA_ignore">Ignoruj</string>
<string name="CRA_title">Czy potrzebujesz listy spotkań?</string>
<string name="CRA_ignore_body">Zignorowałeś kilka wydarzeń z kalendarza. Czy Tasks powinien przestać cię o nie pytać?</string>

@ -52,7 +52,6 @@
<string name="TEA_control_reminders">Lembretes</string>
<string name="TEA_control_timer">Temporizador</string>
<string name="TEA_control_hidden_section">----Sempre Ocultar----</string>
<string name="TEA_load_more">Carregar mais…</string>
<string name="CRA_ignore">Ignorar</string>
<string name="CRA_title">Precisa de uma lista de reuniões?</string>
<string name="CRA_ignore_body">Você ignorou vários eventos do calendário. O Tasks deve parar de lhe perguntar sobre eles?</string>

@ -51,7 +51,6 @@
<string name="TEA_control_reminders">Lembretes</string>
<string name="TEA_control_timer">Controlos temporais</string>
<string name="TEA_control_hidden_section">----Ocultar sempre----</string>
<string name="TEA_load_more">Carregar mais…</string>
<string name="CRA_ignore">Ignorar</string>
<string name="CRA_title">Precisa de uma lista de reuniões\?</string>
<string name="CRA_ignore_body">Você ignorou vários eventos de calendário. Pretende que o Tasks não o notifique novamente?</string>

@ -468,7 +468,6 @@
<string name="CRA_ignore_body">Ați ignorat mai multe evenimente din calendar. Doriți ca Tasks să nu vă mai întrebe despre ele\?</string>
<string name="CRA_title">Aveți nevoie de o listă de întâlniri\?</string>
<string name="CRA_ignore">Ignoră</string>
<string name="TEA_load_more">Încarcă mai mult…</string>
<string name="TEA_control_hidden_section">----Ascundeți mereu----</string>
<string name="TEA_control_timer">Comenzi de temporizare</string>
<string name="TEA_control_reminders">Reamintire</string>

@ -56,7 +56,6 @@
<string name="TEA_control_reminders">Напоминания</string>
<string name="TEA_control_timer">Таймер</string>
<string name="TEA_control_hidden_section">----Всегда скрывать----</string>
<string name="TEA_load_more">Загрузить больше…</string>
<string name="CRA_ignore">Игнорировать</string>
<string name="CRA_title">Нужен список встреч\?</string>
<string name="CRA_ignore_body">Вы проигнорировали несколько событий в календаре. Прекратить спрашивать о них\?</string>

@ -468,7 +468,6 @@
<string name="CRA_ignore_body">ඔබ දින දර්ශන කාර්යයන් කිහිපයක් නොසලකා හැර ඇත. Tasks ඵ්වා ගැන ඔබෙන් විමසීම නතර කළ යුතුද\?</string>
<string name="CRA_title">රැස්වීම් ලැයිස්තුවක් අවශ්‍යද\?</string>
<string name="CRA_ignore">නොසලකා හරින්න</string>
<string name="TEA_load_more">තවත් පූරණය කරන්න…</string>
<string name="TEA_control_hidden_section">---- සැමවිටම සඟවන්න ----</string>
<string name="TEA_control_reminders">මතක් කිරීම්</string>
<string name="TEA_control_files">ගොනු</string>

@ -53,7 +53,6 @@
<string name="TEA_control_reminders">Pripomienky</string>
<string name="TEA_control_timer">Stopky - nastavenie</string>
<string name="TEA_control_hidden_section">----Skryť vždy----</string>
<string name="TEA_load_more">Načítať viac…</string>
<string name="CRA_ignore">Ignorovať</string>
<string name="CRA_title">Potrebuješ zoznam na stretnutie?</string>
<string name="CRA_ignore_body">Nevenoval si pozornosť niekoľkým udalostiam kalendára. Chceš, aby sa Úlohy na ne prestali pýtať?</string>

@ -46,7 +46,6 @@
<string name="TEA_control_reminders">Opomniki</string>
<string name="TEA_control_timer">Upravljanje s štoparico</string>
<string name="TEA_control_hidden_section">----Vedno skrij----</string>
<string name="TEA_load_more">Naloži še…</string>
<string name="CRA_ignore">Ignoriraj</string>
<string name="CRA_title">Potrebujete seznam sestankov?</string>
<string name="CRA_ignore_body">Ignorirali ste številne dogodke na koledarju. Naj vas aplikacija Opravki neha spraševati o njih?</string>

@ -48,7 +48,6 @@
<string name="TEA_control_reminders">Påminnelser</string>
<string name="TEA_control_timer">Tidtagarinställningar</string>
<string name="TEA_control_hidden_section">----Dölj alltid----</string>
<string name="TEA_load_more">Ladda mer…</string>
<string name="CRA_ignore">Ignorera</string>
<string name="CRA_title">Behöver du en lista över möten?</string>
<string name="CRA_ignore_body">Du har ignorerat flera kalenderhändelser. Vill du att Tasks slutar fråga dig om dem?</string>

@ -34,7 +34,6 @@
<string name="CRA_ignore_body">பல காலண்டர் நிகழ்வுகளை நீங்கள் புறக்கணித்துவிட்டீர்கள். பணிகள் அவற்றைப் பற்றி உங்களிடம் கேட்பதை நிறுத்த வேண்டுமா\?</string>
<string name="CRA_title">சந்திப்பு பட்டியல் வேண்டுமா\?</string>
<string name="CRA_ignore">புறக்கணிக்கவும்</string>
<string name="TEA_load_more">அதிகமாய் ஏற்று…</string>
<string name="TEA_control_hidden_section">---- எப்போதும் மறை ----</string>
<string name="TEA_control_timer">டைமர் கட்டுப்பாடுகள்</string>
<string name="TEA_control_reminders">நினைவூட்டல்கள்</string>

@ -621,7 +621,6 @@
<string name="date_shortcut_morning">เช้า</string>
<string name="date_shortcut_hour">เป็นเวลาหนึ่งชั่วโมง</string>
<string name="filters">ตัวกรอง</string>
<string name="TEA_load_more">โหลดเพิ่ม…</string>
<string name="TEA_control_hidden_section">----ไฮด์----</string>
<string name="TEA_control_timer">การควบคุมตัวจับเวลา</string>
<string name="TEA_control_reminders">จดหมายเตือนชําระเงิน</string>

@ -56,7 +56,6 @@
<string name="TEA_control_reminders">Anımsatıcılar</string>
<string name="TEA_control_timer">Kronometre Denetimleri</string>
<string name="TEA_control_hidden_section">----Sürekli Gizle----</string>
<string name="TEA_load_more">Daha yükle…</string>
<string name="CRA_ignore">Yok say</string>
<string name="CRA_title">Toplantı listesine mi gereksiniyorsunuz\?</string>
<string name="CRA_ignore_body">Bir kaç tane takvim etkinliğini yok saydınız. Tasks\'in size bunlar hakkında sormayı kesmesini ister misiniz?</string>

@ -56,7 +56,6 @@
<string name="TEA_control_reminders">Нагадування</string>
<string name="TEA_control_timer">Управління таймером</string>
<string name="TEA_control_hidden_section">----Завжди ховати----</string>
<string name="TEA_load_more">Завантажити більше…</string>
<string name="CRA_ignore">Ігнорувати</string>
<string name="CRA_title">Потрібен список зустрічей\?</string>
<string name="CRA_ignore_body">Ви знехтували кількома подіями в календарі. Припинити запитувати про них\?</string>

@ -2,7 +2,6 @@
<resources>
<string name="import_progress_read">%d ٹاسک پڑھا جا رہا ہے…</string>
<string name="export_toast">%1$s سے %2$s بیک اپ ہو گیا۔</string>
<string name="TEA_load_more">مزید لوڈ کریں…</string>
<string name="TEA_control_hidden_section">----ہمیشہ چھپائیں----</string>
<string name="TEA_control_timer">ٹائمر کنٹرول</string>
<string name="TEA_control_reminders">یاد دہانی</string>

@ -8,7 +8,6 @@
<string name="CRA_ignore_body">Bạn đã bỏ qua một vài sự kiện trong lịch. Tasks có nên dừng hỏi bạn về chúng không\?</string>
<string name="CRA_title">Cần danh sách cuộc họp không\?</string>
<string name="CRA_ignore">Bỏ qua</string>
<string name="TEA_load_more">Tải thêm…</string>
<string name="TEA_control_reminders">Lời nhắc</string>
<string name="TEA_control_files">Tệp</string>
<string name="TEA_control_notes">Mô tả</string>

@ -50,7 +50,6 @@
<string name="TEA_control_reminders">提醒</string>
<string name="TEA_control_timer">定时器控件</string>
<string name="TEA_control_hidden_section">----始终隐藏----</string>
<string name="TEA_load_more">加载更多…</string>
<string name="CRA_ignore">忽略</string>
<string name="CRA_title">是否需要会议列表?</string>
<string name="CRA_ignore_body">您已经忽略了几个日历事件。Tasks 是否应该停止向你询问这些事件?</string>

@ -45,7 +45,6 @@
<string name="TEA_control_reminders">提醒</string>
<string name="TEA_control_timer">定時器設定</string>
<string name="TEA_control_hidden_section">----永遠隱藏----</string>
<string name="TEA_load_more">繼續載入…</string>
<string name="CRA_ignore">忽略</string>
<string name="CRA_title">需要會議列表嗎?</string>
<string name="CRA_ignore_body">您忽略了幾個活動Tasks應否不再就該活動詢問您呢</string>

@ -68,7 +68,6 @@ File %1$s contained %2$s.\n\n
<string name="TEA_control_timer">Timer Controls</string>
<string name="TEA_control_hidden_section">----Hide Always----</string>
<string name="TEA_creation_date">Creation date</string>
<string name="TEA_load_more">Load more…</string>
<string name="CRA_ignore">Ignore</string>
<string name="CRA_title">Need a meeting list?</string>
<string name="CRA_ignore_body">You\'ve ignored several calendar events. Should Tasks stop asking you about them?</string>

@ -2,7 +2,7 @@
+| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
++--- androidx.databinding:databinding-common:7.2.1
++--- androidx.databinding:databinding-runtime:7.2.1
+| +--- androidx.collection:collection:1.0.0 -> 1.1.0
+| +--- androidx.collection:collection:1.0.0 -> 1.2.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| +--- androidx.databinding:databinding-common:7.2.1
+| +--- androidx.databinding:viewbinding:7.2.1 (*)
@ -83,14 +83,14 @@
+| +--- androidx.core:core:1.9.0-alpha05
+| | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | +--- androidx.annotation:annotation-experimental:1.1.0
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.concurrent:concurrent-futures:1.0.0
+| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
+| | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.0-rc01 (*)
+| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | \--- androidx.core:core-ktx:1.9.0-alpha05 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.0 (*)
+| \--- androidx.core:core:1.9.0-alpha05 (c)
@ -103,7 +103,7 @@
+| +--- androidx.appcompat:appcompat:1.4.1 -> 1.6.0-alpha05
+| | +--- androidx.activity:activity:1.6.0-alpha05
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.9.0-alpha05 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.0-rc01 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.0-rc01 (*)
@ -126,18 +126,18 @@
+| | +--- androidx.annotation:annotation:1.3.0
+| | +--- androidx.appcompat:appcompat-resources:1.6.0-alpha05
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.6.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.vectordrawable:vectordrawable:1.1.0
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | | | \--- androidx.collection:collection:1.1.0 (*)
+| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0
+| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+| | | +--- androidx.interpolator:interpolator:1.0.0
+| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | \--- androidx.collection:collection:1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.core:core:1.9.0-alpha05 (*)
+| | +--- androidx.cursoradapter:cursoradapter:1.0.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
@ -147,21 +147,21 @@
+| | | \--- androidx.customview:customview:1.1.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.3.0 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.collection:collection:1.1.0 (*)
+| | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | +--- androidx.emoji2:emoji2:1.2.0-alpha04
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.1.0 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.lifecycle:lifecycle-process:2.4.1 (*)
+| | | \--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*)
+| | +--- androidx.emoji2:emoji2-views-helper:1.2.0-alpha04
+| | | +--- androidx.collection:collection:1.1.0 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.emoji2:emoji2:1.2.0-alpha04 (*)
+| | +--- androidx.fragment:fragment:1.3.6 -> 1.4.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.collection:collection:1.1.0 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | | +--- androidx.viewpager:viewpager:1.0.0
+| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
@ -214,7 +214,7 @@
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.2
+| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.0-alpha05 (*)
+| | | +--- androidx.core:core:1.3.2 -> 1.9.0-alpha05 (*)
@ -223,7 +223,7 @@
+| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
+| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0
+| | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0
+| | | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
@ -241,18 +241,18 @@
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.transition:transition:1.2.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.0.1 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+| | \--- androidx.viewpager2:viewpager2:1.0.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.fragment:fragment:1.1.0 -> 1.4.0 (*)
+| | +--- androidx.recyclerview:recyclerview:1.1.0 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | \--- androidx.collection:collection:1.1.0 (*)
+| | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| \--- org.conscrypt:conscrypt-android:2.5.2
++--- com.github.tasks.opentasks:opentasks-provider:a1faa1b
+| +--- org.dmfs:rfc5545-datetime:0.2.4
@ -315,7 +315,7 @@
+| +--- androidx.core:core-ktx:1.2.0 -> 1.9.0-alpha05 (*)
+| +--- androidx.collection:collection-ktx:1.1.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.20 -> 1.7.0 (*)
+| | \--- androidx.collection:collection:1.1.0 (*)
+| | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.3.1 -> 2.4.1 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1 -> 2.5.0-rc01 (*)
+| +--- androidx.savedstate:savedstate-ktx:1.1.0 -> 1.2.0 (*)
@ -355,9 +355,10 @@
+| \--- io.noties.markwon:core:4.6.2 (*)
++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0 (*)
++--- com.squareup.okhttp3:okhttp:4.9.3
+| +--- com.squareup.okio:okio:2.8.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.0 -> 1.7.0 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.0 -> 1.7.0
+| +--- com.squareup.okio:okio:2.8.0 -> 3.0.0
+| | \--- com.squareup.okio:okio-jvm:3.0.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.7.0 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.7.0
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 1.7.0 (*)
++--- com.google.code.gson:gson:2.8.8
++--- com.google.android.material:material:1.6.1 -> 1.7.0-alpha02 (*)
@ -372,7 +373,7 @@
+| +--- androidx.fragment:fragment:1.2.4 -> 1.4.0 (*)
+| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*)
+| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
++--- com.jakewharton.timber:timber:5.0.1
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.21 -> 1.7.0 (*)
+| \--- org.jetbrains:annotations:20.1.0
@ -420,7 +421,7 @@
++--- net.openid:appauth:0.8.1
+| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.browser:browser:1.3.0
+| +--- androidx.collection:collection:1.1.0 (*)
+| +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| +--- androidx.concurrent:concurrent-futures:1.0.0 (*)
+| +--- androidx.interpolator:interpolator:1.0.0 (*)
+| +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
@ -431,7 +432,7 @@
+| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| +--- androidx.autofill:autofill:1.0.0
+| | \--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| +--- androidx.compose.runtime:runtime:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.0 (*)
@ -459,7 +460,7 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.0
+| +--- androidx.compose.ui:ui-text:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.compose.runtime:runtime:1.2.0 (*)
+| | +--- androidx.compose.runtime:runtime-saveable:1.2.0 (*)
+| | +--- androidx.compose.ui:ui-graphics:1.2.0 (*)
@ -578,6 +579,30 @@
+| +--- androidx.databinding:viewbinding:4.1.2 -> 7.2.1 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.4.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.0 (*)
++--- io.coil-kt:coil-compose:2.1.0
+| +--- io.coil-kt:coil-compose-base:2.1.0
+| | +--- io.coil-kt:coil-base:2.1.0
+| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.7.0 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.10
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.7.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.0-rc01 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 (*)
+| | | +--- com.squareup.okhttp3:okhttp:4.9.3 (*)
+| | | +--- com.squareup.okio:okio:3.0.0 (*)
+| | | +--- androidx.annotation:annotation:1.3.0
+| | | +--- androidx.appcompat:appcompat-resources:1.4.1 -> 1.6.0-alpha05 (*)
+| | | +--- androidx.collection:collection:1.2.0 (*)
+| | | +--- androidx.core:core-ktx:1.7.0 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.exifinterface:exifinterface:1.3.3
+| | | \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.0 (*)
+| | +--- androidx.core:core-ktx:1.7.0 -> 1.9.0-alpha05 (*)
+| | \--- com.google.accompanist:accompanist-drawablepainter:0.23.1
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.7.0 (*)
+| | \--- androidx.compose.ui:ui:1.1.1 -> 1.2.0 (*)
+| \--- io.coil-kt:coil:2.1.0
+| \--- io.coil-kt:coil-base:2.1.0 (*)
++--- com.google.accompanist:accompanist-flowlayout:0.24.12-rc
+| +--- androidx.compose.foundation:foundation:1.2.0-rc02 -> 1.2.0 (*)
+| \--- androidx.compose.ui:ui-util:1.2.0-rc02 -> 1.2.0 (*)

@ -2,7 +2,7 @@
+| \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
++--- androidx.databinding:databinding-common:7.2.1
++--- androidx.databinding:databinding-runtime:7.2.1
+| +--- androidx.collection:collection:1.0.0 -> 1.1.0
+| +--- androidx.collection:collection:1.0.0 -> 1.2.0
+| | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| +--- androidx.databinding:databinding-common:7.2.1
+| +--- androidx.databinding:viewbinding:7.2.1 (*)
@ -85,18 +85,18 @@
+| +--- com.google.android.datatransport:transport-runtime:3.1.5 (*)
+| +--- com.google.android.gms:play-services-tasks:18.0.1
+| | \--- com.google.android.gms:play-services-basement:18.0.0
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.core:core:1.2.0 -> 1.9.0-alpha05
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | +--- androidx.annotation:annotation-experimental:1.1.0
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | +--- androidx.concurrent:concurrent-futures:1.0.0
+| | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
+| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.0-rc01 (*)
+| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | \--- androidx.core:core-ktx:1.9.0-alpha05 (c)
+| | \--- androidx.fragment:fragment:1.0.0 -> 1.4.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
@ -105,14 +105,14 @@
+| | | +--- androidx.core:core:1.9.0-alpha05 (*)
+| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.0 (*)
+| | | \--- androidx.core:core:1.9.0-alpha05 (c)
+| | +--- androidx.collection:collection:1.1.0 (*)
+| | +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | +--- androidx.viewpager:viewpager:1.0.0
+| | | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.customview:customview:1.0.0 -> 1.1.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.3.0 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.collection:collection:1.1.0 (*)
+| | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | +--- androidx.loader:loader:1.0.0
+| | | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
@ -120,7 +120,7 @@
+| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.5.0-rc01 (*)
+| | +--- androidx.activity:activity:1.2.4 -> 1.6.0-alpha05
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.9.0-alpha05 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.0-rc01 (*)
+| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.0-rc01 (*)
@ -169,7 +169,7 @@
+| \--- com.google.firebase:firebase-annotations:16.0.0
++--- com.google.firebase:firebase-analytics:20.1.0
+| +--- com.google.android.gms:play-services-measurement:20.1.0
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.legacy:legacy-support-core-utils:1.0.0
+| | | +--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
@ -184,7 +184,7 @@
+| | +--- com.google.android.gms:play-services-measurement-base:20.1.0
+| | | \--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | +--- com.google.android.gms:play-services-measurement-impl:20.1.0
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
+| | | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| | | +--- com.google.android.gms:play-services-measurement-base:20.1.0 (*)
@ -205,7 +205,7 @@
+| | +--- com.google.firebase:firebase-installations-interop:17.0.0 -> 17.0.1 (*)
+| | \--- com.google.firebase:firebase-measurement-connector:19.0.0 (*)
+| \--- com.google.android.gms:play-services-measurement-sdk:20.1.0
+| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.0.0 (*)
+| +--- com.google.android.gms:play-services-measurement-base:20.1.0 (*)
+| \--- com.google.android.gms:play-services-measurement-impl:20.1.0 (*)
@ -236,7 +236,7 @@
+| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 -> 1.7.0 (*)
++--- com.google.android.gms:play-services-location:19.0.1
+| +--- com.google.android.gms:play-services-base:18.0.1
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.core:core:1.2.0 -> 1.9.0-alpha05 (*)
+| | +--- androidx.fragment:fragment:1.0.0 -> 1.4.0 (*)
+| | +--- com.google.android.gms:play-services-basement:18.0.0 (*)
@ -266,18 +266,18 @@
+| | +--- androidx.annotation:annotation:1.3.0
+| | +--- androidx.appcompat:appcompat-resources:1.6.0-alpha05
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.6.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.vectordrawable:vectordrawable:1.1.0
+| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | | | \--- androidx.collection:collection:1.1.0 (*)
+| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0
+| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+| | | +--- androidx.interpolator:interpolator:1.0.0
+| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
+| | | \--- androidx.collection:collection:1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.core:core:1.9.0-alpha05 (*)
+| | +--- androidx.cursoradapter:cursoradapter:1.0.0
+| | | \--- androidx.annotation:annotation:1.0.0 -> 1.3.0
@ -287,12 +287,12 @@
+| | | \--- androidx.customview:customview:1.1.0 (*)
+| | +--- androidx.emoji2:emoji2:1.2.0-alpha04
+| | | +--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | | +--- androidx.collection:collection:1.1.0 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.lifecycle:lifecycle-process:2.4.1 (*)
+| | | \--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 (*)
+| | +--- androidx.emoji2:emoji2-views-helper:1.2.0-alpha04
+| | | +--- androidx.collection:collection:1.1.0 (*)
+| | | +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| | | +--- androidx.core:core:1.3.0 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.emoji2:emoji2:1.2.0-alpha04 (*)
+| | +--- androidx.fragment:fragment:1.3.6 -> 1.4.0 (*)
@ -359,7 +359,7 @@
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.constraintlayout:constraintlayout:2.0.1 -> 2.1.2
+| | | +--- androidx.appcompat:appcompat:1.2.0 -> 1.6.0-alpha05 (*)
+| | | +--- androidx.core:core:1.3.2 -> 1.9.0-alpha05 (*)
@ -368,7 +368,7 @@
+| | +--- androidx.drawerlayout:drawerlayout:1.1.1 (*)
+| | +--- androidx.dynamicanimation:dynamicanimation:1.0.0
+| | | +--- androidx.core:core:1.0.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
+| | +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.1.0
+| | +--- androidx.fragment:fragment:1.2.5 -> 1.4.0 (*)
@ -377,18 +377,18 @@
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | | +--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.transition:transition:1.2.0
+| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | | +--- androidx.core:core:1.0.1 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*)
+| | \--- androidx.viewpager2:viewpager2:1.0.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.fragment:fragment:1.1.0 -> 1.4.0 (*)
+| | +--- androidx.recyclerview:recyclerview:1.1.0 (*)
+| | +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| | \--- androidx.collection:collection:1.1.0 (*)
+| | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| \--- org.conscrypt:conscrypt-android:2.5.2
++--- com.github.tasks.opentasks:opentasks-provider:a1faa1b
+| +--- org.dmfs:rfc5545-datetime:0.2.4
@ -451,7 +451,7 @@
+| +--- androidx.core:core-ktx:1.2.0 -> 1.9.0-alpha05 (*)
+| +--- androidx.collection:collection-ktx:1.1.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.20 -> 1.7.0 (*)
+| | \--- androidx.collection:collection:1.1.0 (*)
+| | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.3.1 -> 2.4.1 (*)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1 -> 2.5.0-rc01 (*)
+| +--- androidx.savedstate:savedstate-ktx:1.1.0 -> 1.2.0 (*)
@ -491,9 +491,10 @@
+| \--- io.noties.markwon:core:4.6.2 (*)
++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0 (*)
++--- com.squareup.okhttp3:okhttp:4.9.3
+| +--- com.squareup.okio:okio:2.8.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.0 -> 1.7.0 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.0 -> 1.7.0
+| +--- com.squareup.okio:okio:2.8.0 -> 3.0.0
+| | \--- com.squareup.okio:okio-jvm:3.0.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 -> 1.7.0 (*)
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 -> 1.7.0
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 1.7.0 (*)
++--- com.google.code.gson:gson:2.8.8
++--- com.google.android.material:material:1.6.1 -> 1.7.0-alpha02 (*)
@ -508,7 +509,7 @@
+| +--- androidx.fragment:fragment:1.2.4 -> 1.4.0 (*)
+| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*)
+| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
++--- com.jakewharton.timber:timber:5.0.1
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.5.21 -> 1.7.0 (*)
+| \--- org.jetbrains:annotations:20.1.0
@ -556,7 +557,7 @@
++--- net.openid:appauth:0.8.1
+| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| \--- androidx.browser:browser:1.3.0
+| +--- androidx.collection:collection:1.1.0 (*)
+| +--- androidx.collection:collection:1.1.0 -> 1.2.0 (*)
+| +--- androidx.concurrent:concurrent-futures:1.0.0 (*)
+| +--- androidx.interpolator:interpolator:1.0.0 (*)
+| +--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
@ -567,7 +568,7 @@
+| +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| +--- androidx.autofill:autofill:1.0.0
+| | \--- androidx.core:core:1.1.0 -> 1.9.0-alpha05 (*)
+| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| +--- androidx.compose.runtime:runtime:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.0 (*)
@ -595,7 +596,7 @@
+| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.0
+| +--- androidx.compose.ui:ui-text:1.2.0
+| | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
+| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
+| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*)
+| | +--- androidx.compose.runtime:runtime:1.2.0 (*)
+| | +--- androidx.compose.runtime:runtime-saveable:1.2.0 (*)
+| | +--- androidx.compose.ui:ui-graphics:1.2.0 (*)
@ -714,6 +715,30 @@
+| +--- androidx.databinding:viewbinding:4.1.2 -> 7.2.1 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.4.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.0 (*)
++--- io.coil-kt:coil-compose:2.1.0
+| +--- io.coil-kt:coil-compose-base:2.1.0
+| | +--- io.coil-kt:coil-base:2.1.0
+| | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.6.10
+| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.7.0 (*)
+| | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.10
+| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.7.0 (*)
+| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.0-rc01 (*)
+| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 (*)
+| | | +--- com.squareup.okhttp3:okhttp:4.9.3 (*)
+| | | +--- com.squareup.okio:okio:3.0.0 (*)
+| | | +--- androidx.annotation:annotation:1.3.0
+| | | +--- androidx.appcompat:appcompat-resources:1.4.1 -> 1.6.0-alpha05 (*)
+| | | +--- androidx.collection:collection:1.2.0 (*)
+| | | +--- androidx.core:core-ktx:1.7.0 -> 1.9.0-alpha05 (*)
+| | | \--- androidx.exifinterface:exifinterface:1.3.3
+| | | \--- androidx.annotation:annotation:1.2.0 -> 1.3.0
+| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.0 (*)
+| | +--- androidx.core:core-ktx:1.7.0 -> 1.9.0-alpha05 (*)
+| | \--- com.google.accompanist:accompanist-drawablepainter:0.23.1
+| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 -> 1.7.0 (*)
+| | \--- androidx.compose.ui:ui:1.1.1 -> 1.2.0 (*)
+| \--- io.coil-kt:coil:2.1.0
+| \--- io.coil-kt:coil-base:2.1.0 (*)
++--- com.google.accompanist:accompanist-flowlayout:0.24.12-rc
+| +--- androidx.compose.foundation:foundation:1.2.0-rc02 -> 1.2.0 (*)
+| \--- androidx.compose.ui:ui-util:1.2.0-rc02 -> 1.2.0 (*)

Loading…
Cancel
Save