mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
Merge pull request #1800 from Naveen3Singh/caldav_duplication
Fix event duplication issues
This commit is contained in:
@@ -38,7 +38,6 @@ import com.simplemobiletools.calendar.pro.helpers.IcsExporter.ExportResult
|
|||||||
import com.simplemobiletools.calendar.pro.helpers.IcsImporter.ImportResult
|
import com.simplemobiletools.calendar.pro.helpers.IcsImporter.ImportResult
|
||||||
import com.simplemobiletools.calendar.pro.jobs.CalDAVUpdateListener
|
import com.simplemobiletools.calendar.pro.jobs.CalDAVUpdateListener
|
||||||
import com.simplemobiletools.calendar.pro.models.Event
|
import com.simplemobiletools.calendar.pro.models.Event
|
||||||
import com.simplemobiletools.calendar.pro.models.EventType
|
|
||||||
import com.simplemobiletools.calendar.pro.models.ListEvent
|
import com.simplemobiletools.calendar.pro.models.ListEvent
|
||||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||||
import com.simplemobiletools.commons.dialogs.FilePickerDialog
|
import com.simplemobiletools.commons.dialogs.FilePickerDialog
|
||||||
@@ -593,10 +592,9 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
|
|||||||
toast(R.string.importing)
|
toast(R.string.importing)
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
val holidays = getString(R.string.holidays)
|
val holidays = getString(R.string.holidays)
|
||||||
var eventTypeId = eventsHelper.getEventTypeIdWithTitle(holidays)
|
var eventTypeId = eventsHelper.getEventTypeIdWithClass(HOLIDAY_EVENT)
|
||||||
if (eventTypeId == -1L) {
|
if (eventTypeId == -1L) {
|
||||||
val eventType = EventType(null, holidays, resources.getColor(R.color.default_holidays_color))
|
eventTypeId = eventsHelper.createPredefinedEventType(holidays, R.color.default_holidays_color, HOLIDAY_EVENT, true)
|
||||||
eventTypeId = eventsHelper.insertOrUpdateEventTypeSync(eventType)
|
|
||||||
}
|
}
|
||||||
val result = IcsImporter(this).importEvents(selectedHoliday as String, eventTypeId, 0, false, reminders)
|
val result = IcsImporter(this).importEvents(selectedHoliday as String, eventTypeId, 0, false, reminders)
|
||||||
handleParseResult(result)
|
handleParseResult(result)
|
||||||
|
@@ -22,7 +22,7 @@ import com.simplemobiletools.calendar.pro.models.Widget
|
|||||||
import com.simplemobiletools.commons.extensions.getProperPrimaryColor
|
import com.simplemobiletools.commons.extensions.getProperPrimaryColor
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
@Database(entities = [Event::class, EventType::class, Widget::class, Task::class], version = 7)
|
@Database(entities = [Event::class, EventType::class, Widget::class, Task::class], version = 8)
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(Converters::class)
|
||||||
abstract class EventsDatabase : RoomDatabase() {
|
abstract class EventsDatabase : RoomDatabase() {
|
||||||
|
|
||||||
@@ -54,6 +54,7 @@ abstract class EventsDatabase : RoomDatabase() {
|
|||||||
.addMigrations(MIGRATION_4_5)
|
.addMigrations(MIGRATION_4_5)
|
||||||
.addMigrations(MIGRATION_5_6)
|
.addMigrations(MIGRATION_5_6)
|
||||||
.addMigrations(MIGRATION_6_7)
|
.addMigrations(MIGRATION_6_7)
|
||||||
|
.addMigrations(MIGRATION_7_8)
|
||||||
.build()
|
.build()
|
||||||
db!!.openHelper.setWriteAheadLoggingEnabled(true)
|
db!!.openHelper.setWriteAheadLoggingEnabled(true)
|
||||||
}
|
}
|
||||||
@@ -127,5 +128,13 @@ abstract class EventsDatabase : RoomDatabase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val MIGRATION_7_8 = object : Migration(7, 8) {
|
||||||
|
override fun migrate(database: SupportSQLiteDatabase) {
|
||||||
|
database.apply {
|
||||||
|
execSQL("ALTER TABLE event_types ADD COLUMN type INTEGER NOT NULL DEFAULT 0")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,7 @@ import android.widget.ImageView
|
|||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
import com.simplemobiletools.calendar.pro.extensions.eventsHelper
|
import com.simplemobiletools.calendar.pro.extensions.eventsHelper
|
||||||
|
import com.simplemobiletools.calendar.pro.helpers.OTHER_EVENT
|
||||||
import com.simplemobiletools.calendar.pro.models.EventType
|
import com.simplemobiletools.calendar.pro.models.EventType
|
||||||
import com.simplemobiletools.commons.dialogs.ColorPickerDialog
|
import com.simplemobiletools.commons.dialogs.ColorPickerDialog
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
@@ -59,10 +60,16 @@ class EditEventTypeDialog(val activity: Activity, var eventType: EventType? = nu
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun eventTypeConfirmed(title: String, dialog: AlertDialog) {
|
private fun eventTypeConfirmed(title: String, dialog: AlertDialog) {
|
||||||
val eventIdWithTitle = activity.eventsHelper.getEventTypeIdWithTitle(title)
|
val eventTypeClass = eventType?.type ?: OTHER_EVENT
|
||||||
var isEventTypeTitleTaken = isNewEvent && eventIdWithTitle != -1L
|
val eventTypeId = if (eventTypeClass == OTHER_EVENT) {
|
||||||
|
activity.eventsHelper.getEventTypeIdWithTitle(title)
|
||||||
|
} else {
|
||||||
|
activity.eventsHelper.getEventTypeIdWithClass(eventTypeClass)
|
||||||
|
}
|
||||||
|
|
||||||
|
var isEventTypeTitleTaken = isNewEvent && eventTypeId != -1L
|
||||||
if (!isEventTypeTitleTaken) {
|
if (!isEventTypeTitleTaken) {
|
||||||
isEventTypeTitleTaken = !isNewEvent && eventType!!.id != eventIdWithTitle && eventIdWithTitle != -1L
|
isEventTypeTitleTaken = !isNewEvent && eventType!!.id != eventTypeId && eventTypeId != -1L
|
||||||
}
|
}
|
||||||
|
|
||||||
if (title.isEmpty()) {
|
if (title.isEmpty()) {
|
||||||
|
@@ -10,6 +10,7 @@ import android.content.Context
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.ActivityInfo
|
import android.content.pm.ActivityInfo
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
import android.database.Cursor
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.media.AudioAttributes
|
import android.media.AudioAttributes
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
@@ -677,3 +678,29 @@ fun Context.updateTaskCompletion(event: Event, completed: Boolean) {
|
|||||||
// mark event as "incomplete" in the main events db
|
// mark event as "incomplete" in the main events db
|
||||||
eventsDB.updateTaskCompletion(event.id!!, event.flags.removeBit(FLAG_TASK_COMPLETED))
|
eventsDB.updateTaskCompletion(event.id!!, event.flags.removeBit(FLAG_TASK_COMPLETED))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// same as Context.queryCursor but inlined to allow non-local returns
|
||||||
|
inline fun Context.queryCursorInlined(
|
||||||
|
uri: Uri,
|
||||||
|
projection: Array<String>,
|
||||||
|
selection: String? = null,
|
||||||
|
selectionArgs: Array<String>? = null,
|
||||||
|
sortOrder: String? = null,
|
||||||
|
showErrors: Boolean = false,
|
||||||
|
callback: (cursor: Cursor) -> Unit
|
||||||
|
) {
|
||||||
|
try {
|
||||||
|
val cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
|
||||||
|
cursor?.use {
|
||||||
|
if (cursor.moveToFirst()) {
|
||||||
|
do {
|
||||||
|
callback(cursor)
|
||||||
|
} while (cursor.moveToNext())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
if (showErrors) {
|
||||||
|
showErrorToast(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -6,6 +6,7 @@ import android.content.ContentValues
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.provider.CalendarContract.*
|
import android.provider.CalendarContract.*
|
||||||
import android.util.SparseIntArray
|
import android.util.SparseIntArray
|
||||||
|
import android.widget.Toast
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.reflect.TypeToken
|
import com.google.gson.reflect.TypeToken
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
@@ -13,11 +14,12 @@ import com.simplemobiletools.calendar.pro.extensions.*
|
|||||||
import com.simplemobiletools.calendar.pro.models.*
|
import com.simplemobiletools.calendar.pro.models.*
|
||||||
import com.simplemobiletools.calendar.pro.objects.States.isUpdatingCalDAV
|
import com.simplemobiletools.calendar.pro.objects.States.isUpdatingCalDAV
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.*
|
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CALENDAR
|
||||||
|
import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CALENDAR
|
||||||
import org.joda.time.DateTimeZone
|
import org.joda.time.DateTimeZone
|
||||||
import org.joda.time.format.DateTimeFormat
|
import org.joda.time.format.DateTimeFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.ArrayList
|
import kotlin.math.max
|
||||||
|
|
||||||
@SuppressLint("MissingPermission")
|
@SuppressLint("MissingPermission")
|
||||||
class CalDAVHelper(val context: Context) {
|
class CalDAVHelper(val context: Context) {
|
||||||
@@ -149,9 +151,12 @@ class CalDAVHelper(val context: Context) {
|
|||||||
private fun fetchCalDAVCalendarEvents(calendarId: Int, eventTypeId: Long, showToasts: Boolean) {
|
private fun fetchCalDAVCalendarEvents(calendarId: Int, eventTypeId: Long, showToasts: Boolean) {
|
||||||
val importIdsMap = HashMap<String, Event>()
|
val importIdsMap = HashMap<String, Event>()
|
||||||
val fetchedEventIds = ArrayList<String>()
|
val fetchedEventIds = ArrayList<String>()
|
||||||
|
|
||||||
|
var errorFetchingLocalEvents = false
|
||||||
val existingEvents = try {
|
val existingEvents = try {
|
||||||
context.eventsDB.getEventsFromCalDAVCalendar("$CALDAV-$calendarId")
|
context.eventsDB.getEventsFromCalDAVCalendar("$CALDAV-$calendarId")
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
errorFetchingLocalEvents = true
|
||||||
ArrayList()
|
ArrayList()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,14 +185,20 @@ class CalDAVHelper(val context: Context) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val selection = "${Events.CALENDAR_ID} = $calendarId"
|
val selection = "${Events.CALENDAR_ID} = $calendarId"
|
||||||
context.queryCursor(uri, projection, selection, showErrors = showToasts) { cursor ->
|
context.queryCursorInlined(uri, projection, selection, showErrors = showToasts) { cursor ->
|
||||||
val deleted = cursor.getIntValue(Events.DELETED)
|
val deleted = cursor.getIntValue(Events.DELETED)
|
||||||
if (deleted == 1) {
|
if (deleted == 1) {
|
||||||
return@queryCursor
|
return@queryCursorInlined
|
||||||
}
|
}
|
||||||
|
|
||||||
val id = cursor.getLongValue(Events._ID)
|
val id = cursor.getLongValue(Events._ID)
|
||||||
val title = cursor.getStringValue(Events.TITLE) ?: ""
|
val title = cursor.getStringValue(Events.TITLE) ?: ""
|
||||||
|
|
||||||
|
if (errorFetchingLocalEvents) {
|
||||||
|
context.toast(context.getString(R.string.fetching_event_failed, "\"$title\""), Toast.LENGTH_LONG)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
val description = cursor.getStringValue(Events.DESCRIPTION) ?: ""
|
val description = cursor.getStringValue(Events.DESCRIPTION) ?: ""
|
||||||
val startTS = cursor.getLongValue(Events.DTSTART) / 1000L
|
val startTS = cursor.getLongValue(Events.DTSTART) / 1000L
|
||||||
var endTS = cursor.getLongValue(Events.DTEND) / 1000L
|
var endTS = cursor.getLongValue(Events.DTEND) / 1000L
|
||||||
@@ -238,14 +249,18 @@ class CalDAVHelper(val context: Context) {
|
|||||||
val parentEvent = context.eventsDB.getEventWithImportId(parentImportId)
|
val parentEvent = context.eventsDB.getEventWithImportId(parentImportId)
|
||||||
val originalDayCode = Formatter.getDayCodeFromTS(originalInstanceTime / 1000L)
|
val originalDayCode = Formatter.getDayCodeFromTS(originalInstanceTime / 1000L)
|
||||||
if (parentEvent != null && !parentEvent.repetitionExceptions.contains(originalDayCode)) {
|
if (parentEvent != null && !parentEvent.repetitionExceptions.contains(originalDayCode)) {
|
||||||
|
val storedEventId = context.eventsDB.getEventIdWithImportId(importId)
|
||||||
|
if (storedEventId != null) {
|
||||||
|
event.id = storedEventId
|
||||||
|
}
|
||||||
event.parentId = parentEvent.id!!
|
event.parentId = parentEvent.id!!
|
||||||
parentEvent.addRepetitionException(originalDayCode)
|
parentEvent.addRepetitionException(originalDayCode)
|
||||||
eventsHelper.insertEvent(parentEvent, false, false)
|
eventsHelper.insertEvent(parentEvent, addToCalDAV = false, showToasts = false)
|
||||||
|
|
||||||
event.parentId = parentEvent.id!!
|
event.parentId = parentEvent.id!!
|
||||||
event.addRepetitionException(originalDayCode)
|
event.addRepetitionException(originalDayCode)
|
||||||
eventsHelper.insertEvent(event, false, false)
|
eventsHelper.insertEvent(event, addToCalDAV = false, showToasts = false)
|
||||||
return@queryCursor
|
return@queryCursorInlined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,10 +277,10 @@ class CalDAVHelper(val context: Context) {
|
|||||||
val formatter = DateTimeFormat.forPattern("yyyyMMdd'T'HHmmss'Z'")
|
val formatter = DateTimeFormat.forPattern("yyyyMMdd'T'HHmmss'Z'")
|
||||||
val offset = DateTimeZone.getDefault().getOffset(System.currentTimeMillis())
|
val offset = DateTimeZone.getDefault().getOffset(System.currentTimeMillis())
|
||||||
val dt = formatter.parseDateTime(it).plusMillis(offset)
|
val dt = formatter.parseDateTime(it).plusMillis(offset)
|
||||||
val daycode = Formatter.getDayCodeFromDateTime(dt)
|
val dayCode = Formatter.getDayCodeFromDateTime(dt)
|
||||||
event.repetitionExceptions.add(daycode)
|
event.repetitionExceptions.add(dayCode)
|
||||||
} else {
|
} else {
|
||||||
var potentialTS = it.substring(0, 8)
|
val potentialTS = it.substring(0, 8)
|
||||||
if (potentialTS.areDigitsOnly()) {
|
if (potentialTS.areDigitsOnly()) {
|
||||||
event.repetitionExceptions.add(potentialTS)
|
event.repetitionExceptions.add(potentialTS)
|
||||||
}
|
}
|
||||||
@@ -287,12 +302,12 @@ class CalDAVHelper(val context: Context) {
|
|||||||
|
|
||||||
if (existingEvent.hashCode() != event.hashCode() && title.isNotEmpty()) {
|
if (existingEvent.hashCode() != event.hashCode() && title.isNotEmpty()) {
|
||||||
event.id = originalEventId
|
event.id = originalEventId
|
||||||
eventsHelper.updateEvent(event, false, false)
|
eventsHelper.updateEvent(event, updateAtCalDAV = false, showToasts = false)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (title.isNotEmpty()) {
|
if (title.isNotEmpty()) {
|
||||||
importIdsMap[event.importId] = event
|
importIdsMap[event.importId] = event
|
||||||
eventsHelper.insertEvent(event, false, false)
|
eventsHelper.insertEvent(event, addToCalDAV = false, showToasts = false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -300,9 +315,9 @@ class CalDAVHelper(val context: Context) {
|
|||||||
val eventIdsToDelete = ArrayList<Long>()
|
val eventIdsToDelete = ArrayList<Long>()
|
||||||
importIdsMap.keys.filter { !fetchedEventIds.contains(it) }.forEach {
|
importIdsMap.keys.filter { !fetchedEventIds.contains(it) }.forEach {
|
||||||
val caldavEventId = it
|
val caldavEventId = it
|
||||||
existingEvents.forEach {
|
existingEvents.forEach { event ->
|
||||||
if (it.importId == caldavEventId) {
|
if (event.importId == caldavEventId) {
|
||||||
eventIdsToDelete.add(it.id!!)
|
eventIdsToDelete.add(event.id!!)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -428,7 +443,7 @@ class CalDAVHelper(val context: Context) {
|
|||||||
|
|
||||||
private fun getDurationCode(event: Event): String {
|
private fun getDurationCode(event: Event): String {
|
||||||
return if (event.getIsAllDay()) {
|
return if (event.getIsAllDay()) {
|
||||||
val dur = Math.max(1, (event.endTS - event.startTS) / DAY)
|
val dur = max(1, (event.endTS - event.startTS) / DAY)
|
||||||
"P${dur}D"
|
"P${dur}D"
|
||||||
} else {
|
} else {
|
||||||
Parser().getDurationCode((event.endTS - event.startTS) / 60L)
|
Parser().getDurationCode((event.endTS - event.startTS) / 60L)
|
||||||
|
@@ -41,6 +41,7 @@ const val REMINDER_DEFAULT_VALUE = "${REMINDER_OFF},${REMINDER_OFF},${REMINDER_O
|
|||||||
const val OTHER_EVENT = 0
|
const val OTHER_EVENT = 0
|
||||||
const val BIRTHDAY_EVENT = 1
|
const val BIRTHDAY_EVENT = 1
|
||||||
const val ANNIVERSARY_EVENT = 2
|
const val ANNIVERSARY_EVENT = 2
|
||||||
|
const val HOLIDAY_EVENT = 3
|
||||||
|
|
||||||
const val ITEM_EVENT = 0
|
const val ITEM_EVENT = 0
|
||||||
const val ITEM_SECTION_DAY = 1
|
const val ITEM_SECTION_DAY = 1
|
||||||
|
@@ -3,6 +3,7 @@ package com.simplemobiletools.calendar.pro.helpers
|
|||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.annotation.ColorRes
|
||||||
import androidx.collection.LongSparseArray
|
import androidx.collection.LongSparseArray
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
import com.simplemobiletools.calendar.pro.extensions.*
|
import com.simplemobiletools.calendar.pro.extensions.*
|
||||||
@@ -76,8 +77,12 @@ class EventsHelper(val context: Context) {
|
|||||||
|
|
||||||
fun getEventTypeIdWithTitle(title: String) = eventTypesDB.getEventTypeIdWithTitle(title) ?: -1L
|
fun getEventTypeIdWithTitle(title: String) = eventTypesDB.getEventTypeIdWithTitle(title) ?: -1L
|
||||||
|
|
||||||
|
fun getEventTypeIdWithClass(classId: Int) = eventTypesDB.getEventTypeIdWithClass(classId) ?: -1L
|
||||||
|
|
||||||
private fun getLocalEventTypeIdWithTitle(title: String) = eventTypesDB.getLocalEventTypeIdWithTitle(title) ?: -1L
|
private fun getLocalEventTypeIdWithTitle(title: String) = eventTypesDB.getLocalEventTypeIdWithTitle(title) ?: -1L
|
||||||
|
|
||||||
|
private fun getLocalEventTypeIdWithClass(classId: Int) = eventTypesDB.getLocalEventTypeIdWithClass(classId) ?: -1L
|
||||||
|
|
||||||
fun getEventTypeWithCalDAVCalendarId(calendarId: Int) = eventTypesDB.getEventTypeWithCalDAVCalendarId(calendarId)
|
fun getEventTypeWithCalDAVCalendarId(calendarId: Int) = eventTypesDB.getEventTypeWithCalDAVCalendarId(calendarId)
|
||||||
|
|
||||||
fun deleteEventTypes(eventTypes: ArrayList<EventType>, deleteEvents: Boolean) {
|
fun deleteEventTypes(eventTypes: ArrayList<EventType>, deleteEvents: Boolean) {
|
||||||
@@ -338,22 +343,36 @@ class EventsHelper(val context: Context) {
|
|||||||
callback(events)
|
callback(events)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun createPredefinedEventType(title: String, @ColorRes colorResId: Int, type: Int, caldav: Boolean = false): Long {
|
||||||
|
val eventType = EventType(id = null, title = title, color = context.resources.getColor(colorResId), type = type)
|
||||||
|
|
||||||
|
// check if the event type already exists but without the type (e.g. BIRTHDAY_EVENT) so as to avoid duplication
|
||||||
|
val originalEventTypeId = if (caldav) {
|
||||||
|
getEventTypeIdWithTitle(title)
|
||||||
|
} else {
|
||||||
|
getLocalEventTypeIdWithTitle(title)
|
||||||
|
}
|
||||||
|
if (originalEventTypeId != -1L) {
|
||||||
|
eventType.id = originalEventTypeId
|
||||||
|
}
|
||||||
|
|
||||||
|
return insertOrUpdateEventTypeSync(eventType)
|
||||||
|
}
|
||||||
|
|
||||||
fun getLocalBirthdaysEventTypeId(createIfNotExists: Boolean = true): Long {
|
fun getLocalBirthdaysEventTypeId(createIfNotExists: Boolean = true): Long {
|
||||||
val birthdays = context.getString(R.string.birthdays)
|
var eventTypeId = getLocalEventTypeIdWithClass(BIRTHDAY_EVENT)
|
||||||
var eventTypeId = getLocalEventTypeIdWithTitle(birthdays)
|
|
||||||
if (eventTypeId == -1L && createIfNotExists) {
|
if (eventTypeId == -1L && createIfNotExists) {
|
||||||
val eventType = EventType(null, birthdays, context.resources.getColor(R.color.default_birthdays_color))
|
val birthdays = context.getString(R.string.birthdays)
|
||||||
eventTypeId = insertOrUpdateEventTypeSync(eventType)
|
eventTypeId = createPredefinedEventType(birthdays, R.color.default_birthdays_color, BIRTHDAY_EVENT)
|
||||||
}
|
}
|
||||||
return eventTypeId
|
return eventTypeId
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getAnniversariesEventTypeId(createIfNotExists: Boolean = true): Long {
|
fun getAnniversariesEventTypeId(createIfNotExists: Boolean = true): Long {
|
||||||
val anniversaries = context.getString(R.string.anniversaries)
|
var eventTypeId = getLocalEventTypeIdWithClass(ANNIVERSARY_EVENT)
|
||||||
var eventTypeId = getLocalEventTypeIdWithTitle(anniversaries)
|
|
||||||
if (eventTypeId == -1L && createIfNotExists) {
|
if (eventTypeId == -1L && createIfNotExists) {
|
||||||
val eventType = EventType(null, anniversaries, context.resources.getColor(R.color.default_anniversaries_color))
|
val anniversaries = context.getString(R.string.anniversaries)
|
||||||
eventTypeId = insertOrUpdateEventTypeSync(eventType)
|
eventTypeId = createPredefinedEventType(anniversaries, R.color.default_anniversaries_color, ANNIVERSARY_EVENT)
|
||||||
}
|
}
|
||||||
return eventTypeId
|
return eventTypeId
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,12 @@ interface EventTypesDao {
|
|||||||
@Query("SELECT id FROM event_types WHERE title = :title AND caldav_calendar_id = 0 COLLATE NOCASE")
|
@Query("SELECT id FROM event_types WHERE title = :title AND caldav_calendar_id = 0 COLLATE NOCASE")
|
||||||
fun getLocalEventTypeIdWithTitle(title: String): Long?
|
fun getLocalEventTypeIdWithTitle(title: String): Long?
|
||||||
|
|
||||||
|
@Query("SELECT id FROM event_types WHERE type = :classId")
|
||||||
|
fun getEventTypeIdWithClass(classId: Int): Long?
|
||||||
|
|
||||||
|
@Query("SELECT id FROM event_types WHERE type = :classId AND caldav_calendar_id = 0")
|
||||||
|
fun getLocalEventTypeIdWithClass(classId: Int): Long?
|
||||||
|
|
||||||
@Query("SELECT * FROM event_types WHERE caldav_calendar_id = :calendarId")
|
@Query("SELECT * FROM event_types WHERE caldav_calendar_id = :calendarId")
|
||||||
fun getEventTypeWithCalDAVCalendarId(calendarId: Int): EventType?
|
fun getEventTypeWithCalDAVCalendarId(calendarId: Int): EventType?
|
||||||
|
|
||||||
|
@@ -4,15 +4,18 @@ import androidx.room.ColumnInfo
|
|||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import androidx.room.Index
|
import androidx.room.Index
|
||||||
import androidx.room.PrimaryKey
|
import androidx.room.PrimaryKey
|
||||||
|
import com.simplemobiletools.calendar.pro.helpers.OTHER_EVENT
|
||||||
|
|
||||||
@Entity(tableName = "event_types", indices = [(Index(value = ["id"], unique = true))])
|
@Entity(tableName = "event_types", indices = [(Index(value = ["id"], unique = true))])
|
||||||
data class EventType(
|
data class EventType(
|
||||||
@PrimaryKey(autoGenerate = true) var id: Long?,
|
@PrimaryKey(autoGenerate = true) var id: Long?,
|
||||||
@ColumnInfo(name = "title") var title: String,
|
@ColumnInfo(name = "title") var title: String,
|
||||||
@ColumnInfo(name = "color") var color: Int,
|
@ColumnInfo(name = "color") var color: Int,
|
||||||
@ColumnInfo(name = "caldav_calendar_id") var caldavCalendarId: Int = 0,
|
@ColumnInfo(name = "caldav_calendar_id") var caldavCalendarId: Int = 0,
|
||||||
@ColumnInfo(name = "caldav_display_name") var caldavDisplayName: String = "",
|
@ColumnInfo(name = "caldav_display_name") var caldavDisplayName: String = "",
|
||||||
@ColumnInfo(name = "caldav_email") var caldavEmail: String = "") {
|
@ColumnInfo(name = "caldav_email") var caldavEmail: String = "",
|
||||||
|
@ColumnInfo(name = "type") var type: Int = OTHER_EVENT
|
||||||
|
) {
|
||||||
fun getDisplayTitle() = if (caldavCalendarId == 0) title else "$caldavDisplayName ($caldavEmail)"
|
fun getDisplayTitle() = if (caldavCalendarId == 0) title else "$caldavDisplayName ($caldavEmail)"
|
||||||
|
|
||||||
fun isSyncedEventType() = caldavCalendarId != 0
|
fun isSyncedEventType() = caldavCalendarId != 0
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">الإثنين</string>
|
<string name="monday_alt">الإثنين</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Bazar ertəsi</string>
|
<string name="monday_alt">Bazar ertəsi</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Заняты</string>
|
<string name="status_busy">Заняты</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">панядзелак</string>
|
<string name="monday_alt">панядзелак</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Не са намерени календари, които да могат да се синхронизират</string>
|
<string name="no_synchronized_calendars">Не са намерени календари, които да могат да се синхронизират</string>
|
||||||
<string name="status_free">Свободно</string>
|
<string name="status_free">Свободно</string>
|
||||||
<string name="status_busy">Заето</string>
|
<string name="status_busy">Заето</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Понеделник</string>
|
<string name="monday_alt">Понеделник</string>
|
||||||
@@ -280,4 +281,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -227,6 +227,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">সোমবার</string>
|
<string name="monday_alt">সোমবার</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Lun</string>
|
<string name="monday_alt">Lun</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No s\'ha trobat cap calendari que es pugui sincronitzar</string>
|
<string name="no_synchronized_calendars">No s\'ha trobat cap calendari que es pugui sincronitzar</string>
|
||||||
<string name="status_free">Lliure</string>
|
<string name="status_free">Lliure</string>
|
||||||
<string name="status_busy">Ocupat</string>
|
<string name="status_busy">Ocupat</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">dilluns</string>
|
<string name="monday_alt">dilluns</string>
|
||||||
@@ -280,4 +281,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nebyly nalezeny žádné synchronizovatelné kalendáře</string>
|
<string name="no_synchronized_calendars">Nebyly nalezeny žádné synchronizovatelné kalendáře</string>
|
||||||
<string name="status_free">K dispozici</string>
|
<string name="status_free">K dispozici</string>
|
||||||
<string name="status_busy">Zaneprázdněný</string>
|
<string name="status_busy">Zaneprázdněný</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">pondělí</string>
|
<string name="monday_alt">pondělí</string>
|
||||||
@@ -283,4 +284,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Der er ikke fundet nogen kalendere der kan synkroniseres</string>
|
<string name="no_synchronized_calendars">Der er ikke fundet nogen kalendere der kan synkroniseres</string>
|
||||||
<string name="status_free">Ledig</string>
|
<string name="status_free">Ledig</string>
|
||||||
<string name="status_busy">Optaget</string>
|
<string name="status_busy">Optaget</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Mandag</string>
|
<string name="monday_alt">Mandag</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Es wurden keine synchronisierbaren Kalender gefunden</string>
|
<string name="no_synchronized_calendars">Es wurden keine synchronisierbaren Kalender gefunden</string>
|
||||||
<string name="status_free">Verfügbar</string>
|
<string name="status_free">Verfügbar</string>
|
||||||
<string name="status_busy">Beschäftigt</string>
|
<string name="status_busy">Beschäftigt</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Montag</string>
|
<string name="monday_alt">Montag</string>
|
||||||
@@ -280,4 +281,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Δεν μπόρεσαν να βρεθούν συγχρονισμένα Ημερολόγια</string>
|
<string name="no_synchronized_calendars">Δεν μπόρεσαν να βρεθούν συγχρονισμένα Ημερολόγια</string>
|
||||||
<string name="status_free">Ελεύθερα</string>
|
<string name="status_free">Ελεύθερα</string>
|
||||||
<string name="status_busy">Κατειλημμένα</string>
|
<string name="status_busy">Κατειλημμένα</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Δευτέρα</string>
|
<string name="monday_alt">Δευτέρα</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">lundo</string>
|
<string name="monday_alt">lundo</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No se han encontrado calendarios para sincronizar</string>
|
<string name="no_synchronized_calendars">No se han encontrado calendarios para sincronizar</string>
|
||||||
<string name="status_free">Libre</string>
|
<string name="status_free">Libre</string>
|
||||||
<string name="status_busy">Ocupado</string>
|
<string name="status_busy">Ocupado</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">lunes</string>
|
<string name="monday_alt">lunes</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Monday</string>
|
<string name="monday_alt">Monday</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Sinkronizatu daitekeen egutegirik ez da aurkitu</string>
|
<string name="no_synchronized_calendars">Sinkronizatu daitekeen egutegirik ez da aurkitu</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">astelehenean</string>
|
<string name="monday_alt">astelehenean</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Synkronoitavia kalentereita ei löytynyt</string>
|
<string name="no_synchronized_calendars">Synkronoitavia kalentereita ei löytynyt</string>
|
||||||
<string name="status_free">Vapaa</string>
|
<string name="status_free">Vapaa</string>
|
||||||
<string name="status_busy">Varattu</string>
|
<string name="status_busy">Varattu</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Maanantaisin</string>
|
<string name="monday_alt">Maanantaisin</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Aucun agenda synchronisable n\'a été trouvé</string>
|
<string name="no_synchronized_calendars">Aucun agenda synchronisable n\'a été trouvé</string>
|
||||||
<string name="status_free">Disponible</string>
|
<string name="status_free">Disponible</string>
|
||||||
<string name="status_busy">Occupé</string>
|
<string name="status_busy">Occupé</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Lundi</string>
|
<string name="monday_alt">Lundi</string>
|
||||||
@@ -280,4 +281,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Non se atoparon calendarios sincronizados</string>
|
<string name="no_synchronized_calendars">Non se atoparon calendarios sincronizados</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">luns</string>
|
<string name="monday_alt">luns</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Monday</string>
|
<string name="monday_alt">Monday</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nijedan sinkronizirajući kalendar nije pronađen</string>
|
<string name="no_synchronized_calendars">Nijedan sinkronizirajući kalendar nije pronađen</string>
|
||||||
<string name="status_free">Slobodan/Slobodna</string>
|
<string name="status_free">Slobodan/Slobodna</string>
|
||||||
<string name="status_busy">Zauzet/Zauzeta</string>
|
<string name="status_busy">Zauzet/Zauzeta</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Ponedjeljak</string>
|
<string name="monday_alt">Ponedjeljak</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nem találhatók szinkronizálható naptárak</string>
|
<string name="no_synchronized_calendars">Nem találhatók szinkronizálható naptárak</string>
|
||||||
<string name="status_free">Szabad</string>
|
<string name="status_free">Szabad</string>
|
||||||
<string name="status_busy">Elfoglalt</string>
|
<string name="status_busy">Elfoglalt</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">hétfőn</string>
|
<string name="monday_alt">hétfőn</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Senin</string>
|
<string name="monday_alt">Senin</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Non é stato trovato nessun calendario sincronizzabile</string>
|
<string name="no_synchronized_calendars">Non é stato trovato nessun calendario sincronizzabile</string>
|
||||||
<string name="status_free">Disponibile</string>
|
<string name="status_free">Disponibile</string>
|
||||||
<string name="status_busy">Occupato</string>
|
<string name="status_busy">Occupato</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Lunedì</string>
|
<string name="monday_alt">Lunedì</string>
|
||||||
@@ -280,4 +281,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">לא נמצאו לוחות שנה הניתנים לסנכרון</string>
|
<string name="no_synchronized_calendars">לא נמצאו לוחות שנה הניתנים לסנכרון</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">עסוק</string>
|
<string name="status_busy">עסוק</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">שני</string>
|
<string name="monday_alt">שני</string>
|
||||||
|
@@ -229,6 +229,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">月曜日</string>
|
<string name="monday_alt">月曜日</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">월요일</string>
|
<string name="monday_alt">월요일</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nerasta jokių sinchronizuojamų kalendorių</string>
|
<string name="no_synchronized_calendars">Nerasta jokių sinchronizuojamų kalendorių</string>
|
||||||
<string name="status_free">Laisvas</string>
|
<string name="status_free">Laisvas</string>
|
||||||
<string name="status_busy">Užimtas</string>
|
<string name="status_busy">Užimtas</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Pirmadienį</string>
|
<string name="monday_alt">Pirmadienį</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">pirmdiena</string>
|
<string name="monday_alt">pirmdiena</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Mandag</string>
|
<string name="monday_alt">Mandag</string>
|
||||||
|
@@ -224,6 +224,7 @@
|
|||||||
<string name="no_synchronized_calendars">Er zijn geen gesynchroniseerde agenda\'s gevonden.</string>
|
<string name="no_synchronized_calendars">Er zijn geen gesynchroniseerde agenda\'s gevonden.</string>
|
||||||
<string name="status_free">Vrij</string>
|
<string name="status_free">Vrij</string>
|
||||||
<string name="status_busy">Bezet</string>
|
<string name="status_busy">Bezet</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">maandag</string>
|
<string name="monday_alt">maandag</string>
|
||||||
@@ -276,4 +277,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nie znaleziono kalendarzy, które można zsynchronizować</string>
|
<string name="no_synchronized_calendars">Nie znaleziono kalendarzy, które można zsynchronizować</string>
|
||||||
<string name="status_free">Wolny</string>
|
<string name="status_free">Wolny</string>
|
||||||
<string name="status_busy">Zajęty</string>
|
<string name="status_busy">Zajęty</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">poniedziałek</string>
|
<string name="monday_alt">poniedziałek</string>
|
||||||
@@ -286,4 +287,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nenhum calendário encontrado para a sincronização</string>
|
<string name="no_synchronized_calendars">Nenhum calendário encontrado para a sincronização</string>
|
||||||
<string name="status_free">Livre</string>
|
<string name="status_free">Livre</string>
|
||||||
<string name="status_busy">Ocupado</string>
|
<string name="status_busy">Ocupado</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Segunda</string>
|
<string name="monday_alt">Segunda</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Não existem calendários passíveis de sincronização</string>
|
<string name="no_synchronized_calendars">Não existem calendários passíveis de sincronização</string>
|
||||||
<string name="status_free">Livre</string>
|
<string name="status_free">Livre</string>
|
||||||
<string name="status_busy">Ocupado</string>
|
<string name="status_busy">Ocupado</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">segunda</string>
|
<string name="monday_alt">segunda</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nu au fost găsite calendare care pot fi sincronizate</string>
|
<string name="no_synchronized_calendars">Nu au fost găsite calendare care pot fi sincronizate</string>
|
||||||
<string name="status_free">Liber</string>
|
<string name="status_free">Liber</string>
|
||||||
<string name="status_busy">Ocupat</string>
|
<string name="status_busy">Ocupat</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Luni</string>
|
<string name="monday_alt">Luni</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Синхронизируемые календари не найдены</string>
|
<string name="no_synchronized_calendars">Синхронизируемые календари не найдены</string>
|
||||||
<string name="status_free">Свободен</string>
|
<string name="status_free">Свободен</string>
|
||||||
<string name="status_busy">Занят</string>
|
<string name="status_busy">Занят</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">понедельник</string>
|
<string name="monday_alt">понедельник</string>
|
||||||
@@ -286,4 +287,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Nenašli sa žiadne synchronizovateľné kalendáre</string>
|
<string name="no_synchronized_calendars">Nenašli sa žiadne synchronizovateľné kalendáre</string>
|
||||||
<string name="status_free">Dostupný</string>
|
<string name="status_free">Dostupný</string>
|
||||||
<string name="status_busy">Zaneprázdnený</string>
|
<string name="status_busy">Zaneprázdnený</string>
|
||||||
|
<string name="fetching_event_failed">Pridávanie udalosti %s zlyhalo</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">pondelok</string>
|
<string name="monday_alt">pondelok</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Inga synkroniserbara kalendrar har hittats</string>
|
<string name="no_synchronized_calendars">Inga synkroniserbara kalendrar har hittats</string>
|
||||||
<string name="status_free">Ledig</string>
|
<string name="status_free">Ledig</string>
|
||||||
<string name="status_busy">Upptagen</string>
|
<string name="status_busy">Upptagen</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Måndag</string>
|
<string name="monday_alt">Måndag</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Monday</string>
|
<string name="monday_alt">Monday</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Eşzamanlanabilir takvim bulunamadı</string>
|
<string name="no_synchronized_calendars">Eşzamanlanabilir takvim bulunamadı</string>
|
||||||
<string name="status_free">Serbest</string>
|
<string name="status_free">Serbest</string>
|
||||||
<string name="status_busy">Meşgul</string>
|
<string name="status_busy">Meşgul</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">Pazartesi</string>
|
<string name="monday_alt">Pazartesi</string>
|
||||||
@@ -280,4 +281,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">Не знайдено календарів для синхронізації</string>
|
<string name="no_synchronized_calendars">Не знайдено календарів для синхронізації</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Зайнятий</string>
|
<string name="status_busy">Зайнятий</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">понеділок</string>
|
<string name="monday_alt">понеділок</string>
|
||||||
@@ -286,4 +287,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">未发现可同步的日历</string>
|
<string name="no_synchronized_calendars">未发现可同步的日历</string>
|
||||||
<string name="status_free">空闲</string>
|
<string name="status_free">空闲</string>
|
||||||
<string name="status_busy">繁忙</string>
|
<string name="status_busy">繁忙</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">星期一</string>
|
<string name="monday_alt">星期一</string>
|
||||||
@@ -277,4 +278,4 @@
|
|||||||
Haven't found some strings? There's more at
|
Haven't found some strings? There's more at
|
||||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||||
-->
|
-->
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">空閒</string>
|
<string name="status_free">空閒</string>
|
||||||
<string name="status_busy">繁忙</string>
|
<string name="status_busy">繁忙</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">星期一</string>
|
<string name="monday_alt">星期一</string>
|
||||||
|
@@ -228,6 +228,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">空閒</string>
|
<string name="status_free">空閒</string>
|
||||||
<string name="status_busy">繁忙</string>
|
<string name="status_busy">繁忙</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
<string name="monday_alt">星期一</string>
|
<string name="monday_alt">星期一</string>
|
||||||
|
@@ -239,6 +239,7 @@
|
|||||||
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
<string name="no_synchronized_calendars">No synchronizable calendars have been found</string>
|
||||||
<string name="status_free">Free</string>
|
<string name="status_free">Free</string>
|
||||||
<string name="status_busy">Busy</string>
|
<string name="status_busy">Busy</string>
|
||||||
|
<string name="fetching_event_failed">Fetching event %s failed</string>
|
||||||
|
|
||||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||||
<!-- used in repetition, like "Every last Sunday" -->
|
<!-- used in repetition, like "Every last Sunday" -->
|
||||||
|
Reference in New Issue
Block a user