mirror of
https://github.com/AllanWang/Frost-for-Facebook.git
synced 2024-11-10 04:52:38 +01:00
Move legacy notif model to internal call
This commit is contained in:
parent
e96160d7f7
commit
cf5fd28ec7
@ -26,6 +26,8 @@ import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Transaction
|
||||
import com.pitchedapps.frost.services.NOTIF_CHANNEL_GENERAL
|
||||
import com.pitchedapps.frost.services.NOTIF_CHANNEL_MESSAGES
|
||||
import com.pitchedapps.frost.services.NotificationContent
|
||||
import com.pitchedapps.frost.utils.L
|
||||
import com.raizlabs.android.dbflow.annotation.ConflictAction
|
||||
@ -33,10 +35,8 @@ import com.raizlabs.android.dbflow.annotation.Database
|
||||
import com.raizlabs.android.dbflow.annotation.Migration
|
||||
import com.raizlabs.android.dbflow.annotation.PrimaryKey
|
||||
import com.raizlabs.android.dbflow.annotation.Table
|
||||
import com.raizlabs.android.dbflow.kotlinextensions.async
|
||||
import com.raizlabs.android.dbflow.kotlinextensions.eq
|
||||
import com.raizlabs.android.dbflow.kotlinextensions.from
|
||||
import com.raizlabs.android.dbflow.kotlinextensions.save
|
||||
import com.raizlabs.android.dbflow.kotlinextensions.select
|
||||
import com.raizlabs.android.dbflow.kotlinextensions.where
|
||||
import com.raizlabs.android.dbflow.sql.SQLiteType
|
||||
@ -153,7 +153,13 @@ suspend fun NotificationDao.saveNotifications(type: String, notifs: List<Notific
|
||||
}
|
||||
|
||||
suspend fun NotificationDao.latestEpoch(userId: Long, type: String): Long = withContext(Dispatchers.IO) {
|
||||
_selectEpoch(userId, type) ?: -1
|
||||
_selectEpoch(userId, type) ?: lastNotificationTime(userId).let {
|
||||
when (type) {
|
||||
NOTIF_CHANNEL_GENERAL -> it.epoch
|
||||
NOTIF_CHANNEL_MESSAGES -> it.epochIm
|
||||
else -> -1L
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -183,6 +189,6 @@ data class NotificationModel(
|
||||
var epochIm: Long = -1L
|
||||
) : BaseModel()
|
||||
|
||||
fun lastNotificationTime(id: Long): NotificationModel =
|
||||
private fun lastNotificationTime(id: Long): NotificationModel =
|
||||
(select from NotificationModel::class where (NotificationModel_Table.id eq id)).querySingle()
|
||||
?: NotificationModel(id = id)
|
@ -33,8 +33,6 @@ import com.pitchedapps.frost.R
|
||||
import com.pitchedapps.frost.activities.FrostWebActivity
|
||||
import com.pitchedapps.frost.db.CookieEntity
|
||||
import com.pitchedapps.frost.db.FrostDatabase
|
||||
import com.pitchedapps.frost.db.NotificationModel
|
||||
import com.pitchedapps.frost.db.lastNotificationTime
|
||||
import com.pitchedapps.frost.db.latestEpoch
|
||||
import com.pitchedapps.frost.db.saveNotifications
|
||||
import com.pitchedapps.frost.enums.OverlayContext
|
||||
@ -67,8 +65,6 @@ enum class NotificationType(
|
||||
private val overlayContext: OverlayContext,
|
||||
private val fbItem: FbItem,
|
||||
private val parser: FrostParser<ParseNotification>,
|
||||
// Legacy; remove with dbflow
|
||||
private val getTime: (notif: NotificationModel) -> Long,
|
||||
private val ringtone: () -> String
|
||||
) {
|
||||
|
||||
@ -77,7 +73,6 @@ enum class NotificationType(
|
||||
OverlayContext.NOTIFICATION,
|
||||
FbItem.NOTIFICATIONS,
|
||||
NotifParser,
|
||||
NotificationModel::epoch,
|
||||
Prefs::notificationRingtone
|
||||
) {
|
||||
|
||||
@ -90,7 +85,6 @@ enum class NotificationType(
|
||||
OverlayContext.MESSAGE,
|
||||
FbItem.MESSAGES,
|
||||
MessageParser,
|
||||
NotificationModel::epochIm,
|
||||
Prefs::messageRingtone
|
||||
);
|
||||
|
||||
@ -140,8 +134,7 @@ enum class NotificationType(
|
||||
if (notifContents.isEmpty()) return 0
|
||||
val userId = data.id
|
||||
// Legacy, remove with dbflow
|
||||
val prevLatestEpoch =
|
||||
notifDao.latestEpoch(userId, channelId).takeIf { it != -1L } ?: getTime(lastNotificationTime(userId))
|
||||
val prevLatestEpoch = notifDao.latestEpoch(userId, channelId)
|
||||
L.v { "Notif $name prev epoch $prevLatestEpoch" }
|
||||
if (prevLatestEpoch == -1L && !BuildConfig.DEBUG) {
|
||||
L.d { "Skipping first notification fetch" }
|
||||
|
Loading…
Reference in New Issue
Block a user