Convert CalendarControlSet to compose

pull/1926/head
Alex Baker 2 years ago
parent 3736c4596e
commit 908d75909d

@ -19,14 +19,10 @@ public abstract class PermissionRequestor {
}
public boolean requestCalendarPermissions() {
return requestCalendarPermissions(REQUEST_CALENDAR);
}
public boolean requestCalendarPermissions(int requestCode) {
if (permissionChecker.canAccessCalendars()) {
return true;
}
requestPermissions(requestCode, permission.READ_CALENDAR, permission.WRITE_CALENDAR);
requestPermissions(REQUEST_CALENDAR, permission.READ_CALENDAR, permission.WRITE_CALENDAR);
return false;
}

@ -4,67 +4,90 @@ import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.provider.CalendarContract
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import android.widget.Toast.LENGTH_SHORT
import com.todoroo.astrid.gcal.GCalHelper
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.Text
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 androidx.compose.ui.unit.dp
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.PermissionUtil.verifyPermissions
import org.tasks.R
import org.tasks.Strings.isNullOrEmpty
import org.tasks.analytics.Firebase
import org.tasks.calendars.CalendarPicker
import org.tasks.calendars.CalendarProvider
import org.tasks.databinding.ControlSetGcalDisplayBinding
import org.tasks.dialogs.DialogBuilder
import org.tasks.compose.DisabledText
import org.tasks.compose.collectAsStateLifecycleAware
import org.tasks.extensions.Context.toast
import org.tasks.preferences.FragmentPermissionRequestor
import org.tasks.preferences.PermissionChecker
import org.tasks.preferences.Preferences
import org.tasks.themes.ThemeBase
import timber.log.Timber
import javax.inject.Inject
@AndroidEntryPoint
class CalendarControlSet : TaskEditControlFragment() {
private lateinit var cancelButton: View
private lateinit var calendar: TextView
class CalendarControlSet : TaskEditControlComposeFragment() {
@Inject lateinit var activity: Activity
@Inject lateinit var gcalHelper: GCalHelper
@Inject lateinit var calendarProvider: CalendarProvider
@Inject lateinit var preferences: Preferences
@Inject lateinit var permissionChecker: PermissionChecker
@Inject lateinit var permissionRequestor: FragmentPermissionRequestor
@Inject lateinit var firebase: Firebase
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var themeBase: ThemeBase
override fun onResume() {
super.onResume()
val canAccessCalendars = permissionChecker.canAccessCalendars()
viewModel.eventUri?.let {
viewModel.eventUri.value?.let {
if (canAccessCalendars && !calendarEntryExists(it)) {
viewModel.eventUri = null
viewModel.eventUri.value = null
}
}
if (!canAccessCalendars) {
viewModel.selectedCalendar = null
viewModel.selectedCalendar.value = null
}
refreshDisplayView()
}
override fun bind(parent: ViewGroup?) =
ControlSetGcalDisplayBinding.inflate(layoutInflater, parent, true).let {
cancelButton = it.clear.clear.apply {
setOnClickListener { clearCalendar() }
@Composable
override fun Body() {
val eventUri = viewModel.eventUri.collectAsStateLifecycleAware().value
val selectedCalendar =
viewModel.selectedCalendar.collectAsStateLifecycleAware().value?.let {
calendarProvider.getCalendar(it)?.name
}
if (eventUri?.isNotBlank() == true) {
Row {
Text(
text = stringResource(id = R.string.gcal_TEA_showCalendar_label),
modifier = Modifier
.weight(1f)
.padding(vertical = 20.dp)
)
IconButton(
onClick = { clear() },
Modifier.padding(vertical = 8.dp),
) {
Icon(
imageVector = Icons.Outlined.Delete,
contentDescription = stringResource(id = R.string.delete),
modifier = Modifier.alpha(ContentAlpha.medium),
)
}
}
calendar = it.calendarDisplayWhich
it.root
} else if (selectedCalendar?.isNotBlank() == true) {
Text(
text = selectedCalendar,
modifier = Modifier.padding(vertical = 20.dp),
)
} else {
DisabledText(
text = stringResource(id = R.string.dont_add_to_calendar),
modifier = Modifier.padding(vertical = 20.dp),
)
}
}
override val icon = R.drawable.ic_outline_event_24px
@ -72,40 +95,23 @@ class CalendarControlSet : TaskEditControlFragment() {
override val isClickable = true
private fun clearCalendar() {
if (viewModel.eventUri.isNullOrBlank()) {
clear()
} else {
dialogBuilder
.newDialog(R.string.delete_calendar_event_confirmation)
.setPositiveButton(R.string.delete) { _, _ ->
if (permissionRequestor.requestCalendarPermissions(REQUEST_CODE_CLEAR_EVENT)) {
clear()
}
}
.setNegativeButton(R.string.cancel, null)
.show()
}
}
private fun clear() {
viewModel.selectedCalendar = null
viewModel.eventUri = null
refreshDisplayView()
viewModel.selectedCalendar.value = null
viewModel.eventUri.value = null
}
override fun onRowClick() {
if (viewModel.eventUri.isNullOrBlank()) {
if (viewModel.eventUri.value.isNullOrBlank()) {
CalendarPicker.newCalendarPicker(this, REQUEST_CODE_PICK_CALENDAR, calendarName)
.show(parentFragmentManager, FRAG_TAG_CALENDAR_PICKER)
} else if (permissionRequestor.requestCalendarPermissions(REQUEST_CODE_OPEN_EVENT)) {
} else {
openCalendarEvent()
}
}
private fun openCalendarEvent() {
val cr = activity.contentResolver
val uri = Uri.parse(viewModel.eventUri)
val uri = Uri.parse(viewModel.eventUri.value)
val intent = Intent(Intent.ACTION_VIEW, uri)
try {
cr.query(
@ -115,8 +121,7 @@ class CalendarControlSet : TaskEditControlFragment() {
null).use { cursor ->
if (cursor!!.count == 0) {
activity.toast(R.string.calendar_event_not_found, duration = LENGTH_SHORT)
viewModel.eventUri = null
refreshDisplayView()
viewModel.eventUri.value = null
} else {
cursor.moveToFirst()
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, cursor.getLong(0))
@ -133,8 +138,7 @@ class CalendarControlSet : TaskEditControlFragment() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_CODE_PICK_CALENDAR) {
if (resultCode == Activity.RESULT_OK) {
viewModel.selectedCalendar = data!!.getStringExtra(CalendarPicker.EXTRA_CALENDAR_ID)
refreshDisplayView()
viewModel.selectedCalendar.value = data!!.getStringExtra(CalendarPicker.EXTRA_CALENDAR_ID)
}
} else {
super.onActivityResult(requestCode, resultCode, data)
@ -142,37 +146,7 @@ class CalendarControlSet : TaskEditControlFragment() {
}
private val calendarName: String?
get() = viewModel.selectedCalendar?.let { calendarProvider.getCalendar(it)?.name }
override fun onRequestPermissionsResult(
requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
if (requestCode == REQUEST_CODE_OPEN_EVENT) {
if (verifyPermissions(grantResults)) {
openCalendarEvent()
}
} else if (requestCode == REQUEST_CODE_CLEAR_EVENT) {
if (verifyPermissions(grantResults)) {
clear()
}
} else {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
}
private fun refreshDisplayView() = when {
viewModel.eventUri?.isNotBlank() == true -> {
calendar.setText(R.string.gcal_TEA_showCalendar_label)
cancelButton.visibility = View.VISIBLE
}
!viewModel.selectedCalendar.isNullOrBlank() -> {
calendar.text = calendarName
cancelButton.visibility = View.GONE
}
else -> {
calendar.text = null
cancelButton.visibility = View.GONE
}
}
get() = viewModel.selectedCalendar.value?.let { calendarProvider.getCalendar(it)?.name }
private fun calendarEntryExists(eventUri: String?): Boolean {
if (isNullOrEmpty(eventUri)) {
@ -197,7 +171,5 @@ class CalendarControlSet : TaskEditControlFragment() {
const val TAG = R.string.TEA_ctrl_gcal
private const val FRAG_TAG_CALENDAR_PICKER = "frag_tag_calendar_picker"
private const val REQUEST_CODE_PICK_CALENDAR = 70
private const val REQUEST_CODE_OPEN_EVENT = 71
private const val REQUEST_CODE_CLEAR_EVENT = 72
}
}

@ -7,6 +7,7 @@ import android.os.Parcelable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.Text
@ -15,6 +16,7 @@ import androidx.compose.material.icons.outlined.Notifications
import androidx.compose.material.icons.outlined.NotificationsOff
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.core.util.Pair
@ -207,7 +209,8 @@ fun LocationRow(
} else {
Icons.Outlined.NotificationsOff
},
contentDescription = null
contentDescription = null,
modifier = Modifier.alpha(ContentAlpha.medium),
)
}
}

@ -117,8 +117,7 @@ class TaskEditViewModel @Inject constructor(
if (isNew && permissionChecker.canAccessCalendars()) {
originalCalendar = preferences.defaultCalendar
}
eventUri = task.calendarURI
eventUri.value = task.calendarURI
priority.value = task.priority
}
@ -222,12 +221,12 @@ class TaskEditViewModel @Inject constructor(
var originalCalendar: String? = null
private set(value) {
field = value
selectedCalendar = value
selectedCalendar.value = value
}
var selectedCalendar: String? = null
var selectedCalendar = MutableStateFlow<String?>(null)
var eventUri: String? = null
var eventUri = MutableStateFlow<String?>(null)
var isNew: Boolean = false
private set
@ -302,11 +301,11 @@ class TaskEditViewModel @Inject constructor(
} ||
task.repeatAfterCompletion() != repeatAfterCompletion ||
task.repeatUntil != repeatUntil ||
originalCalendar != selectedCalendar ||
originalCalendar != selectedCalendar.value ||
if (task.calendarURI.isNullOrBlank()) {
!eventUri.isNullOrBlank()
!eventUri.value.isNullOrBlank()
} else {
task.calendarURI != eventUri
task.calendarURI != eventUri.value
} ||
task.elapsedSeconds != elapsedSeconds ||
task.estimatedSeconds != estimatedSeconds ||
@ -446,13 +445,13 @@ class TaskEditViewModel @Inject constructor(
if (!permissionChecker.canAccessCalendars()) {
return
}
if (eventUri == null) {
if (eventUri.value == null) {
calendarEventProvider.deleteEvent(task)
}
if (!task.hasDueDate()) {
return
}
selectedCalendar?.let {
selectedCalendar.value?.let {
try {
task.calendarURI = gCalHelper.createTaskEvent(task, it)?.toString()
} catch (e: Exception) {

@ -1,26 +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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/calendar_display_which"
style="@style/TaskEditTextPrimary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="100"
android:layout_gravity="top"
android:gravity="start"
android:hint="@string/dont_add_to_calendar"
android:textAlignment="viewStart"/>
<include
android:id="@+id/clear"
layout="@layout/control_set_clear_button" />
</LinearLayout>

@ -314,7 +314,6 @@
<string name="new_list">أنشأ قائمةً جديدة</string>
<string name="new_tag">أنشأ علامةً جديدة</string>
<string name="snooze_all">غفو الكل</string>
<string name="delete_calendar_event_confirmation">حذف حدث التقويم؟</string>
<string name="CFC_tag_contains_name">اسم العلامة يحتوي…</string>
<string name="CFC_tag_name">علامة…</string>
<string name="default_location">الموقع الافتراضي</string>

@ -122,7 +122,6 @@
<string name="CFC_title_contains_text">Заглавието съдържа: \?</string>
<string name="gcal_TEA_error">Грешка при добавяне на задача в календара!</string>
<string name="gcal_TEA_showCalendar_label">Добавяне на събитие в календара</string>
<string name="delete_calendar_event_confirmation">Изтриване на събитие от календара\?</string>
<string name="calendar_event_not_found">Събитието от календара не е намерено</string>
<string name="gcal_completed_title">%s (завършено)</string>
<string name="CFC_gtasks_list_text">В списъка: \?</string>

@ -169,7 +169,6 @@
<string name="default_location_reminder_on_departure">A la sortida</string>
<string name="default_location_reminder_on_arrival_or_departure">A larribada i sortida</string>
<string name="CFC_gtasks_list_name">A la llista GTasks…</string>
<string name="delete_calendar_event_confirmation">Esborrar esdeveniment de calendari\?</string>
<string name="repeat_option_does_not_repeat">No es repeteix</string>
<string name="repeat_option_every_day">Cada dia</string>
<string name="filter_any_start_date">Qualsevol data d\'inici</string>

@ -97,7 +97,6 @@
<string name="CFC_title_contains_text">Název obsahuje: \?</string>
<string name="gcal_TEA_error">Chyba při přidávání úkolu do kalendáře!</string>
<string name="gcal_TEA_showCalendar_label">Otevřít událost v kalendáři</string>
<string name="delete_calendar_event_confirmation">Smazat událost v kalendáři?</string>
<string name="gcal_completed_title">%s (dokončeno)</string>
<string name="CFC_gtasks_list_text">V seznamu: ?</string>
<string name="CFC_gtasks_list_name">V seznamu Google úkolů…</string>

@ -491,7 +491,6 @@
<string name="CFC_list_name">På listen…</string>
<string name="CFC_gtasks_list_text">På listen: \?</string>
<string name="calendar_event_not_found">Kalenderbegivenhed ikke fundet</string>
<string name="delete_calendar_event_confirmation">Slet kalenderbegivenhed\?</string>
<string name="CFC_tag_contains_text">Tag indeholder: \?</string>
<string name="CFC_tag_contains_name">Tag indeholder…</string>
<string name="CFC_tag_name">Tag…</string>

@ -116,7 +116,6 @@
<string name="CFC_title_contains_text">Titel enthält: ?</string>
<string name="gcal_TEA_error">Fehler beim Hinzufügen der Aufgabe zum Kalender!</string>
<string name="gcal_TEA_showCalendar_label">Kalendereintrag öffnen</string>
<string name="delete_calendar_event_confirmation">Kalendereintrag löschen?</string>
<string name="calendar_event_not_found">Kalendereintrag nicht gefunden</string>
<string name="gcal_completed_title">%s (abgeschlossen)</string>
<string name="CFC_gtasks_list_text">In der Liste: ?</string>

@ -151,7 +151,6 @@
<string name="CFC_gtasks_list_name">En GTasks Listo…</string>
<string name="CFC_gtasks_list_text">En Listo: \?</string>
<string name="calendar_event_not_found">Kalendara evento ne trovita</string>
<string name="delete_calendar_event_confirmation">Ĉu forigi kalendara evento\?</string>
<string name="gcal_TEA_showCalendar_label">Malfermi Kalendara Evento</string>
<string name="CFC_title_contains_text">Titolo enhavas: \?</string>
<string name="CFC_title_contains_name">Titolo enhavas…</string>

@ -116,7 +116,6 @@
<string name="CFC_title_contains_text">Título contiene: ?</string>
<string name="gcal_TEA_error">¡Ocurrió un error al agregar la tarea al calendario!</string>
<string name="gcal_TEA_showCalendar_label">Abrir evento del calendario</string>
<string name="delete_calendar_event_confirmation">¿Borrar evento de calendario?</string>
<string name="calendar_event_not_found">Evento de calendario no encontrado</string>
<string name="gcal_completed_title">%s (completado)</string>
<string name="CFC_gtasks_list_text">En la Lista: ?</string>

@ -92,7 +92,6 @@
<string name="CFC_title_contains_text">Pealkirjas on: \?</string>
<string name="gcal_TEA_error">Tõrge ülesande lisamisel kalendrisse!</string>
<string name="gcal_TEA_showCalendar_label">Ava kalendri sündmus</string>
<string name="delete_calendar_event_confirmation">Kustutada kalendri sündmus\?</string>
<string name="calendar_event_not_found">Kalendri sündmust ei leitud</string>
<string name="gcal_completed_title">%s (valmis)</string>
<string name="CFC_gtasks_list_text">Nimekirjas: \?</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">Izenburuak hau du: \?</string>
<string name="gcal_TEA_error">Errorea zeregina egutegira gehitzean!</string>
<string name="gcal_TEA_showCalendar_label">Ireki egutegiko gertaera</string>
<string name="delete_calendar_event_confirmation">Ezabatu egutegiko gertaera\?</string>
<string name="calendar_event_not_found">Ez da egutegiko gertaera aurkitu</string>
<string name="gcal_completed_title">%s (burututa)</string>
<string name="CFC_gtasks_list_text">Zerrendan: \?</string>

@ -107,7 +107,6 @@
<string name="CFC_title_contains_text">Otsikko sisältää: ?</string>
<string name="gcal_TEA_error">Virhe! Lisättäessä tehtävää kalenteriin!</string>
<string name="gcal_TEA_showCalendar_label">Avaa kalenteritapahtuma</string>
<string name="delete_calendar_event_confirmation">Poista kalenteritapahtuma\?</string>
<string name="calendar_event_not_found">Kalenteritapahtumaa ei löydy</string>
<string name="gcal_completed_title">%s (valmistunut)</string>
<string name="CFC_gtasks_list_text">Listalla: ?</string>

@ -109,7 +109,6 @@
<string name="CFC_title_contains_text">Titre contient: \?</string>
<string name="gcal_TEA_error">Erreur d\'ajout de tâche à l\'agenda !</string>
<string name="gcal_TEA_showCalendar_label">Ouvrir l\'évènement de l\'agenda</string>
<string name="delete_calendar_event_confirmation">Supprimer l\'évènement\?</string>
<string name="calendar_event_not_found">Événement non trouvé</string>
<string name="gcal_completed_title">%s (complété)</string>
<string name="CFC_gtasks_list_text">Dans la liste : ?</string>

@ -113,7 +113,6 @@
<string name="CFC_title_contains_text">O título contén: \?</string>
<string name="gcal_TEA_error">Erro ao engadir a tarefa ao calendario!</string>
<string name="gcal_TEA_showCalendar_label">Abrir evento de calendario</string>
<string name="delete_calendar_event_confirmation">Borrar evento do calendario\?</string>
<string name="calendar_event_not_found">Evento de calendario non atopado</string>
<string name="gcal_completed_title">%s (finalizado)</string>
<string name="CFC_gtasks_list_text">Na lista: \?</string>

@ -498,7 +498,6 @@
<string name="CFC_gtasks_list_text">U popisu: \?</string>
<string name="gcal_completed_title">%s (obavljeno)</string>
<string name="calendar_event_not_found">Kalendarski događaj nije pronađen</string>
<string name="delete_calendar_event_confirmation">Izbrisati kalendarski događaj\?</string>
<string name="gcal_TEA_showCalendar_label">Otvori kalendarski događaj</string>
<string name="CFC_title_contains_text">Naslov sadrži: \?</string>
<string name="CFC_title_contains_name">Naslov sadrži …</string>

@ -115,7 +115,6 @@
<string name="CFC_title_contains_text">A név tartalmazza ezt: ?</string>
<string name="gcal_TEA_error">Nem sikerült a feladat hozzáadása a naptárhoz!</string>
<string name="gcal_TEA_showCalendar_label">Naptáresemény megnyitása</string>
<string name="delete_calendar_event_confirmation">Naptárbejegyzés törlése?</string>
<string name="calendar_event_not_found">Naptáresemény nem található</string>
<string name="gcal_completed_title">%s (befejezve)</string>
<string name="CFC_gtasks_list_text">Listában: ?</string>

@ -80,7 +80,6 @@
<string name="CFC_tag_contains_text">Nama tag memuat: \?</string>
<string name="gcal_TEA_error">Terjadi kesalahan saat menambahkan tugas ke kalender!</string>
<string name="gcal_TEA_showCalendar_label">Buka Acara Kalender</string>
<string name="delete_calendar_event_confirmation">Hapus acara kalender\?</string>
<string name="calendar_event_not_found">Acara kalender tidak ditemukan</string>
<string name="gcal_completed_title">%s (selesai)</string>
<string name="CFC_gtasks_list_text">Dalam Daftar: \?</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">Il titolo contiene: ?</string>
<string name="gcal_TEA_error">Errore durante l\'aggiunta dell\'attività al calendario!</string>
<string name="gcal_TEA_showCalendar_label">Apri evento del calendario</string>
<string name="delete_calendar_event_confirmation">Cancellare l\'evento dal calendario\?</string>
<string name="calendar_event_not_found">Evento non trovato</string>
<string name="gcal_completed_title">%s (completato)</string>
<string name="CFC_gtasks_list_text">Nella lista: ?</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">כותרת מכילה: ?</string>
<string name="gcal_TEA_error">שגיאה בהוספת המשימה ליומן!</string>
<string name="gcal_TEA_showCalendar_label">פתח אירוע ביומן</string>
<string name="delete_calendar_event_confirmation">למחוק אירוע ?</string>
<string name="calendar_event_not_found">אירוע לא נמצא</string>
<string name="gcal_completed_title">%s (בוצעה)</string>
<string name="CFC_gtasks_list_text">ברשימה: ?</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">タイトルに含む: \?</string>
<string name="gcal_TEA_error">カレンダーへの登録に失敗しました!</string>
<string name="gcal_TEA_showCalendar_label">カレンダーのイベントを開く</string>
<string name="delete_calendar_event_confirmation">カレンダーイベントを削除しますか?</string>
<string name="calendar_event_not_found">カレンダーイベントが見つかりません</string>
<string name="gcal_completed_title">%s完了</string>
<string name="CFC_gtasks_list_text">リストにある: \?</string>

@ -115,7 +115,6 @@
<string name="CFC_title_contains_text">제목이 다음을 포함: ?</string>
<string name="gcal_TEA_error">달력에 할일 추가 실패!</string>
<string name="gcal_TEA_showCalendar_label">달력 일정 열기</string>
<string name="delete_calendar_event_confirmation">달력 일정을 삭제할까요\?</string>
<string name="calendar_event_not_found">달력 일정이 발견되지 않음</string>
<string name="gcal_completed_title">%s (완료)</string>
<string name="CFC_gtasks_list_text">목록에: ?</string>

@ -122,7 +122,6 @@
<string name="CFC_title_contains_text">Pavadinimas turi: ?</string>
<string name="gcal_TEA_error">Klaida pridedant užduotį prie kalendoriaus!</string>
<string name="gcal_TEA_showCalendar_label">Atidaryti kalendoriaus įvykį</string>
<string name="delete_calendar_event_confirmation">Ištrinti kalendoriau įvykį?</string>
<string name="calendar_event_not_found">Kalendoriaus įvykis nerastas</string>
<string name="gcal_completed_title">%s (užbaigta)</string>
<string name="CFC_gtasks_list_text">Yra sąraše ?</string>

@ -213,7 +213,6 @@
<string name="CFC_tag_name">Etikett…</string>
<string name="CFC_tag_contains_name">Etikettnavn inneholder…</string>
<string name="CFC_tag_contains_text">Etikettnavn inneholder: \?</string>
<string name="delete_calendar_event_confirmation">Slett kalenderhendelse\?</string>
<string name="calendar_event_not_found">Fant ikke kalenderhendelsen</string>
<string name="CFC_gtasks_list_name">I GTasks-listen…</string>
<string name="gtasks_GLA_authenticating">Identitetsbekrefter…</string>

@ -116,7 +116,6 @@
<string name="CFC_title_contains_text">Naam bevat: ?</string>
<string name="gcal_TEA_error">Fout bij toevoegen taak aan kalender!</string>
<string name="gcal_TEA_showCalendar_label">Kalender-item openen</string>
<string name="delete_calendar_event_confirmation">Kalender-item wissen\?</string>
<string name="calendar_event_not_found">Kalender-item niet gevonden</string>
<string name="gcal_completed_title">%s (voltooid)</string>
<string name="CFC_gtasks_list_text">In de lijst: \?</string>

@ -111,7 +111,6 @@
<string name="CFC_title_contains_text">Tytuł zawiera: ?</string>
<string name="gcal_TEA_error">Błąd podczas dodawania zadania do kalendarza!</string>
<string name="gcal_TEA_showCalendar_label">Otwórz zdarzenie kalendarza</string>
<string name="delete_calendar_event_confirmation">Usunąć zdarzenie kalendarza?</string>
<string name="calendar_event_not_found">Zdarzenie kalendarza nie odnazlezione</string>
<string name="gcal_completed_title">%s (ukończono)</string>
<string name="CFC_gtasks_list_text">Na liście: ?</string>

@ -112,7 +112,6 @@
<string name="CFC_title_contains_text">Título contem: ?</string>
<string name="gcal_TEA_error">Erro ao inserir a tarefa no calendário!</string>
<string name="gcal_TEA_showCalendar_label">Abrir evento no calendário</string>
<string name="delete_calendar_event_confirmation">Excluir evento no calendário?</string>
<string name="calendar_event_not_found">Evento no calendário não encontrado</string>
<string name="gcal_completed_title">%s (concluído)</string>
<string name="CFC_gtasks_list_text">Na lista: ?</string>

@ -107,7 +107,6 @@
<string name="CFC_title_contains_text">Título contém: ?</string>
<string name="gcal_TEA_error">Erro ao adicionar tarefa ao calendário!</string>
<string name="gcal_TEA_showCalendar_label">Abrir evento no calendário</string>
<string name="delete_calendar_event_confirmation">Eliminar evento do calendário\?</string>
<string name="calendar_event_not_found">Não foi encontrado o evento no calendário</string>
<string name="gcal_completed_title">%s (terminada)</string>
<string name="CFC_gtasks_list_text">Na lista: ?</string>

@ -412,7 +412,6 @@
<string name="CFC_gtasks_list_text">În listă: \?</string>
<string name="gcal_completed_title">%s (finalizat)</string>
<string name="calendar_event_not_found">Evenimentul din calendar nu a fost găsit</string>
<string name="delete_calendar_event_confirmation">Eliminare eveniment calendaristic\?</string>
<string name="gcal_TEA_showCalendar_label">Deschidere eveniment calendaristic</string>
<string name="gcal_TEA_error">Eroare la adăugarea sarcinii în calendar!</string>
<string name="CFC_title_contains_text">Titlul conține: \?</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">Название содержит: ?</string>
<string name="gcal_TEA_error">Ошибка при добавлении задачи в календарь!</string>
<string name="gcal_TEA_showCalendar_label">Открыть событие календаря</string>
<string name="delete_calendar_event_confirmation">Удалить событие календаря\?</string>
<string name="calendar_event_not_found">Событие календаря не найдено</string>
<string name="gcal_completed_title">%s (выполнено)</string>
<string name="CFC_gtasks_list_text">В списке: \?</string>

@ -372,7 +372,6 @@
<string name="gtasks_GLA_authenticating">සත්‍යාපනය…</string>
<string name="gcal_completed_title">%s (සම්පූර්ණයි)</string>
<string name="calendar_event_not_found">දින දර්ශන සිදුවීම සොයාගැනීමට නොහැකිවිය</string>
<string name="delete_calendar_event_confirmation">දින දර්ශන සිදුවීම මකා දමන්නද\?</string>
<string name="gcal_TEA_showCalendar_label">දින දර්ශන කාර්යය විවෘත කරන්න</string>
<string name="gcal_TEA_error">දින දර්ශනයට කාර්යය එකතු කිරීමේදී දෝෂයක් ඇති විය!</string>
<string name="CFC_importance_name">ප්‍රමුඛතාවය…</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">Zoznam obsahuje: ?</string>
<string name="gcal_TEA_error">Chyba pridania úlohy do kalendára!</string>
<string name="gcal_TEA_showCalendar_label">Otvoriť udalosť kalendára</string>
<string name="delete_calendar_event_confirmation">Zmazať udalosť z kalendára?</string>
<string name="calendar_event_not_found">Udalosť kalendára nenájdená</string>
<string name="gcal_completed_title">%s (dokončené)</string>
<string name="CFC_gtasks_list_text">V zozname: ?</string>

@ -107,7 +107,6 @@
<string name="CFC_title_contains_text">Titeln innehåller: ?</string>
<string name="gcal_TEA_error">Misslyckades med att lägga uppgift till kalender!</string>
<string name="gcal_TEA_showCalendar_label">Öppna kalenderhändelse</string>
<string name="delete_calendar_event_confirmation">Ta bort kalenderhändelse?</string>
<string name="calendar_event_not_found">Kalenderhändelsen hittades inte</string>
<string name="gcal_completed_title">%s (slutförd)</string>
<string name="CFC_gtasks_list_text">I listan: ?</string>

@ -124,7 +124,6 @@
<string name="CFC_gtasks_list_text">பட்டியலில் :\?</string>
<string name="gcal_completed_title">%s (முடிந்தது)</string>
<string name="calendar_event_not_found">நாள்காட்டி நிகழ்வு கிடைக்கவில்லை</string>
<string name="delete_calendar_event_confirmation">நாள்காட்டி நிகழ்வை நீக்கவா\?</string>
<string name="gcal_TEA_showCalendar_label">நாள்காட்டி நிகழ்வைத் திறக்கவும்</string>
<string name="CFC_title_contains_text">தலைப்பில்:\?</string>
<string name="CFC_title_contains_name">தலைப்பில்…</string>

@ -518,7 +518,6 @@
<string name="CFC_gtasks_list_name">ในรายการ GTasks…</string>
<string name="CFC_gtasks_list_text">ในรายการ: \?</string>
<string name="calendar_event_not_found">ไม่พบเหตุการณ์ในปฏิทิน</string>
<string name="delete_calendar_event_confirmation">ลบเหตุการณ์ในปฏิทินหรือไม่\?</string>
<string name="gcal_TEA_error">เกิดข้อผิดพลาดในการเพิ่มงานในปฏิทิน!</string>
<string name="CFC_tag_contains_text">ชื่อแท็กประกอบด้วย: \?</string>
<string name="CFC_tag_contains_name">ชื่อแท็กมี…</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">Başlık şunu içersin: ?</string>
<string name="gcal_TEA_error">Takvime görev eklenmesinde hata!</string>
<string name="gcal_TEA_showCalendar_label">Takvim Olayı</string>
<string name="delete_calendar_event_confirmation">Takvim etkinliğini sil?</string>
<string name="calendar_event_not_found">Takvim etkinliği bulunamadı</string>
<string name="gcal_completed_title">%s (tamamlandı)</string>
<string name="CFC_gtasks_list_text">Liste içinde: ?</string>

@ -117,7 +117,6 @@
<string name="CFC_title_contains_text">Заголовок містить: ?</string>
<string name="gcal_TEA_error">Помилка додавання завдання до календаря!</string>
<string name="gcal_TEA_showCalendar_label">Відкрити подію у календарі</string>
<string name="delete_calendar_event_confirmation">Видалити подію з календаря\?</string>
<string name="calendar_event_not_found">Подію у календарі не знайдено</string>
<string name="gcal_completed_title">%s (завершено)</string>
<string name="CFC_gtasks_list_text">У списку: \?</string>

@ -139,7 +139,6 @@
<string name="CFC_gtasks_list_text">لسٹ میں:?</string>
<string name="gcal_completed_title">%s مکمل ہو گیا</string>
<string name="calendar_event_not_found">کیلنڈر ایونٹ نہیں مل سکا</string>
<string name="delete_calendar_event_confirmation">کیلنڈر ایونٹ ڈیلیٹ کریں؟</string>
<string name="gcal_TEA_showCalendar_label">کیلنڈر ایونٹ کھولیں</string>
<string name="gcal_TEA_error">کیلنڈر میں کام شامل کرنے میں خرابی!</string>
<string name="repeat_every">ہر ایک</string>

@ -604,7 +604,6 @@
<string name="CFC_gtasks_list_text">Trong danh sách: \?</string>
<string name="gcal_completed_title">%s (đã hoàn thành)</string>
<string name="calendar_event_not_found">Không tìm thấy sự kiện trong lịch</string>
<string name="delete_calendar_event_confirmation">Xoá sự kiện trong lịch\?</string>
<string name="gcal_TEA_showCalendar_label">Mở sự kiện trong lịch</string>
<string name="gcal_TEA_error">Lỗi khi thêm công việc vào lịch!</string>
<string name="CFC_title_contains_text">Tiêu đề chứa: \?</string>

@ -106,7 +106,6 @@
<string name="CFC_title_contains_text">标题含:?</string>
<string name="gcal_TEA_error">将任务添加到日历时发生错误!</string>
<string name="gcal_TEA_showCalendar_label">打开日程表事件</string>
<string name="delete_calendar_event_confirmation">是否删除日历事件?</string>
<string name="calendar_event_not_found">找不到日历事件</string>
<string name="gcal_completed_title">%s (已完成)</string>
<string name="CFC_gtasks_list_text">列表内容:?</string>

@ -289,7 +289,6 @@
<string name="snooze_all">全部延遲提醒</string>
<string name="CFC_list_name">在清單中…</string>
<string name="calendar_event_not_found">找不到日曆活動</string>
<string name="delete_calendar_event_confirmation">要刪除日曆活動嗎 \?</string>
<string name="CFC_tag_contains_text">標註名稱包含: \?</string>
<string name="CFC_tag_contains_name">標註名稱包含…</string>
<string name="CFC_tag_name">標籤…</string>

@ -137,7 +137,6 @@ File %1$s contained %2$s.\n\n
<string name="CFC_title_contains_text">Title contains: ?</string>
<string name="gcal_TEA_error">Error adding task to calendar!</string>
<string name="gcal_TEA_showCalendar_label">Open Calendar Event</string>
<string name="delete_calendar_event_confirmation">Delete calendar event?</string>
<string name="calendar_event_not_found">Calendar event not found</string>
<string name="gcal_completed_title">%s (completed)</string>
<string name="CFC_gtasks_list_text">In List: ?</string>

Loading…
Cancel
Save