Merge branch 'main' into TagPickerCompose

pull/2849/head
Alex Baker 1 month ago committed by GitHub
commit a66b3a0847
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -160,6 +160,10 @@ public class AndroidUtilities {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O;
} }
public static boolean atLeastOreoMR1() {
return Build.VERSION.SDK_INT >= VERSION_CODES.O_MR1;
}
public static boolean atLeastP() { public static boolean atLeastP() {
return VERSION.SDK_INT >= Build.VERSION_CODES.P; return VERSION.SDK_INT >= Build.VERSION_CODES.P;
} }

@ -43,6 +43,7 @@ import androidx.lifecycle.lifecycleScope
import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.appbar.AppBarLayout.Behavior.DragCallback import com.google.android.material.appbar.AppBarLayout.Behavior.DragCallback
import com.google.android.material.composethemeadapter.MdcTheme import com.google.android.material.composethemeadapter.MdcTheme
import com.todoroo.andlib.utility.AndroidUtilities.atLeastOreoMR1
import com.todoroo.andlib.utility.DateUtilities import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
@ -150,6 +151,9 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
discardButtonClick() discardButtonClick()
} }
} }
if (atLeastOreoMR1()) {
activity?.setShowWhenLocked(preferences.showEditScreenWithoutUnlock)
}
binding = FragmentTaskEditBinding.inflate(inflater) binding = FragmentTaskEditBinding.inflate(inflater)
val view: View = binding.root val view: View = binding.root
@ -305,6 +309,13 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
return view return view
} }
override fun onDestroyView() {
super.onDestroyView()
if (atLeastOreoMR1()) {
activity?.setShowWhenLocked(false)
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
taskEditEventBus taskEditEventBus
.onEach(this::process) .onEach(this::process)

@ -3,10 +3,13 @@ package org.tasks.notifications
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.todoroo.andlib.utility.DateUtilities.now
import com.todoroo.astrid.alarms.AlarmService
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.tasks.injection.ApplicationScope import org.tasks.injection.ApplicationScope
import org.tasks.preferences.Preferences
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@ -14,12 +17,26 @@ import javax.inject.Inject
class NotificationClearedReceiver : BroadcastReceiver() { class NotificationClearedReceiver : BroadcastReceiver() {
@Inject lateinit var notificationManager: NotificationManager @Inject lateinit var notificationManager: NotificationManager
@Inject @ApplicationScope lateinit var scope: CoroutineScope @Inject @ApplicationScope lateinit var scope: CoroutineScope
@Inject lateinit var preferences: Preferences
@Inject lateinit var alarmService: AlarmService
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
val notificationId = intent.getLongExtra(NotificationManager.EXTRA_NOTIFICATION_ID, -1L) val notificationId = intent.getLongExtra(NotificationManager.EXTRA_NOTIFICATION_ID, -1L)
Timber.d("cleared $notificationId") Timber.d("cleared $notificationId")
if (notificationId <= 0L) return
scope.launch { scope.launch {
notificationManager.cancel(notificationId) if (preferences.useSwipeToSnooze()) {
var snoozeTime = preferences.swipeToSnoozeIntervalMS()
// snoozing for 0ms will cause the alarm service to miss this notification
// so sleep for 1s instead
if (snoozeTime == 0L) snoozeTime = 1000L
alarmService.snooze(
time = now() + snoozeTime,
taskIds = listOf(notificationId)
)
} else {
notificationManager.cancel(notificationId)
}
} }
} }
} }

@ -176,6 +176,9 @@ class Preferences @JvmOverloads constructor(
return if (firstDayOfWeek < 1 || firstDayOfWeek > 7) 0 else firstDayOfWeek return if (firstDayOfWeek < 1 || firstDayOfWeek > 7) 0 else firstDayOfWeek
} }
val showEditScreenWithoutUnlock: Boolean
get() = getBoolean(R.string.p_show_edit_screen_without_unlock, false)
@SuppressLint("ApplySharedPref") @SuppressLint("ApplySharedPref")
fun clear() { fun clear() {
prefs.edit().clear().commit() prefs.edit().clear().commit()
@ -465,7 +468,15 @@ class Preferences @JvmOverloads constructor(
fun bundleNotifications(): Boolean = getBoolean(R.string.p_bundle_notifications, true) fun bundleNotifications(): Boolean = getBoolean(R.string.p_bundle_notifications, true)
fun usePersistentReminders(): Boolean = fun usePersistentReminders(): Boolean =
AndroidUtilities.preUpsideDownCake() && getBoolean(R.string.p_rmd_persistent, true) AndroidUtilities.preUpsideDownCake() && getBoolean(R.string.p_rmd_persistent, true)
fun useSwipeToSnooze(): Boolean =
getBoolean(R.string.p_rmd_swipe_to_snooze_enabled, false)
fun swipeToSnoozeIntervalMS(): Long =
TimeUnit.MINUTES.toMillis(
getIntegerFromString(R.string.p_rmd_swipe_to_snooze_time_minutes, 0).toLong()
)
var isSyncOngoing: Boolean var isSyncOngoing: Boolean
get() = syncFlags.any { getBoolean(it, false) } get() = syncFlags.any { getBoolean(it, false) }

@ -2,6 +2,7 @@ package org.tasks.preferences.fragments
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.content.res.AppCompatResources
import com.todoroo.andlib.utility.AndroidUtilities.atLeastOreoMR1
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R import org.tasks.R
import org.tasks.injection.InjectingPreferenceFragment import org.tasks.injection.InjectingPreferenceFragment
@ -21,5 +22,7 @@ class TaskEditPreferences : InjectingPreferenceFragment() {
tint = context.getColor(R.color.icon_tint_with_alpha) tint = context.getColor(R.color.icon_tint_with_alpha)
iconVisible = true iconVisible = true
} }
findPreference(R.string.p_show_edit_screen_without_unlock).isVisible = atLeastOreoMR1()
} }
} }

@ -30,12 +30,12 @@
<string name="SSD_sort_auto">Intelligente Sortierung</string> <string name="SSD_sort_auto">Intelligente Sortierung</string>
<string name="SSD_sort_alpha">Nach Titel</string> <string name="SSD_sort_alpha">Nach Titel</string>
<string name="SSD_sort_due">Nach Fälligkeitsdatum</string> <string name="SSD_sort_due">Nach Fälligkeitsdatum</string>
<string name="SSD_sort_importance">Nach Wichtigkeit</string> <string name="SSD_sort_importance">Nach Priorität</string>
<string name="SSD_sort_modified">Nach letzter Änderung</string> <string name="SSD_sort_modified">Nach letzter Änderung</string>
<string name="FLA_search_filter">Suche nach \'%s\'</string> <string name="FLA_search_filter">Suche nach \'%s\'</string>
<string name="FLA_new_filter">Neuen Filter erstellen</string> <string name="FLA_new_filter">Neuen Filter erstellen</string>
<string name="TEA_title_hint">Aufgabenname</string> <string name="TEA_title_hint">Aufgabenname</string>
<string name="TEA_importance_label">Wichtigkeit</string> <string name="TEA_importance_label">Priorität</string>
<string name="TEA_note_label">Beschreibung</string> <string name="TEA_note_label">Beschreibung</string>
<string name="TEA_estimatedDuration_label">Wie lange wird es dauern?</string> <string name="TEA_estimatedDuration_label">Wie lange wird es dauern?</string>
<string name="TEA_elapsedDuration_label">Schon benötigte Zeit</string> <string name="TEA_elapsedDuration_label">Schon benötigte Zeit</string>
@ -48,7 +48,7 @@
<string name="week_before_due">Woche vor Fälligkeit</string> <string name="week_before_due">Woche vor Fälligkeit</string>
<string name="TEA_control_repeat">Wiederholen</string> <string name="TEA_control_repeat">Wiederholen</string>
<string name="TEA_control_gcal">Kalender</string> <string name="TEA_control_gcal">Kalender</string>
<string name="TEA_control_importance">Wichtigkeit</string> <string name="TEA_control_importance">Priorität</string>
<string name="TEA_control_location">Ort</string> <string name="TEA_control_location">Ort</string>
<string name="TEA_control_notes">Beschreibung</string> <string name="TEA_control_notes">Beschreibung</string>
<string name="TEA_control_files">Dateien</string> <string name="TEA_control_files">Dateien</string>
@ -74,7 +74,7 @@
<string name="EPr_manage_delete_all_gcal">Alle Kalendereinträge für Aufgaben löschen</string> <string name="EPr_manage_delete_all_gcal">Alle Kalendereinträge für Aufgaben löschen</string>
<string name="EPr_manage_delete_all_gcal_message">Möchten Sie wirklich alle Kalendereinträge für Aufgaben löschen\?</string> <string name="EPr_manage_delete_all_gcal_message">Möchten Sie wirklich alle Kalendereinträge für Aufgaben löschen\?</string>
<string name="task_defaults">Vorgaben für Aufgaben</string> <string name="task_defaults">Vorgaben für Aufgaben</string>
<string name="EPr_default_importance_title">Wichtigkeitsstandard</string> <string name="EPr_default_importance_title">Standardpriorität</string>
<string name="EPr_default_reminders_title">Standard-Erinnerungen</string> <string name="EPr_default_reminders_title">Standard-Erinnerungen</string>
<string name="EPr_default_location_reminder_title">Standard-Standort-Erinnerungen</string> <string name="EPr_default_location_reminder_title">Standard-Standort-Erinnerungen</string>
<string name="EPr_default_reminders_mode_title">Alarm/Vibrationssignal</string> <string name="EPr_default_reminders_mode_title">Alarm/Vibrationssignal</string>
@ -94,8 +94,8 @@
<string name="CFC_dueBefore_name">Fällig …</string> <string name="CFC_dueBefore_name">Fällig …</string>
<string name="no_due_date">Ohne Fälligkeit</string> <string name="no_due_date">Ohne Fälligkeit</string>
<string name="next_month">Nächster Monat</string> <string name="next_month">Nächster Monat</string>
<string name="CFC_importance_text">Mindestwichtigkeit?</string> <string name="CFC_importance_text">Mindestpriorität?</string>
<string name="CFC_importance_name">Wichtigkeit </string> <string name="CFC_importance_name">Priorität</string>
<string name="CFC_tag_text">Schlagwort: \?</string> <string name="CFC_tag_text">Schlagwort: \?</string>
<string name="CFC_tag_name">Schlagwort …</string> <string name="CFC_tag_name">Schlagwort …</string>
<string name="CFC_tag_contains_name">Schlagwort enthält …</string> <string name="CFC_tag_contains_name">Schlagwort enthält …</string>
@ -249,7 +249,7 @@
<string name="when_overdue">Wenn überfällig</string> <string name="when_overdue">Wenn überfällig</string>
<string name="when_due">Wenn fällig</string> <string name="when_due">Wenn fällig</string>
<string name="tags">Schlagwörter</string> <string name="tags">Schlagwörter</string>
<string name="change_priority">Wichtigkeit ändern</string> <string name="change_priority">Priorität ändern</string>
<string name="filters">Filter</string> <string name="filters">Filter</string>
<string name="date_shortcut_hour">Für eine Stunde</string> <string name="date_shortcut_hour">Für eine Stunde</string>
<string name="date_shortcut_morning">Vormittag</string> <string name="date_shortcut_morning">Vormittag</string>
@ -485,10 +485,10 @@
<string name="custom_filter_not">NICHT</string> <string name="custom_filter_not">NICHT</string>
<string name="custom_filter_or">ODER</string> <string name="custom_filter_or">ODER</string>
<string name="custom_filter_criteria">Filterkriterien</string> <string name="custom_filter_criteria">Filterkriterien</string>
<string name="filter_no_priority">Keine Wichtigkeit</string> <string name="filter_no_priority">Keine Priorität</string>
<string name="filter_low_priority">Niedrige Wichtigkeit</string> <string name="filter_low_priority">Niedrige Priorität</string>
<string name="filter_medium_priority">Mittlere Wichtigkeit</string> <string name="filter_medium_priority">Mittlere Priorität</string>
<string name="filter_high_priority">Hohe Wichtigkeit</string> <string name="filter_high_priority">Hohe Priorität</string>
<string name="filter_today_only">Nur heute</string> <string name="filter_today_only">Nur heute</string>
<string name="sort_created">Nach Erstellungszeit</string> <string name="sort_created">Nach Erstellungszeit</string>
<string name="filter_after_today">Ab morgen</string> <string name="filter_after_today">Ab morgen</string>
@ -724,4 +724,6 @@
<string name="repeats_every">Wiederholt sich</string> <string name="repeats_every">Wiederholt sich</string>
<string name="repeat_monthly_on_day_number">Monatlich an Tag %1d</string> <string name="repeat_monthly_on_day_number">Monatlich an Tag %1d</string>
<string name="repeat_monthly_on_the_nth_weekday">Monatlich an dem %1$s %2$s</string> <string name="repeat_monthly_on_the_nth_weekday">Monatlich an dem %1$s %2$s</string>
<string name="clear_completed_tasks_count">%s werden gelöscht</string>
<string name="theme_dynamic">Dynamisch</string>
</resources> </resources>

@ -517,7 +517,7 @@
<string name="got_it">J\'ai compris !</string> <string name="got_it">J\'ai compris !</string>
<string name="support_development_subscribe">Déverrouillez des fonctionnalités supplémentaires et soutenez les logiciels à code source ouvert</string> <string name="support_development_subscribe">Déverrouillez des fonctionnalités supplémentaires et soutenez les logiciels à code source ouvert</string>
<string name="enjoying_tasks">Appréciez-vous Tasks \?</string> <string name="enjoying_tasks">Appréciez-vous Tasks \?</string>
<string name="whats_new">Quoi de neuf \?</string> <string name="whats_new">Quoi de neuf?</string>
<string name="action_new_task">Nouvelle tâche</string> <string name="action_new_task">Nouvelle tâche</string>
<string name="yesterday_lowercase">hier</string> <string name="yesterday_lowercase">hier</string>
<string name="tomorrow_lowercase">demain</string> <string name="tomorrow_lowercase">demain</string>
@ -746,4 +746,5 @@
<string name="repeats_weekly_on">Répéter le</string> <string name="repeats_weekly_on">Répéter le</string>
<string name="repeats_never">Jamais</string> <string name="repeats_never">Jamais</string>
<string name="change_priority">Modifier la priorité</string> <string name="change_priority">Modifier la priorité</string>
<string name="theme_dynamic">Dynamique</string>
</resources> </resources>

@ -136,58 +136,72 @@
<string name="repeat_option_custom">Personalizado…</string> <string name="repeat_option_custom">Personalizado…</string>
<plurals name="task_count"> <plurals name="task_count">
<item quantity="one">%d tarefa</item> <item quantity="one">%d tarefa</item>
<item quantity="many">%d tarefas</item>
<item quantity="other">%d tarefas</item> <item quantity="other">%d tarefas</item>
</plurals> </plurals>
<plurals name="repeat_times"> <plurals name="repeat_times">
<item quantity="one">vez</item> <item quantity="one">vez</item>
<item quantity="many">vezes</item>
<item quantity="other">vezes</item> <item quantity="other">vezes</item>
</plurals> </plurals>
<plurals name="repeat_minutes"> <plurals name="repeat_minutes">
<item quantity="one">minuto</item> <item quantity="one">minuto</item>
<item quantity="many">minutos</item>
<item quantity="other">minutos</item> <item quantity="other">minutos</item>
</plurals> </plurals>
<plurals name="repeat_n_minutes"> <plurals name="repeat_n_minutes">
<item quantity="one">%d minuto</item> <item quantity="one">%d minuto</item>
<item quantity="many">%d minutos</item>
<item quantity="other">%d minutos</item> <item quantity="other">%d minutos</item>
</plurals> </plurals>
<plurals name="repeat_hours"> <plurals name="repeat_hours">
<item quantity="one">hora</item> <item quantity="one">hora</item>
<item quantity="many">horas</item>
<item quantity="other">horas</item> <item quantity="other">horas</item>
</plurals> </plurals>
<plurals name="repeat_n_hours"> <plurals name="repeat_n_hours">
<item quantity="one">%d hora</item> <item quantity="one">%d hora</item>
<item quantity="many">%d horas</item>
<item quantity="other">%d horas</item> <item quantity="other">%d horas</item>
</plurals> </plurals>
<plurals name="repeat_days"> <plurals name="repeat_days">
<item quantity="one">dia</item> <item quantity="one">dia</item>
<item quantity="many">dias</item>
<item quantity="other">dias</item> <item quantity="other">dias</item>
</plurals> </plurals>
<plurals name="repeat_n_days"> <plurals name="repeat_n_days">
<item quantity="one">%d dia</item> <item quantity="one">%d dia</item>
<item quantity="many">%d dias</item>
<item quantity="other">%d dias</item> <item quantity="other">%d dias</item>
</plurals> </plurals>
<plurals name="repeat_weeks"> <plurals name="repeat_weeks">
<item quantity="one">semana</item> <item quantity="one">semana</item>
<item quantity="many">semanas</item>
<item quantity="other">semanas</item> <item quantity="other">semanas</item>
</plurals> </plurals>
<plurals name="repeat_n_weeks"> <plurals name="repeat_n_weeks">
<item quantity="one">%d semana</item> <item quantity="one">%d semana</item>
<item quantity="many">%d semanas</item>
<item quantity="other">%d semanas</item> <item quantity="other">%d semanas</item>
</plurals> </plurals>
<plurals name="repeat_months"> <plurals name="repeat_months">
<item quantity="one">mês</item> <item quantity="one">mês</item>
<item quantity="many">meses</item>
<item quantity="other">meses</item> <item quantity="other">meses</item>
</plurals> </plurals>
<plurals name="repeat_n_months"> <plurals name="repeat_n_months">
<item quantity="one">%d mês</item> <item quantity="one">%d mês</item>
<item quantity="many">%d meses</item>
<item quantity="other">%d meses</item> <item quantity="other">%d meses</item>
</plurals> </plurals>
<plurals name="repeat_years"> <plurals name="repeat_years">
<item quantity="one">ano</item> <item quantity="one">ano</item>
<item quantity="many">anos</item>
<item quantity="other">anos</item> <item quantity="other">anos</item>
</plurals> </plurals>
<plurals name="repeat_n_years"> <plurals name="repeat_n_years">
<item quantity="one">%d ano</item> <item quantity="one">%d ano</item>
<item quantity="many">%d anos</item>
<item quantity="other">%d anos</item> <item quantity="other">%d anos</item>
</plurals> </plurals>
<string name="repeat_type_due">data de vencimento</string> <string name="repeat_type_due">data de vencimento</string>
@ -210,6 +224,7 @@
<string name="voice_command_added_task">Tarefa adicionada</string> <string name="voice_command_added_task">Tarefa adicionada</string>
<plurals name="Ntasks"> <plurals name="Ntasks">
<item quantity="one">1 tarefa</item> <item quantity="one">1 tarefa</item>
<item quantity="many">%d tarefas</item>
<item quantity="other">%d tarefas</item> <item quantity="other">%d tarefas</item>
</plurals> </plurals>
<string name="today">Hoje</string> <string name="today">Hoje</string>
@ -473,6 +488,7 @@
<string name="today_lowercase">hoje</string> <string name="today_lowercase">hoje</string>
<plurals name="subtask_count"> <plurals name="subtask_count">
<item quantity="one">%d sub-tarefa</item> <item quantity="one">%d sub-tarefa</item>
<item quantity="many">%d sub-tarefas</item>
<item quantity="other">%d sub-tarefas</item> <item quantity="other">%d sub-tarefas</item>
</plurals> </plurals>
<string name="CFC_list_name">Na lista…</string> <string name="CFC_list_name">Na lista…</string>
@ -636,6 +652,7 @@
<string name="repeat_type_completion_capitalized">Data de conclusão</string> <string name="repeat_type_completion_capitalized">Data de conclusão</string>
<plurals name="list_count"> <plurals name="list_count">
<item quantity="one">%d lista</item> <item quantity="one">%d lista</item>
<item quantity="many">%d listas</item>
<item quantity="other">%d listas</item> <item quantity="other">%d listas</item>
</plurals> </plurals>
<string name="filter_any_start_date">Qualquer data de início</string> <string name="filter_any_start_date">Qualquer data de início</string>
@ -656,18 +673,22 @@
<string name="top">Superior</string> <string name="top">Superior</string>
<plurals name="reminder_minutes"> <plurals name="reminder_minutes">
<item quantity="one">Minuto</item> <item quantity="one">Minuto</item>
<item quantity="many">Minutos</item>
<item quantity="other">Minutos</item> <item quantity="other">Minutos</item>
</plurals> </plurals>
<plurals name="reminder_hours"> <plurals name="reminder_hours">
<item quantity="one">Hora</item> <item quantity="one">Hora</item>
<item quantity="many">Horas</item>
<item quantity="other">Horas</item> <item quantity="other">Horas</item>
</plurals> </plurals>
<plurals name="reminder_days"> <plurals name="reminder_days">
<item quantity="one">Dia</item> <item quantity="one">Dia</item>
<item quantity="many">Dias</item>
<item quantity="other">Dias</item> <item quantity="other">Dias</item>
</plurals> </plurals>
<plurals name="reminder_week"> <plurals name="reminder_week">
<item quantity="one">Semana</item> <item quantity="one">Semana</item>
<item quantity="many">Semanas</item>
<item quantity="other">Semanas</item> <item quantity="other">Semanas</item>
</plurals> </plurals>
<string name="when_started">Quando começar</string> <string name="when_started">Quando começar</string>
@ -697,7 +718,7 @@
<string name="sign_in_to_tasks_disclosure">Seu endereço de e-mail e ID de conta serão transmitidos e armazenados pelo Tasks.org. Estas informações serão usadas para autenticação e para fornecer-lhe anúncios importantes relacionados ao serviço. Estas informações não serão compartilhadas com ninguém.</string> <string name="sign_in_to_tasks_disclosure">Seu endereço de e-mail e ID de conta serão transmitidos e armazenados pelo Tasks.org. Estas informações serão usadas para autenticação e para fornecer-lhe anúncios importantes relacionados ao serviço. Estas informações não serão compartilhadas com ninguém.</string>
<string name="enable_reminders">Ativar lembretes</string> <string name="enable_reminders">Ativar lembretes</string>
<string name="microsoft_selection_description">Sincronizar com a sua conta Microsoft pessoal</string> <string name="microsoft_selection_description">Sincronizar com a sua conta Microsoft pessoal</string>
<string name="enable_reminders_description">Os lembretes estão desativados nas configurações do Android</string> <string name="enable_reminders_description">Os lembretes estão desabilitados nas Configurações do Android</string>
<string name="TEA_creation_date">Data de criação</string> <string name="TEA_creation_date">Data de criação</string>
<string name="sign_in">Entrar</string> <string name="sign_in">Entrar</string>
<string name="repeats_custom_recurrence">Recorrência personalizada</string> <string name="repeats_custom_recurrence">Recorrência personalizada</string>
@ -712,7 +733,7 @@
<string name="sort_list">Por lista</string> <string name="sort_list">Por lista</string>
<string name="sort_sorting">Listagem</string> <string name="sort_sorting">Listagem</string>
<string name="repeat_monthly_on_the_nth_weekday">Mensalmente na %1$s %2$s</string> <string name="repeat_monthly_on_the_nth_weekday">Mensalmente na %1$s %2$s</string>
<string name="sort_completed">Por data de conclusão</string> <string name="sort_completed">Por hora de conclusão</string>
<string name="sort_completion_group">Conclusão %s</string> <string name="sort_completion_group">Conclusão %s</string>
<string name="repeats_every">Repete a cada</string> <string name="repeats_every">Repete a cada</string>
<string name="repeats_weekly_on">Repete em</string> <string name="repeats_weekly_on">Repete em</string>

@ -280,7 +280,7 @@
<string name="theme_wallpaper">Fundo</string> <string name="theme_wallpaper">Fundo</string>
<string name="theme_day_night">Dia/noite</string> <string name="theme_day_night">Dia/noite</string>
<string name="language">Idioma</string> <string name="language">Idioma</string>
<string name="restart_required">O Tasks precisa ser reiniciado para que a mudança entre em vigor</string> <string name="restart_required">Reinicie o Tasks para que esta alteração tenha efeito</string>
<string name="restart_now">Reiniciar agora</string> <string name="restart_now">Reiniciar agora</string>
<string name="restart_later">Mais tarde</string> <string name="restart_later">Mais tarde</string>
<string name="settings_localization">Tradução</string> <string name="settings_localization">Tradução</string>
@ -302,9 +302,9 @@
<string name="repeats_from">Repetir de</string> <string name="repeats_from">Repetir de</string>
<string name="repeats_single">Repetir %s</string> <string name="repeats_single">Repetir %s</string>
<string name="repeats_single_on">Repetir %1$s em %2$s</string> <string name="repeats_single_on">Repetir %1$s em %2$s</string>
<string name="repeats_single_until">Repetir %1$s até %2$s</string> <string name="repeats_single_until">Repetir %1$s, termina em %2$s</string>
<string name="repeats_single_number_of_times">Repetir %1$s, ocorre %2$d %3$s</string> <string name="repeats_single_number_of_times">Repetir %1$s, ocorre %2$d %3$s</string>
<string name="repeats_single_on_until">Repetir %1$s em %2$s até %3$s</string> <string name="repeats_single_on_until">Repetir %1$s em %2$s, termina em %3$s</string>
<string name="repeats_single_on_number_of_times">Repetir %1$s em %2$s, ocorre %3$d %4$s</string> <string name="repeats_single_on_number_of_times">Repetir %1$s em %2$s, ocorre %3$d %4$s</string>
<string name="repeats_minutely">a cada minuto</string> <string name="repeats_minutely">a cada minuto</string>
<string name="repeats_hourly">de hora em hora</string> <string name="repeats_hourly">de hora em hora</string>
@ -314,13 +314,13 @@
<string name="repeats_yearly">anualmente</string> <string name="repeats_yearly">anualmente</string>
<string name="repeats_plural">Repetir a cada %s</string> <string name="repeats_plural">Repetir a cada %s</string>
<string name="repeats_plural_on">Repetir a cada %1$s em %2$s</string> <string name="repeats_plural_on">Repetir a cada %1$s em %2$s</string>
<string name="repeats_plural_until">Repetir a cada %1$s até %2$s</string> <string name="repeats_plural_until">Repetir a cada %1$s, termina em %2$s</string>
<string name="repeats_plural_number_of_times">Repetir a cada %1$s, ocorre %2$d %3$s</string> <string name="repeats_plural_number_of_times">Repetir a cada %1$s, ocorre %2$d %3$s</string>
<string name="repeats_plural_on_until">Repetir a cada %1$s em %2$s até %3$s</string> <string name="repeats_plural_on_until">Repetir a cada %1$s em %2$s, termina em %3$s</string>
<string name="repeats_plural_on_number_of_times">Repetir a cada %1$s em %2$s, ocorre %3$d %4$s</string> <string name="repeats_plural_on_number_of_times">Repetir a cada %1$s em %2$s, ocorre %3$d %4$s</string>
<string name="dont_add_to_calendar">Não adicionar ao calendário</string> <string name="dont_add_to_calendar">Não adicionar ao calendário</string>
<string name="default_calendar">Calendário predefinido</string> <string name="default_calendar">Calendário predefinido</string>
<string name="bundle_notifications_summary">Combinar várias notificações numa só notificação</string> <string name="bundle_notifications_summary">Combinar várias notificações numa só</string>
<string name="repeat_monthly_every_day_of_nth_week">cada %1$s %2$s</string> <string name="repeat_monthly_every_day_of_nth_week">cada %1$s %2$s</string>
<string name="repeat_monthly_first_week">primeiro</string> <string name="repeat_monthly_first_week">primeiro</string>
<string name="repeat_monthly_second_week">segundo</string> <string name="repeat_monthly_second_week">segundo</string>
@ -525,11 +525,11 @@
<string name="above_average">Acima da média</string> <string name="above_average">Acima da média</string>
<string name="save_percent">Guardar %d%%</string> <string name="save_percent">Guardar %d%%</string>
<string name="migrate_count">Mover %s para Tasks.org</string> <string name="migrate_count">Mover %s para Tasks.org</string>
<string name="authorization_cancelled">Autorização</string> <string name="authorization_cancelled">Autorização cancelada</string>
<string name="follow_reddit">Entrar em r/tasks</string> <string name="follow_reddit">Entrar em r/tasks</string>
<string name="current_subscription">Subscrição atual: %s</string> <string name="current_subscription">Subscrição atual: %s</string>
<string name="price_per_month">%s$/mês</string> <string name="price_per_month">$%s/mês</string>
<string name="price_per_year">%s$/ano</string> <string name="price_per_year">$%s/ano</string>
<string name="custom_filter_is_subtask">É uma subtarefa</string> <string name="custom_filter_is_subtask">É uma subtarefa</string>
<string name="backup_location_warning">AVISO: os ficheiros localizados em \"%s\" serão eliminados se o Tasks for desinstalado! Escolha outra localização para impedir que o Android elimine os seus ficheiros.</string> <string name="backup_location_warning">AVISO: os ficheiros localizados em \"%s\" serão eliminados se o Tasks for desinstalado! Escolha outra localização para impedir que o Android elimine os seus ficheiros.</string>
<string name="backups_ignore_warnings">Ignorar avisos</string> <string name="backups_ignore_warnings">Ignorar avisos</string>
@ -687,9 +687,9 @@
<string name="caldav_server_unknown">Desconhecido</string> <string name="caldav_server_unknown">Desconhecido</string>
<string name="caldav_server_other">Outro</string> <string name="caldav_server_other">Outro</string>
<string name="caldav_server_type">Tipo de servidor</string> <string name="caldav_server_type">Tipo de servidor</string>
<string name="customize_edit_screen_summary">Rearrange ou remova campos</string> <string name="customize_edit_screen_summary">Reorganizar ou remover campos</string>
<string name="hint_customize_edit_title">Demasiada informação\?</string> <string name="hint_customize_edit_title">Demasiada informação\?</string>
<string name="hint_customize_edit_body">Pode costumizar este ecrã rearranjando ou removendo campos</string> <string name="hint_customize_edit_body">Pode personalizar este ecrã reorganizando ou removendo campos</string>
<string name="filter_snoozed">Adiado</string> <string name="filter_snoozed">Adiado</string>
<string name="dismiss">Dispensar</string> <string name="dismiss">Dispensar</string>
<string name="enable_reminders">Ativar lembretes</string> <string name="enable_reminders">Ativar lembretes</string>

@ -400,7 +400,7 @@
<string name="SSD_sort_my_order">Min ordning</string> <string name="SSD_sort_my_order">Min ordning</string>
<string name="error_adding_account">Fel: %s</string> <string name="error_adding_account">Fel: %s</string>
<string name="lists">Listor</string> <string name="lists">Listor</string>
<string name="sort_modified_group">Modifierad %s</string> <string name="sort_modified_group">Ändrad %s</string>
<string name="sort_created_group">Skapad %s</string> <string name="sort_created_group">Skapad %s</string>
<string name="filter_no_priority">Ingen prioritet</string> <string name="filter_no_priority">Ingen prioritet</string>
<string name="filter_low_priority">Låg prioritet</string> <string name="filter_low_priority">Låg prioritet</string>
@ -563,7 +563,7 @@
<string name="desaturate_colors_summary_on">Färgerna kommer att avmattas i mörka teman</string> <string name="desaturate_colors_summary_on">Färgerna kommer att avmattas i mörka teman</string>
<string name="hide_unused_places">Dölj oanvända platser</string> <string name="hide_unused_places">Dölj oanvända platser</string>
<string name="hide_unused_tags">Dölj oanvända taggar</string> <string name="hide_unused_tags">Dölj oanvända taggar</string>
<string name="navigation_drawer">Navigationslåda</string> <string name="navigation_drawer">Navigeringslåda</string>
<string name="desaturate_colors_summary_off">Färger avmattas inte i mörka teman</string> <string name="desaturate_colors_summary_off">Färger avmattas inte i mörka teman</string>
<string name="desaturate_colors">Avmatta färger</string> <string name="desaturate_colors">Avmatta färger</string>
<string name="chip_appearance">Utseende av flis</string> <string name="chip_appearance">Utseende av flis</string>
@ -720,4 +720,5 @@
<string name="ok">OK</string> <string name="ok">OK</string>
<string name="cancel">Avbryt</string> <string name="cancel">Avbryt</string>
<string name="clear_completed_tasks_count">%s kommer att tas bort</string> <string name="clear_completed_tasks_count">%s kommer att tas bort</string>
<string name="theme_dynamic">Dynamisk</string>
</resources> </resources>

@ -328,9 +328,9 @@
<string name="repeats_from">Şundan sonra yinele</string> <string name="repeats_from">Şundan sonra yinele</string>
<string name="repeats_single">%s yineler</string> <string name="repeats_single">%s yineler</string>
<string name="repeats_single_on">%2$s gününde %1$s yineler</string> <string name="repeats_single_on">%2$s gününde %1$s yineler</string>
<string name="repeats_single_until">%2$s gününe dek %1$s yineler</string> <string name="repeats_single_until">%1$s yineler, %2$s biter</string>
<string name="repeats_single_number_of_times">%1$s yineler, %2$d %3$s gerçekleşir</string> <string name="repeats_single_number_of_times">%1$s yineler, %2$d %3$s gerçekleşir</string>
<string name="repeats_single_on_until">%3$s gününe dek %2$s gününde %1$s yineler</string> <string name="repeats_single_on_until">%2$s gününde %1$s yineler, %3$s biter</string>
<string name="repeats_single_on_number_of_times">%2$s gününde %1$s yineler, %3$d %4$s gerçekleşir</string> <string name="repeats_single_on_number_of_times">%2$s gününde %1$s yineler, %3$d %4$s gerçekleşir</string>
<string name="repeats_minutely">Dakikalık</string> <string name="repeats_minutely">Dakikalık</string>
<string name="repeats_hourly">Saatlik</string> <string name="repeats_hourly">Saatlik</string>
@ -340,9 +340,9 @@
<string name="repeats_yearly">Yıllık</string> <string name="repeats_yearly">Yıllık</string>
<string name="repeats_plural">Her %s yineler</string> <string name="repeats_plural">Her %s yineler</string>
<string name="repeats_plural_on">%2$s gününde her %1$s yineler</string> <string name="repeats_plural_on">%2$s gününde her %1$s yineler</string>
<string name="repeats_plural_until">%2$s gününe dek her %1$s yineler</string> <string name="repeats_plural_until">Her %1$s yineler, %2$s biter</string>
<string name="repeats_plural_number_of_times">Her %1$s yineler, %2$d %3$s gerçekleşir</string> <string name="repeats_plural_number_of_times">Her %1$s yineler, %2$d %3$s gerçekleşir</string>
<string name="repeats_plural_on_until">%3$s gününe dek %2$s gününde her %1$s yineler</string> <string name="repeats_plural_on_until">%2$s gününde her %1$s yineler, %3$s biter</string>
<string name="repeats_plural_on_number_of_times">%2$s gününde her %1$s yineler, %3$d %4$s gerçekleşir</string> <string name="repeats_plural_on_number_of_times">%2$s gününde her %1$s yineler, %3$d %4$s gerçekleşir</string>
<string name="dont_add_to_calendar">Takvime ekleme</string> <string name="dont_add_to_calendar">Takvime ekleme</string>
<string name="default_calendar">Öntanımlı takvim</string> <string name="default_calendar">Öntanımlı takvim</string>
@ -725,4 +725,5 @@
<string name="sort_grouping">Kümeleme</string> <string name="sort_grouping">Kümeleme</string>
<string name="change_priority">Önceliği değiştir</string> <string name="change_priority">Önceliği değiştir</string>
<string name="clear_completed_tasks_count">%s silinecek</string> <string name="clear_completed_tasks_count">%s silinecek</string>
<string name="theme_dynamic">Dinamik</string>
</resources> </resources>

@ -16,6 +16,14 @@
<item>@string/none</item> <item>@string/none</item>
</string-array> </string-array>
<string-array name="swipe_to_snooze_times">
<item>@string/swipe_to_snooze_time_immediately</item>
<item>@string/swipe_to_snooze_time_15_minutes</item>
<item>@string/swipe_to_snooze_time_30_minutes</item>
<item>@string/swipe_to_snooze_time_1_hour</item>
<item>@string/swipe_to_snooze_time_24_hours</item>
</string-array>
<string-array name="reminder_ring_modes"> <string-array name="reminder_ring_modes">
<item>@string/ring_once</item> <item>@string/ring_once</item>
<item>@string/ring_five_times</item> <item>@string/ring_five_times</item>

@ -75,6 +75,17 @@
<!-- whether "clear all notifications" clears astrid notifications --> <!-- whether "clear all notifications" clears astrid notifications -->
<string name="p_rmd_persistent">notif_annoy</string> <string name="p_rmd_persistent">notif_annoy</string>
<string name="p_rmd_swipe_to_snooze_enabled">notif_swipe_to_snooze_enabled</string>
<string name="p_rmd_swipe_to_snooze_time_minutes">notif_swipe_to_snooze_time_minutes</string>
<string-array name="swipe_to_snooze_time_values">
<item>0</item>
<item>15</item>
<item>30</item>
<item>60</item>
<item>1440</item>
</string-array>
<!-- whether to vibrate phone when reminder fires --> <!-- whether to vibrate phone when reminder fires -->
<string name="p_rmd_vibrate">notif_vibrate</string> <string name="p_rmd_vibrate">notif_vibrate</string>
@ -98,6 +109,7 @@
<!-- show comments in task edit --> <!-- show comments in task edit -->
<string name="p_show_task_edit_comments">p_show_task_edit_comments</string> <string name="p_show_task_edit_comments">p_show_task_edit_comments</string>
<string name="p_show_edit_screen_without_unlock">show_edit_screen_without_unlock</string>
<string-array name="EPr_reminder_random_hours"> <string-array name="EPr_reminder_random_hours">
<!-- values (in hours) associated with random reminders above. --> <!-- values (in hours) associated with random reminders above. -->

@ -150,6 +150,14 @@ File %1$s contained %2$s.\n\n
<string name="rmd_EPr_rmd_time_desc">Notifications for tasks without due times will appear at %s</string> <string name="rmd_EPr_rmd_time_desc">Notifications for tasks without due times will appear at %s</string>
<string name="persistent_notifications">Persistent notifications</string> <string name="persistent_notifications">Persistent notifications</string>
<string name="persistent_notifications_description">Persistent notifications cannot be cleared</string> <string name="persistent_notifications_description">Persistent notifications cannot be cleared</string>
<string name="swipe_to_snooze_title">Swipe to snooze</string>
<string name="swipe_to_snooze_description">Snooze time</string>
<string name="swipe_to_snooze_time_description">A cleared notification will be snoozed and recreated %s</string>
<string name="swipe_to_snooze_time_immediately">immediately</string>
<string name="swipe_to_snooze_time_15_minutes">after 15 minutes</string>
<string name="swipe_to_snooze_time_30_minutes">after 30 minutes</string>
<string name="swipe_to_snooze_time_1_hour">after 1 hour</string>
<string name="swipe_to_snooze_time_24_hours">after 24 hours</string>
<string name="rmd_EPr_defaultRemind_title">Random reminders</string> <string name="rmd_EPr_defaultRemind_title">Random reminders</string>
<string name="default_random_reminder_disabled">Disabled</string> <string name="default_random_reminder_disabled">Disabled</string>
<string name="default_random_reminder_hourly">Hourly</string> <string name="default_random_reminder_hourly">Hourly</string>
@ -369,6 +377,8 @@ File %1$s contained %2$s.\n\n
<string name="url_invalid_scheme">Must begin with http(s)://</string> <string name="url_invalid_scheme">Must begin with http(s)://</string>
<string name="no_title">(No title)</string> <string name="no_title">(No title)</string>
<string name="back_button_saves_task">Back button saves task</string> <string name="back_button_saves_task">Back button saves task</string>
<string name="show_edit_screen_without_unlock">Show edit screen without unlock</string>
<string name="show_edit_screen_without_unlock_summary">Enables use of Quick Settings tile without unlocking device</string>
<string name="default_list">Default list</string> <string name="default_list">Default list</string>
<string name="default_tags">Default tags</string> <string name="default_tags">Default tags</string>
<string name="default_recurrence">Default recurrence</string> <string name="default_recurrence">Default recurrence</string>

@ -71,6 +71,23 @@
android:summary="@string/more_notification_settings_summary" android:summary="@string/more_notification_settings_summary"
app:icon="@drawable/ic_open_in_new_24px" /> app:icon="@drawable/ic_open_in_new_24px" />
<PreferenceCategory android:title="@string/swipe_to_snooze_title">
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="@string/p_rmd_swipe_to_snooze_enabled"
android:title="@string/enabled" />
<ListPreference
android:defaultValue="15"
android:entries="@array/swipe_to_snooze_times"
android:entryValues="@array/swipe_to_snooze_time_values"
android:key="@string/p_rmd_swipe_to_snooze_time_minutes"
android:summary="@string/swipe_to_snooze_time_description"
android:title="@string/swipe_to_snooze_description"
android:dependency="@string/p_rmd_swipe_to_snooze_enabled" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/default_reminder"> <PreferenceCategory android:title="@string/default_reminder">
<SwitchPreferenceCompat <SwitchPreferenceCompat

@ -35,4 +35,11 @@
android:title="@string/EPr_show_task_edit_comments" android:title="@string/EPr_show_task_edit_comments"
app:singleLineTitle="false" /> app:singleLineTitle="false" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="@string/p_show_edit_screen_without_unlock"
android:title="@string/show_edit_screen_without_unlock"
android:summary="@string/show_edit_screen_without_unlock_summary"
app:singleLineTitle="false" />
</PreferenceScreen> </PreferenceScreen>

@ -1,4 +1,4 @@
++--- androidx.databinding:viewbinding:8.3.1 ++--- androidx.databinding:viewbinding:8.3.2
+| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 +| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1
+| \--- androidx.annotation:annotation-jvm:1.7.1 +| \--- androidx.annotation:annotation-jvm:1.7.1
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.22 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.22
@ -6,16 +6,16 @@
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.22 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.22 (c)
+| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 (c)
++--- androidx.databinding:databinding-common:8.3.1 ++--- androidx.databinding:databinding-common:8.3.2
++--- androidx.databinding:databinding-runtime:8.3.1 ++--- androidx.databinding:databinding-runtime:8.3.2
+| +--- androidx.collection:collection:1.0.0 -> 1.4.0 +| +--- androidx.collection:collection:1.0.0 -> 1.4.0
+| | \--- androidx.collection:collection-jvm:1.4.0 +| | \--- androidx.collection:collection-jvm:1.4.0
+| | +--- androidx.annotation:annotation:1.7.0 -> 1.7.1 (*) +| | +--- androidx.annotation:annotation:1.7.0 -> 1.7.1 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*)
+| | +--- androidx.collection:collection-ktx:1.4.0 (c) +| | +--- androidx.collection:collection-ktx:1.4.0 (c)
+| | \--- androidx.collection:collection-ktx:1.3.0 -> 1.4.0 (c) +| | \--- androidx.collection:collection-ktx:1.3.0 -> 1.4.0 (c)
+| +--- androidx.databinding:databinding-common:8.3.1 +| +--- androidx.databinding:databinding-common:8.3.2
+| +--- androidx.databinding:viewbinding:8.3.1 (*) +| +--- androidx.databinding:viewbinding:8.3.2 (*)
+| \--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 +| \--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| +--- androidx.arch.core:core-common:2.2.0 +| +--- androidx.arch.core:core-common:2.2.0
@ -80,11 +80,11 @@
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0 (c) +| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0 (c)
++--- androidx.databinding:databinding-adapters:8.3.1 ++--- androidx.databinding:databinding-adapters:8.3.2
+| +--- androidx.databinding:databinding-runtime:8.3.1 (*) +| +--- androidx.databinding:databinding-runtime:8.3.2 (*)
+| \--- androidx.databinding:databinding-common:8.3.1 +| \--- androidx.databinding:databinding-common:8.3.2
++--- androidx.databinding:databinding-ktx:8.3.1 ++--- androidx.databinding:databinding-ktx:8.3.2
+| +--- androidx.databinding:databinding-runtime:8.3.1 (*) +| +--- androidx.databinding:databinding-runtime:8.3.2 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 -> 1.9.22 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 -> 1.9.22 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*)
+| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.7.0 +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.7.0
@ -263,10 +263,10 @@
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*)
+| \--- androidx.core:core:1.12.0 (c) +| \--- androidx.core:core:1.12.0 (c)
++--- com.github.bitfireAT:cert4android:7814052 ++--- com.github.bitfireAT:cert4android:7814052
+| +--- androidx.databinding:databinding-common:7.2.0 -> 8.3.1 +| +--- androidx.databinding:databinding-common:7.2.0 -> 8.3.2
+| +--- androidx.databinding:databinding-runtime:7.2.0 -> 8.3.1 (*) +| +--- androidx.databinding:databinding-runtime:7.2.0 -> 8.3.2 (*)
+| +--- androidx.databinding:databinding-adapters:7.2.0 -> 8.3.1 (*) +| +--- androidx.databinding:databinding-adapters:7.2.0 -> 8.3.2 (*)
+| +--- androidx.databinding:databinding-ktx:7.2.0 -> 8.3.1 (*) +| +--- androidx.databinding:databinding-ktx:7.2.0 -> 8.3.2 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21 -> 1.9.22 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21 -> 1.9.22 (*)
+| +--- androidx.appcompat:appcompat:1.4.1 -> 1.6.1 +| +--- androidx.appcompat:appcompat:1.4.1 -> 1.6.1
+| | +--- androidx.activity:activity:1.6.0 -> 1.8.2 +| | +--- androidx.activity:activity:1.6.0 -> 1.8.2
@ -1018,7 +1018,7 @@
++--- androidx.compose.ui:ui-viewbinding -> 1.6.4 ++--- androidx.compose.ui:ui-viewbinding -> 1.6.4
+| +--- androidx.compose.ui:ui:1.6.4 (*) +| +--- androidx.compose.ui:ui:1.6.4 (*)
+| +--- androidx.compose.ui:ui-util:1.6.4 (*) +| +--- androidx.compose.ui:ui-util:1.6.4 (*)
+| +--- androidx.databinding:viewbinding:4.1.2 -> 8.3.1 (*) +| +--- androidx.databinding:viewbinding:4.1.2 -> 8.3.2 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.6.2 (*) +| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.6.2 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*)
+| +--- androidx.compose.ui:ui:1.6.4 (c) +| +--- androidx.compose.ui:ui:1.6.4 (c)

@ -1,4 +1,4 @@
++--- androidx.databinding:viewbinding:8.3.1 ++--- androidx.databinding:viewbinding:8.3.2
+| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1 +| \--- androidx.annotation:annotation:1.0.0 -> 1.7.1
+| \--- androidx.annotation:annotation-jvm:1.7.1 +| \--- androidx.annotation:annotation-jvm:1.7.1
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.22 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.22
@ -6,16 +6,16 @@
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.22 (c)
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.22 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.22 (c)
+| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22 (c)
++--- androidx.databinding:databinding-common:8.3.1 ++--- androidx.databinding:databinding-common:8.3.2
++--- androidx.databinding:databinding-runtime:8.3.1 ++--- androidx.databinding:databinding-runtime:8.3.2
+| +--- androidx.collection:collection:1.0.0 -> 1.4.0 +| +--- androidx.collection:collection:1.0.0 -> 1.4.0
+| | \--- androidx.collection:collection-jvm:1.4.0 +| | \--- androidx.collection:collection-jvm:1.4.0
+| | +--- androidx.annotation:annotation:1.7.0 -> 1.7.1 (*) +| | +--- androidx.annotation:annotation:1.7.0 -> 1.7.1 (*)
+| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*)
+| | +--- androidx.collection:collection-ktx:1.4.0 (c) +| | +--- androidx.collection:collection-ktx:1.4.0 (c)
+| | \--- androidx.collection:collection-ktx:1.3.0 -> 1.4.0 (c) +| | \--- androidx.collection:collection-ktx:1.3.0 -> 1.4.0 (c)
+| +--- androidx.databinding:databinding-common:8.3.1 +| +--- androidx.databinding:databinding-common:8.3.2
+| +--- androidx.databinding:viewbinding:8.3.1 (*) +| +--- androidx.databinding:viewbinding:8.3.2 (*)
+| \--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0 +| \--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.7.0
+| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.7.1 (*)
+| +--- androidx.arch.core:core-common:2.2.0 +| +--- androidx.arch.core:core-common:2.2.0
@ -81,11 +81,11 @@
+| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0 (c)
+| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0 (c) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0 (c)
+| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0 (c) +| \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0 (c)
++--- androidx.databinding:databinding-adapters:8.3.1 ++--- androidx.databinding:databinding-adapters:8.3.2
+| +--- androidx.databinding:databinding-runtime:8.3.1 (*) +| +--- androidx.databinding:databinding-runtime:8.3.2 (*)
+| \--- androidx.databinding:databinding-common:8.3.1 +| \--- androidx.databinding:databinding-common:8.3.2
++--- androidx.databinding:databinding-ktx:8.3.1 ++--- androidx.databinding:databinding-ktx:8.3.2
+| +--- androidx.databinding:databinding-runtime:8.3.1 (*) +| +--- androidx.databinding:databinding-runtime:8.3.2 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 -> 1.9.22 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 -> 1.9.22 (*)
+| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*) +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1 -> 1.7.3 (*)
+| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.7.0 +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.7.0
@ -605,10 +605,10 @@
+| | \--- org.slf4j:slf4j-api:2.0.3 +| | \--- org.slf4j:slf4j-api:2.0.3
+| \--- androidx.core:core-ktx:1.9.0 -> 1.12.0 (*) +| \--- androidx.core:core-ktx:1.9.0 -> 1.12.0 (*)
++--- com.github.bitfireAT:cert4android:7814052 ++--- com.github.bitfireAT:cert4android:7814052
+| +--- androidx.databinding:databinding-common:7.2.0 -> 8.3.1 +| +--- androidx.databinding:databinding-common:7.2.0 -> 8.3.2
+| +--- androidx.databinding:databinding-runtime:7.2.0 -> 8.3.1 (*) +| +--- androidx.databinding:databinding-runtime:7.2.0 -> 8.3.2 (*)
+| +--- androidx.databinding:databinding-adapters:7.2.0 -> 8.3.1 (*) +| +--- androidx.databinding:databinding-adapters:7.2.0 -> 8.3.2 (*)
+| +--- androidx.databinding:databinding-ktx:7.2.0 -> 8.3.1 (*) +| +--- androidx.databinding:databinding-ktx:7.2.0 -> 8.3.2 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21 -> 1.9.22 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21 -> 1.9.22 (*)
+| +--- androidx.appcompat:appcompat:1.4.1 -> 1.6.1 (*) +| +--- androidx.appcompat:appcompat:1.4.1 -> 1.6.1 (*)
+| +--- androidx.cardview:cardview:1.0.0 +| +--- androidx.cardview:cardview:1.0.0
@ -1243,7 +1243,7 @@
++--- androidx.compose.ui:ui-viewbinding -> 1.6.4 ++--- androidx.compose.ui:ui-viewbinding -> 1.6.4
+| +--- androidx.compose.ui:ui:1.6.4 (*) +| +--- androidx.compose.ui:ui:1.6.4 (*)
+| +--- androidx.compose.ui:ui-util:1.6.4 (*) +| +--- androidx.compose.ui:ui-util:1.6.4 (*)
+| +--- androidx.databinding:viewbinding:4.1.2 -> 8.3.1 (*) +| +--- androidx.databinding:viewbinding:4.1.2 -> 8.3.2 (*)
+| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.6.2 (*) +| +--- androidx.fragment:fragment-ktx:1.3.2 -> 1.6.2 (*)
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.22 (*)
+| +--- androidx.compose.ui:ui:1.6.4 (c) +| +--- androidx.compose.ui:ui:1.6.4 (c)

@ -15,15 +15,15 @@ dashclock-api = "2.0.0"
dav4jvm = "2.2.1" dav4jvm = "2.2.1"
desugar_jdk_libs = "2.0.4" desugar_jdk_libs = "2.0.4"
etebase = "2.3.2" etebase = "2.3.2"
firebase = "32.0.0" firebase = "32.7.4"
firebase-crashlytics-gradle = "2.9.5" firebase-crashlytics-gradle = "2.9.9"
flipper = "0.191.0" flipper = "0.250.0"
fragment-ktx = "1.5.7" fragment-ktx = "1.6.2"
google-oauth2 = "0.27.0" google-oauth2 = "1.20.0"
google-api-drive = "v3-rev20230423-2.0.0" google-api-drive = "v3-rev20240123-2.0.0"
google-api-tasks = "v1-rev20230401-2.0.0" google-api-tasks = "v1-rev20240225-2.0.0"
google-services = "4.3.15" google-services = "4.4.1"
gradle = "8.2.1" gradle = "8.3.2"
gson = "2.10.1" gson = "2.10.1"
hilt = "1.2.0" hilt = "1.2.0"
ical4android = "12fe73a" ical4android = "12fe73a"

Loading…
Cancel
Save