From 92e0fc28479fa0ea2ad5372980acfbb5ba624a76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Sun, 15 Dec 2019 16:43:24 +0100 Subject: [PATCH] [Sync] Fix showing notifications. Implement notifications web push. --- .../pl/szczodrzynski/edziennik/data/api/models/Data.kt | 1 + .../edziennik/data/api/szkolny/SzkolnyApi.kt | 4 +++- .../data/api/szkolny/request/ServerSyncRequest.kt | 10 +++++++++- .../edziennik/data/api/task/NotifyTask.kt | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt index ab7f7333..fddb4be0 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/models/Data.kt @@ -337,6 +337,7 @@ open class Data(val app: App, val profile: Profile?, val loginStore: LoginStore) } try { DataNotifications(this) + db.notificationDao().addAll(notifications) onSuccess() } catch (e: Exception) { error(ApiError(TAG, EXCEPTION_NOTIFY) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt index 9b6565a0..af126adf 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt @@ -52,6 +52,7 @@ class SzkolnyApi(val app: App) { fun getEvents(profiles: List): List { val teams = app.db.teamDao().allNow + val notifications = app.db.notificationDao().getNotPostedNow() val response = api.serverSync(ServerSyncRequest( deviceId = app.deviceId, @@ -74,7 +75,8 @@ class SzkolnyApi(val app: App) { profile.loginStoreType, teams.filter { it.profileId == profile.id }.map { it.code } ) - } + }, + notifications = notifications.map { ServerSyncRequest.Notification(it.profileName ?: "", it.type, it.text) } )).execute().body() val events = mutableListOf() diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/request/ServerSyncRequest.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/request/ServerSyncRequest.kt index 4fe18dea..3902153a 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/request/ServerSyncRequest.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/request/ServerSyncRequest.kt @@ -10,7 +10,9 @@ data class ServerSyncRequest( val device: Device? = null, val userCodes: List, - val users: List? = null + val users: List? = null, + + val notifications: List? = null ) { data class Device( val osType: String, @@ -30,4 +32,10 @@ data class ServerSyncRequest( val loginType: Int, val teamCodes: List ) + + data class Notification( + val profileName: String, + val type: Int, + val text: String + ) } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/task/NotifyTask.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/task/NotifyTask.kt index 358e15ed..d06c4a9d 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/task/NotifyTask.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/task/NotifyTask.kt @@ -24,7 +24,7 @@ class NotifyTask : IApiTask(-1) { fun run(app: App, taskCallback: EdziennikCallback) { val list = app.db.notificationDao().getNotPostedNow() - val notificationList = list.subList(0, min(15, list.size)) + val notificationList = list.subList(0, min(10, list.size)) var unreadCount = list.size