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.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.database.Cursor
import android.graphics.Color import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.provider.CalendarContract
import android.support.v4.content.ContextCompat import android.support.v4.content.ContextCompat
import android.support.v7.app.NotificationCompat import android.support.v7.app.NotificationCompat
import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.R
import com.simplemobiletools.calendar.activities.EventActivity import com.simplemobiletools.calendar.activities.EventActivity
import com.simplemobiletools.calendar.helpers.* import com.simplemobiletools.calendar.helpers.*
import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.helpers.Formatter
import com.simplemobiletools.calendar.models.CalDAVCalendar
import com.simplemobiletools.calendar.models.Event import com.simplemobiletools.calendar.models.Event
import com.simplemobiletools.calendar.receivers.NotificationReceiver import com.simplemobiletools.calendar.receivers.NotificationReceiver
import com.simplemobiletools.calendar.services.SnoozeService import com.simplemobiletools.calendar.services.SnoozeService
import com.simplemobiletools.commons.extensions.getContrastColor import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.extensions.isKitkatPlus
import com.simplemobiletools.commons.extensions.isLollipopPlus
import org.joda.time.DateTime import org.joda.time.DateTime
import org.joda.time.DateTimeZone import org.joda.time.DateTimeZone
import java.text.SimpleDateFormat 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.getNewEventTimestampFromCode(dayCode: String) = Formatter.getLocalDateTimeFromCode(dayCode).withTime(13, 0, 0, 0).seconds()
fun Context.getCurrentOffset() = SimpleDateFormat("Z", Locale.getDefault()).format(Date()) 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)