diff --git a/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt b/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt index a3f9fdb2..9f25cd4a 100644 --- a/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt +++ b/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt @@ -44,6 +44,9 @@ class NotificationHelper(internal val context: Context, internal val notificatio } else if (e is Exceptions.ServiceUnavailableException) { App.log.log(Level.SEVERE, "Service unavailable") messageString = R.string.sync_error_unavailable + } else if (e is Exceptions.ReadOnlyException) { + App.log.log(Level.SEVERE, "Journal is read only", e) + messageString = R.string.sync_error_journal_readonly } else if (e is Exceptions.HttpException) { App.log.log(Level.SEVERE, "HTTP Exception during sync", e) messageString = R.string.sync_error_http_dav diff --git a/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.kt b/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.kt index 9ba89835..a57dab8b 100644 --- a/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.kt +++ b/app/src/main/java/com/etesync/syncadapter/journalmanager/BaseManager.kt @@ -34,8 +34,9 @@ abstract class BaseManager { throw Exceptions.UserInactiveException(response, apiError.detail) } else if (apiError.code == "associate_not_allowed") { throw Exceptions.AssociateNotAllowedException(response, apiError.detail) - } - } + } else if (apiError.code == "journal_owner_inactive") { + throw Exceptions.ReadOnlyException(response, apiError.detail) + } } }// Fall through. We want to always throw when unsuccessful. throw Exceptions.HttpException(response, apiError.detail) diff --git a/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.kt b/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.kt index b45a9077..cf4ffe8a 100644 --- a/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.kt +++ b/app/src/main/java/com/etesync/syncadapter/journalmanager/Exceptions.kt @@ -10,6 +10,8 @@ import java.security.GeneralSecurityException class Exceptions { class AssociateNotAllowedException(response: Response, message: String?) : HttpException(response, message) + class ReadOnlyException(response: Response, message: String?) : HttpException(response, message) + class UnauthorizedException(response: Response, message: String?) : HttpException(response, message) class UserInactiveException(response: Response, message: String?) : HttpException(response, message) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index efce8efd..d8f38515 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -315,6 +315,7 @@ Server error while %s Could not connect to server while %s Database error while %s + Journal is read only preparing synchronization syncronizing journals querying capabilities