@ -377,6 +377,22 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
}
}
override fun markAsSyncing ( timestamp : Long , author : String ) {
DatabaseComponent . get ( context ) . mmsSmsDatabase ( )
. getMessageFor ( timestamp , author )
?. run { getMmsDatabaseElseSms ( isMms ) . markAsSyncing ( id ) }
}
private fun getMmsDatabaseElseSms ( isMms : Boolean ) =
if ( isMms ) DatabaseComponent . get ( context ) . mmsDatabase ( )
else DatabaseComponent . get ( context ) . smsDatabase ( )
override fun markAsResyncing ( timestamp : Long , author : String ) {
DatabaseComponent . get ( context ) . mmsSmsDatabase ( )
. getMessageFor ( timestamp , author )
?. run { getMmsDatabaseElseSms ( isMms ) . markAsResyncing ( id ) }
}
override fun markAsSending ( timestamp : Long , author : String ) {
val database = DatabaseComponent . get ( context ) . mmsSmsDatabase ( )
val messageRecord = database . getMessageFor ( timestamp , author ) ?: return
@ -402,7 +418,7 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
}
}
override fun setErrorMessage ( timestamp : Long , author : String , error : Exception ) {
override fun markAsSentFailed ( timestamp : Long , author : String , error : Exception ) {
val database = DatabaseComponent . get ( context ) . mmsSmsDatabase ( )
val messageRecord = database . getMessageFor ( timestamp , author ) ?: return
if ( messageRecord . isMms ) {
@ -425,6 +441,26 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
}
}
override fun markAsSyncFailed ( timestamp : Long , author : String , error : Exception ) {
val database = DatabaseComponent . get ( context ) . mmsSmsDatabase ( )
val messageRecord = database . getMessageFor ( timestamp , author ) ?: return
database . getMessageFor ( timestamp , author )
?. run { getMmsDatabaseElseSms ( isMms ) . markAsSyncFailed ( id ) }
if ( error . localizedMessage != null ) {
val message : String
if ( error is OnionRequestAPI . HTTPRequestFailedAtDestinationException && error . statusCode == 429 ) {
message = " 429: Rate limited. "
} else {
message = error . localizedMessage !!
}
DatabaseComponent . get ( context ) . lokiMessageDatabase ( ) . setErrorMessage ( messageRecord . getId ( ) , message )
} else {
DatabaseComponent . get ( context ) . lokiMessageDatabase ( ) . setErrorMessage ( messageRecord . getId ( ) , error . javaClass . simpleName )
}
}
override fun clearErrorMessage ( messageID : Long ) {
val db = DatabaseComponent . get ( context ) . lokiMessageDatabase ( )
db . clearErrorMessage ( messageID )
@ -983,5 +1019,4 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
val recipientDb = DatabaseComponent . get ( context ) . recipientDatabase ( )
return recipientDb . blockedContacts
}
}