mirror of
https://github.com/MatomoCamp/matomocamp-companion-android.git
synced 2024-09-19 16:13:46 +02:00
store URL from API response
This commit is contained in:
parent
c13d43af59
commit
2609cb150f
5 changed files with 16 additions and 15 deletions
|
@ -124,6 +124,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
event.endTime,
|
||||
event.roomName,
|
||||
event.slug,
|
||||
event.url,
|
||||
trackId,
|
||||
event.abstractText,
|
||||
event.description
|
||||
|
@ -251,7 +252,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns the event with the specified id, or null if not found.
|
||||
*/
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type
|
||||
FROM events e
|
||||
JOIN events_titles et ON e.id = et.`rowid`
|
||||
|
@ -266,7 +267,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns all found events whose id is part of the given list.
|
||||
*/
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type,
|
||||
b.event_id IS NOT NULL AS is_bookmarked
|
||||
FROM events e
|
||||
|
@ -284,7 +285,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns the events for a specified track, including their bookmark status.
|
||||
*/
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type,
|
||||
b.event_id IS NOT NULL AS is_bookmarked
|
||||
FROM events e
|
||||
|
@ -302,7 +303,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns the events for a specified track, without their bookmark status.
|
||||
*/
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type
|
||||
FROM events e
|
||||
JOIN events_titles et ON e.id = et.`rowid`
|
||||
|
@ -318,7 +319,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns events starting in the specified interval, ordered by ascending start time.
|
||||
*/
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type,
|
||||
b.event_id IS NOT NULL AS is_bookmarked
|
||||
FROM events e
|
||||
|
@ -337,7 +338,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns events in progress at the specified time, ordered by descending start time.
|
||||
*/
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type,
|
||||
b.event_id IS NOT NULL AS is_bookmarked
|
||||
FROM events e
|
||||
|
@ -356,7 +357,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns the events presented by the specified person.
|
||||
*/
|
||||
@Query("""SELECT e.id , e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id , e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type,
|
||||
b.event_id IS NOT NULL AS is_bookmarked
|
||||
FROM events e JOIN events_titles et ON e.id = et.`rowid`
|
||||
|
@ -374,7 +375,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
/**
|
||||
* Returns all events.
|
||||
*/
|
||||
@Query("""SELECT e.id , e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id , e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type,
|
||||
b.event_id IS NOT NULL AS is_bookmarked
|
||||
FROM events e JOIN events_titles et ON e.id = et.`rowid`
|
||||
|
@ -392,7 +393,7 @@ abstract class ScheduleDao(private val appDatabase: AppDatabase) {
|
|||
* We need to use an union of 3 sub-queries because a "match" condition can not be
|
||||
* accompanied by other conditions in a "where" statement.
|
||||
*/
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, et.title, et.subtitle, e.abstract, e.description,
|
||||
@Query("""SELECT e.id, e.start_time, e.end_time, e.room_name, e.slug, e.url, et.title, et.subtitle, e.abstract, e.description,
|
||||
GROUP_CONCAT(p.name, ', ') AS persons, e.day_index, d.date AS day_date, e.track_id, t.name AS track_name, t.type AS track_type,
|
||||
b.event_id IS NOT NULL AS is_bookmarked
|
||||
FROM events e
|
||||
|
|
|
@ -28,6 +28,7 @@ class EventEntity(
|
|||
@ColumnInfo(name = "room_name")
|
||||
val roomName: String?,
|
||||
val slug: String?,
|
||||
val url: String?,
|
||||
@ColumnInfo(name = "track_id")
|
||||
val trackId: Long,
|
||||
@ColumnInfo(name = "abstract")
|
||||
|
|
|
@ -25,7 +25,7 @@ import javax.inject.Singleton
|
|||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object DatabaseModule {
|
||||
private const val DB_FILE = "fosdem.sqlite"
|
||||
private const val DB_FILE = "matomocamp.sqlite"
|
||||
private const val DB_DATASTORE_FILE = "database"
|
||||
|
||||
@Provides
|
||||
|
|
|
@ -26,6 +26,7 @@ data class Event(
|
|||
@ColumnInfo(name = "room_name")
|
||||
val roomName: String?,
|
||||
val slug: String?,
|
||||
val url: String?,
|
||||
val title: String?,
|
||||
@ColumnInfo(name = "subtitle")
|
||||
val subTitle: String?,
|
||||
|
@ -49,11 +50,6 @@ data class Event(
|
|||
Duration.between(startTime, endTime)
|
||||
}
|
||||
|
||||
val url: String?
|
||||
get() {
|
||||
val s = slug ?: return null
|
||||
return MatomoCampUrls.getEvent(s, day.date.year)
|
||||
}
|
||||
|
||||
override fun toString(): String = title.orEmpty()
|
||||
}
|
|
@ -62,6 +62,7 @@ class EventsParser : Parser<Sequence<DetailedEvent>> {
|
|||
var startTime: Instant? = null
|
||||
var duration: String? = null
|
||||
var slug: String? = null
|
||||
var url: String? = null
|
||||
var title: String? = null
|
||||
var subTitle: String? = null
|
||||
var trackName = ""
|
||||
|
@ -85,6 +86,7 @@ class EventsParser : Parser<Sequence<DetailedEvent>> {
|
|||
}
|
||||
"duration" -> duration = parser.nextText()
|
||||
"slug" -> slug = parser.nextText()
|
||||
"url" -> url = parser.nextText()
|
||||
"title" -> title = parser.nextText()
|
||||
"subtitle" -> subTitle = parser.nextText()
|
||||
"track" -> trackName = parser.nextText()
|
||||
|
@ -130,6 +132,7 @@ class EventsParser : Parser<Sequence<DetailedEvent>> {
|
|||
startTime = startTime,
|
||||
endTime = endTime,
|
||||
slug = slug,
|
||||
url = url,
|
||||
title = title,
|
||||
subTitle = subTitle,
|
||||
track = Track(name = trackName, type = trackType),
|
||||
|
|
Loading…
Reference in a new issue