Reset the next event only if necessary
This commit is contained in:
parent
b95a9e8e7f
commit
64ff404eac
@ -221,6 +221,12 @@ class GlanceSettingsDialog(val context: Activity, val provider: Constants.Glance
|
|||||||
}
|
}
|
||||||
Constants.GlanceProviderId.EVENTS -> {
|
Constants.GlanceProviderId.EVENTS -> {
|
||||||
Preferences.showEventsAsGlanceProvider = isChecked
|
Preferences.showEventsAsGlanceProvider = isChecked
|
||||||
|
if (isChecked) {
|
||||||
|
com.tommasoberlose.anotherwidget.db.EventRepository(context).run {
|
||||||
|
resetNextEventData()
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Constants.GlanceProviderId.WEATHER -> {
|
Constants.GlanceProviderId.WEATHER -> {
|
||||||
Preferences.showWeatherAsGlanceProvider = isChecked
|
Preferences.showWeatherAsGlanceProvider = isChecked
|
||||||
|
@ -27,7 +27,7 @@ class EventRepository(val context: Context) {
|
|||||||
db.runInTransaction{
|
db.runInTransaction{
|
||||||
db.dao().run {
|
db.dao().run {
|
||||||
deleteAll()
|
deleteAll()
|
||||||
insertAll(eventList)
|
insert(eventList)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -119,7 +119,7 @@ class EventRepository(val context: Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getFutureEvents(): List<Event> {
|
fun getFutureEvents(): List<Event> {
|
||||||
return db.dao().findFuture(Calendar.getInstance().timeInMillis).sortEvents()
|
return db.dao().find(Calendar.getInstance().timeInMillis).sortEvents()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getEvents(): List<Event> {
|
private fun getEvents(): List<Event> {
|
||||||
@ -141,7 +141,7 @@ class EventRepository(val context: Context) {
|
|||||||
return db.dao().find(now, limit.timeInMillis).sortEvents()
|
return db.dao().find(now, limit.timeInMillis).sortEvents()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getEventsCount(): Int = db.dao().countAll()
|
fun getEventsCount(): Int = getEvents().size
|
||||||
|
|
||||||
fun close() {
|
fun close() {
|
||||||
// db.close()
|
// db.close()
|
||||||
@ -150,19 +150,16 @@ class EventRepository(val context: Context) {
|
|||||||
@Dao
|
@Dao
|
||||||
interface EventDao {
|
interface EventDao {
|
||||||
@Query("SELECT * FROM events WHERE id = :id LIMIT 1")
|
@Query("SELECT * FROM events WHERE id = :id LIMIT 1")
|
||||||
fun findById(id: Long) : Event?
|
fun findById(id: Long): Event?
|
||||||
|
|
||||||
@Query("SELECT * FROM events WHERE end_date > :from")
|
@Query("SELECT * FROM events WHERE end_date > :from")
|
||||||
fun findFuture(from: Long) : List<Event>
|
fun find(from: Long): List<Event>
|
||||||
|
|
||||||
@Query("SELECT * FROM events WHERE end_date > :from AND start_date <= :to")
|
@Query("SELECT * FROM events WHERE end_date > :from AND start_date <= :to")
|
||||||
fun find(from: Long, to: Long) : List<Event>
|
fun find(from: Long, to: Long): List<Event>
|
||||||
|
|
||||||
@Query("SELECT count(*) FROM events")
|
|
||||||
fun countAll() : Int
|
|
||||||
|
|
||||||
@Insert
|
@Insert
|
||||||
fun insertAll(events: List<Event>)
|
fun insert(events: List<Event>)
|
||||||
|
|
||||||
@Query("DELETE FROM events")
|
@Query("DELETE FROM events")
|
||||||
fun deleteAll()
|
fun deleteAll()
|
||||||
|
@ -66,11 +66,11 @@ class UpdateCalendarWorker(context: Context, params: WorkerParameters) : Worker(
|
|||||||
limit.timeInMillis + limit.timeZone.getOffset(limit.timeInMillis).coerceAtLeast(0)
|
limit.timeInMillis + limit.timeZone.getOffset(limit.timeInMillis).coerceAtLeast(0)
|
||||||
)
|
)
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
val instances = data.list
|
val filteredCalendarIdList = CalendarHelper.getFilteredCalendarIdList()
|
||||||
for (instance in instances) {
|
for (instance in data.list) {
|
||||||
try {
|
try {
|
||||||
val e = provider.getEvent(instance.eventId)
|
val e = provider.getEvent(instance.eventId)
|
||||||
if (e == null || e.deleted || CalendarHelper.getFilteredCalendarIdList().contains(e.calendarId))
|
if (e == null || e.deleted || filteredCalendarIdList.contains(e.calendarId))
|
||||||
continue
|
continue
|
||||||
if (e.allDay) {
|
if (e.allDay) {
|
||||||
val start = Calendar.getInstance()
|
val start = Calendar.getInstance()
|
||||||
@ -131,8 +131,12 @@ class UpdateCalendarWorker(context: Context, params: WorkerParameters) : Worker(
|
|||||||
eventRepository.resetNextEventData()
|
eventRepository.resetNextEventData()
|
||||||
eventRepository.clearEvents()
|
eventRepository.clearEvents()
|
||||||
} else {
|
} else {
|
||||||
|
val first = filteredEventList.first()
|
||||||
|
if (Preferences.nextEventId != first.id && (
|
||||||
|
//Preferences.showWeatherAsGlanceProvider || !Preferences.showNextEvent ||
|
||||||
|
eventRepository.getEventById(first.id)?.startDate != first.startDate))
|
||||||
|
eventRepository.saveNextEventData(first)
|
||||||
eventRepository.saveEvents(filteredEventList)
|
eventRepository.saveEvents(filteredEventList)
|
||||||
//eventRepository.saveNextEventData(filteredEventList.first())
|
|
||||||
}
|
}
|
||||||
} catch (ignored: java.lang.Exception) {
|
} catch (ignored: java.lang.Exception) {
|
||||||
}
|
}
|
||||||
|
@ -144,6 +144,12 @@ class GesturesFragment : Fragment() {
|
|||||||
|
|
||||||
binding.showMultipleEventsToggle.setOnCheckedChangeListener { _, isChecked ->
|
binding.showMultipleEventsToggle.setOnCheckedChangeListener { _, isChecked ->
|
||||||
Preferences.showNextEvent = isChecked
|
Preferences.showNextEvent = isChecked
|
||||||
|
if (!isChecked) {
|
||||||
|
com.tommasoberlose.anotherwidget.db.EventRepository(requireContext()).run {
|
||||||
|
resetNextEventData()
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.actionOpenEventDetails.setOnClickListener {
|
binding.actionOpenEventDetails.setOnClickListener {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user