mirror of
https://github.com/bitfireAT/davx5-ose
synced 2024-07-21 10:41:47 +00:00
Catch some exceptions
This commit is contained in:
parent
51c96a50c0
commit
4a89bb762e
|
@ -128,39 +128,42 @@ class AccountSettings(
|
|||
val taskAuthority = TaskUtils.currentProvider(context)?.authority
|
||||
|
||||
val am = AccountManager.get(context)
|
||||
for (account in am.getAccountsByType(context.getString(R.string.account_type))) {
|
||||
val settings = AccountSettings(context, account)
|
||||
for (account in am.getAccountsByType(context.getString(R.string.account_type)))
|
||||
try {
|
||||
val settings = AccountSettings(context, account)
|
||||
|
||||
// repair address book sync
|
||||
settings.getSavedAddressbooksSyncInterval()?.let { shouldBe ->
|
||||
val current = settings.getSyncInterval(addressBooksAuthority)
|
||||
if (current != shouldBe) {
|
||||
Logger.log.warning("${account.name}: $addressBooksAuthority sync interval should be $shouldBe but is $current -> setting to $current")
|
||||
settings.setSyncInterval(addressBooksAuthority, shouldBe)
|
||||
}
|
||||
}
|
||||
|
||||
// repair calendar sync
|
||||
settings.getSavedCalendarsSyncInterval()?.let { strInterval ->
|
||||
val shouldBe = strInterval.toLong()
|
||||
val current = settings.getSyncInterval(CalendarContract.AUTHORITY)
|
||||
if (current != shouldBe) {
|
||||
Logger.log.warning("${account.name}: ${CalendarContract.AUTHORITY} sync interval should be $shouldBe but is $current -> setting to $current")
|
||||
settings.setSyncInterval(CalendarContract.AUTHORITY, shouldBe)
|
||||
}
|
||||
}
|
||||
|
||||
if (taskAuthority != null)
|
||||
// repair calendar sync
|
||||
settings.getSavedTasksSyncInterval()?.let { strInterval ->
|
||||
val shouldBe = strInterval.toLong()
|
||||
val current = settings.getSyncInterval(taskAuthority)
|
||||
// repair address book sync
|
||||
settings.getSavedAddressbooksSyncInterval()?.let { shouldBe ->
|
||||
val current = settings.getSyncInterval(addressBooksAuthority)
|
||||
if (current != shouldBe) {
|
||||
Logger.log.warning("${account.name}: $taskAuthority sync interval should be $shouldBe but is $current -> setting to $current")
|
||||
settings.setSyncInterval(taskAuthority, shouldBe)
|
||||
Logger.log.warning("${account.name}: $addressBooksAuthority sync interval should be $shouldBe but is $current -> setting to $current")
|
||||
settings.setSyncInterval(addressBooksAuthority, shouldBe)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// repair calendar sync
|
||||
settings.getSavedCalendarsSyncInterval()?.let { strInterval ->
|
||||
val shouldBe = strInterval.toLong()
|
||||
val current = settings.getSyncInterval(CalendarContract.AUTHORITY)
|
||||
if (current != shouldBe) {
|
||||
Logger.log.warning("${account.name}: ${CalendarContract.AUTHORITY} sync interval should be $shouldBe but is $current -> setting to $current")
|
||||
settings.setSyncInterval(CalendarContract.AUTHORITY, shouldBe)
|
||||
}
|
||||
}
|
||||
|
||||
if (taskAuthority != null)
|
||||
// repair calendar sync
|
||||
settings.getSavedTasksSyncInterval()?.let { strInterval ->
|
||||
val shouldBe = strInterval.toLong()
|
||||
val current = settings.getSyncInterval(taskAuthority)
|
||||
if (current != shouldBe) {
|
||||
Logger.log.warning("${account.name}: $taskAuthority sync interval should be $shouldBe but is $current -> setting to $current")
|
||||
settings.setSyncInterval(taskAuthority, shouldBe)
|
||||
}
|
||||
}
|
||||
} catch (ignored: InvalidAccountException) {
|
||||
// account doesn't exist (anymore)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -18,6 +18,8 @@ import android.os.Build
|
|||
import android.widget.Toast
|
||||
import androidx.core.content.getSystemService
|
||||
import at.bitfire.davdroid.R
|
||||
import at.bitfire.davdroid.log.Logger
|
||||
import java.util.logging.Level
|
||||
|
||||
object UiUtils {
|
||||
|
||||
|
@ -27,13 +29,17 @@ object UiUtils {
|
|||
fun updateShortcuts(context: Context) {
|
||||
if (Build.VERSION.SDK_INT >= 25)
|
||||
context.getSystemService<ShortcutManager>()?.let { shortcutManager ->
|
||||
shortcutManager.dynamicShortcuts = listOf(
|
||||
ShortcutInfo.Builder(context, SHORTCUT_SYNC_ALL)
|
||||
.setIcon(Icon.createWithResource(context, R.drawable.ic_sync_shortcut))
|
||||
.setShortLabel(context.getString(R.string.accounts_sync_all))
|
||||
.setIntent(Intent(Intent.ACTION_SYNC, null, context, AccountsActivity::class.java))
|
||||
.build()
|
||||
)
|
||||
try {
|
||||
shortcutManager.dynamicShortcuts = listOf(
|
||||
ShortcutInfo.Builder(context, SHORTCUT_SYNC_ALL)
|
||||
.setIcon(Icon.createWithResource(context, R.drawable.ic_sync_shortcut))
|
||||
.setShortLabel(context.getString(R.string.accounts_sync_all))
|
||||
.setIntent(Intent(Intent.ACTION_SYNC, null, context, AccountsActivity::class.java))
|
||||
.build()
|
||||
)
|
||||
} catch(e: Exception) {
|
||||
Logger.log.log(Level.WARNING, "Couldn't update dynamic shortcut(s)", e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue