mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
add a helper function for retrieving calDAV calendars
This commit is contained in:
@@ -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())
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
package com.simplemobiletools.calendar.models
|
||||||
|
|
||||||
|
data class CalDAVCalendar(val id: Long, val displayName: String, val accountName: String, val ownerName: String)
|
Reference in New Issue
Block a user