add a helper function for retrieving calDAV calendars

This commit is contained in:
tibbi 2017-08-13 12:15:10 +02:00
parent 3f06fd20b3
commit 13b2cdf1d7
2 changed files with 37 additions and 3 deletions

View File

@ -11,21 +11,22 @@ import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.database.Cursor
import android.graphics.Color
import android.net.Uri
import android.os.Build
import android.provider.CalendarContract
import android.support.v4.content.ContextCompat
import android.support.v7.app.NotificationCompat
import com.simplemobiletools.calendar.R
import com.simplemobiletools.calendar.activities.EventActivity
import com.simplemobiletools.calendar.helpers.*
import com.simplemobiletools.calendar.helpers.Formatter
import com.simplemobiletools.calendar.models.CalDAVCalendar
import com.simplemobiletools.calendar.models.Event
import com.simplemobiletools.calendar.receivers.NotificationReceiver
import com.simplemobiletools.calendar.services.SnoozeService
import com.simplemobiletools.commons.extensions.getContrastColor
import com.simplemobiletools.commons.extensions.isKitkatPlus
import com.simplemobiletools.commons.extensions.isLollipopPlus
import com.simplemobiletools.commons.extensions.*
import org.joda.time.DateTime
import org.joda.time.DateTimeZone
import java.text.SimpleDateFormat
@ -230,6 +231,36 @@ fun Context.launchNewEventIntent(startNewTask: Boolean = false, today: Boolean =
}
}
fun Context.getCalDAVCalendars(): List<CalDAVCalendar> {
val calendars = ArrayList<CalDAVCalendar>()
if (!config.caldavSync || !hasCalendarPermission()) {
return calendars
}
val uri = CalendarContract.Calendars.CONTENT_URI
val projection = arrayOf(
CalendarContract.Calendars._ID,
CalendarContract.Calendars.ACCOUNT_NAME,
CalendarContract.Calendars.CALENDAR_DISPLAY_NAME,
CalendarContract.Calendars.OWNER_ACCOUNT)
var cursor: Cursor? = null
try {
cursor = contentResolver.query(uri, projection, null, null, null)
while (cursor.moveToNext()) {
val id = cursor.getLongValue(CalendarContract.Calendars._ID)
val displayName = cursor.getStringValue(CalendarContract.Calendars.ACCOUNT_NAME)
val accountName = cursor.getStringValue(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME)
val ownerName = cursor.getStringValue(CalendarContract.Calendars.OWNER_ACCOUNT)
val calendar = CalDAVCalendar(id, displayName, accountName, ownerName)
calendars.add(calendar)
}
} finally {
cursor?.close()
}
return calendars
}
fun Context.getNewEventTimestampFromCode(dayCode: String) = Formatter.getLocalDateTimeFromCode(dayCode).withTime(13, 0, 0, 0).seconds()
fun Context.getCurrentOffset() = SimpleDateFormat("Z", Locale.getDefault()).format(Date())

View File

@ -0,0 +1,3 @@
package com.simplemobiletools.calendar.models
data class CalDAVCalendar(val id: Long, val displayName: String, val accountName: String, val ownerName: String)