Loading app/src/main/java/at/bitfire/davdroid/DavService.kt +2 −2 Original line number Diff line number Diff line Loading @@ -141,9 +141,9 @@ class DavService : Service() { } val account by lazy { db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME), "${Services.ID}=?", arrayOf(service.toString()), null, null, null)?.use { cursor -> db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME, Services.ACCOUNT_TYPE), "${Services.ID}=?", arrayOf(service.toString()), null, null, null)?.use { cursor -> if (cursor.moveToNext()) return@lazy Account(cursor.getString(0), getString(R.string.account_type)) return@lazy Account(cursor.getString(0), cursor.getString(1)) } throw IllegalArgumentException("Account not found") } Loading app/src/main/java/at/bitfire/davdroid/PackageChangedReceiver.kt +2 −2 Original line number Diff line number Diff line Loading @@ -40,10 +40,10 @@ class PackageChangedReceiver: BroadcastReceiver() { ServiceDB.OpenHelper(context).use { dbHelper -> val db = dbHelper.readableDatabase db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME), db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME, Services.ACCOUNT_TYPE), "${Services.SERVICE}=?", arrayOf(Services.SERVICE_CALDAV), null, null, null)?.use { cursor -> while (cursor.moveToNext()) { val account = Account(cursor.getString(0), context.getString(R.string.account_type)) val account = Account(cursor.getString(0), cursor.getString(1)) if (tasksInstalled) { if (ContentResolver.getIsSyncable(account, TaskProvider.ProviderName.OpenTasks.authority) <= 0) { Loading app/src/main/java/at/bitfire/davdroid/model/ServiceDB.kt +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ class ServiceDB { const val ID = "_id" const val ACCOUNT_NAME = "accountName" const val AUTH_STATE = "authState" const val ACCOUNT_TYPE = "accountType" const val SERVICE = "service" const val PRINCIPAL = "principal" Loading Loading @@ -91,6 +92,7 @@ class ServiceDB { "${Services.ID} INTEGER PRIMARY KEY AUTOINCREMENT," + "${Services.ACCOUNT_NAME} TEXT NOT NULL," + "${Services.AUTH_STATE} TEXT," + "${Services.ACCOUNT_TYPE} TEXT," + "${Services.SERVICE} TEXT NOT NULL," + "${Services.PRINCIPAL} TEXT NULL)") db.execSQL("CREATE UNIQUE INDEX services_account ON ${Services._TABLE} (${Services.ACCOUNT_NAME},${Services.SERVICE})") Loading app/src/main/java/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt +9 −5 Original line number Diff line number Diff line Loading @@ -41,7 +41,11 @@ class AccountAuthenticatorService: Service(), OnAccountsUpdateListener { val sqlAccountNames = LinkedList<String>() val accountNames = HashSet<String>() val accountManager = AccountManager.get(context) for (account in accountManager.getAccountsByType(context.getString(R.string.account_type))) { val accounts = ArrayList<Account>() accountManager.getAccountsByType(context.getString(R.string.eelo_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.google_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.account_type)).forEach { accounts.add(it) } for (account in accounts.toTypedArray()) { sqlAccountNames.add(DatabaseUtils.sqlEscapeString(account.name)) accountNames += account.name } Loading app/src/main/java/at/bitfire/davdroid/syncadapter/EeloAccountAuthenticatorService.kt +6 −3 Original line number Diff line number Diff line Loading @@ -41,7 +41,11 @@ class EeloAccountAuthenticatorService : Service(), OnAccountsUpdateListener { val sqlAccountNames = LinkedList<String>() val accountNames = HashSet<String>() val accountManager = AccountManager.get(context) for (account in accountManager.getAccountsByType(context.getString(R.string.account_type))) { val accounts = ArrayList<Account>() accountManager.getAccountsByType(context.getString(R.string.eelo_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.google_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.account_type)).forEach { accounts.add(it) } for (account in accounts.toTypedArray()) { sqlAccountNames.add(DatabaseUtils.sqlEscapeString(account.name)) accountNames += account.name } Loading @@ -53,8 +57,7 @@ class EeloAccountAuthenticatorService : Service(), OnAccountsUpdateListener { try { if (!accountNames.contains(it.mainAccount.name)) it.delete() } catch (e: Exception) { } catch (e: Exception) { Logger.log.log(Level.SEVERE, "Couldn't delete address book account", e) } } Loading Loading
app/src/main/java/at/bitfire/davdroid/DavService.kt +2 −2 Original line number Diff line number Diff line Loading @@ -141,9 +141,9 @@ class DavService : Service() { } val account by lazy { db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME), "${Services.ID}=?", arrayOf(service.toString()), null, null, null)?.use { cursor -> db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME, Services.ACCOUNT_TYPE), "${Services.ID}=?", arrayOf(service.toString()), null, null, null)?.use { cursor -> if (cursor.moveToNext()) return@lazy Account(cursor.getString(0), getString(R.string.account_type)) return@lazy Account(cursor.getString(0), cursor.getString(1)) } throw IllegalArgumentException("Account not found") } Loading
app/src/main/java/at/bitfire/davdroid/PackageChangedReceiver.kt +2 −2 Original line number Diff line number Diff line Loading @@ -40,10 +40,10 @@ class PackageChangedReceiver: BroadcastReceiver() { ServiceDB.OpenHelper(context).use { dbHelper -> val db = dbHelper.readableDatabase db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME), db.query(Services._TABLE, arrayOf(Services.ACCOUNT_NAME, Services.ACCOUNT_TYPE), "${Services.SERVICE}=?", arrayOf(Services.SERVICE_CALDAV), null, null, null)?.use { cursor -> while (cursor.moveToNext()) { val account = Account(cursor.getString(0), context.getString(R.string.account_type)) val account = Account(cursor.getString(0), cursor.getString(1)) if (tasksInstalled) { if (ContentResolver.getIsSyncable(account, TaskProvider.ProviderName.OpenTasks.authority) <= 0) { Loading
app/src/main/java/at/bitfire/davdroid/model/ServiceDB.kt +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ class ServiceDB { const val ID = "_id" const val ACCOUNT_NAME = "accountName" const val AUTH_STATE = "authState" const val ACCOUNT_TYPE = "accountType" const val SERVICE = "service" const val PRINCIPAL = "principal" Loading Loading @@ -91,6 +92,7 @@ class ServiceDB { "${Services.ID} INTEGER PRIMARY KEY AUTOINCREMENT," + "${Services.ACCOUNT_NAME} TEXT NOT NULL," + "${Services.AUTH_STATE} TEXT," + "${Services.ACCOUNT_TYPE} TEXT," + "${Services.SERVICE} TEXT NOT NULL," + "${Services.PRINCIPAL} TEXT NULL)") db.execSQL("CREATE UNIQUE INDEX services_account ON ${Services._TABLE} (${Services.ACCOUNT_NAME},${Services.SERVICE})") Loading
app/src/main/java/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.kt +9 −5 Original line number Diff line number Diff line Loading @@ -41,7 +41,11 @@ class AccountAuthenticatorService: Service(), OnAccountsUpdateListener { val sqlAccountNames = LinkedList<String>() val accountNames = HashSet<String>() val accountManager = AccountManager.get(context) for (account in accountManager.getAccountsByType(context.getString(R.string.account_type))) { val accounts = ArrayList<Account>() accountManager.getAccountsByType(context.getString(R.string.eelo_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.google_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.account_type)).forEach { accounts.add(it) } for (account in accounts.toTypedArray()) { sqlAccountNames.add(DatabaseUtils.sqlEscapeString(account.name)) accountNames += account.name } Loading
app/src/main/java/at/bitfire/davdroid/syncadapter/EeloAccountAuthenticatorService.kt +6 −3 Original line number Diff line number Diff line Loading @@ -41,7 +41,11 @@ class EeloAccountAuthenticatorService : Service(), OnAccountsUpdateListener { val sqlAccountNames = LinkedList<String>() val accountNames = HashSet<String>() val accountManager = AccountManager.get(context) for (account in accountManager.getAccountsByType(context.getString(R.string.account_type))) { val accounts = ArrayList<Account>() accountManager.getAccountsByType(context.getString(R.string.eelo_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.google_account_type)).forEach { accounts.add(it) } accountManager.getAccountsByType(context.getString(R.string.account_type)).forEach { accounts.add(it) } for (account in accounts.toTypedArray()) { sqlAccountNames.add(DatabaseUtils.sqlEscapeString(account.name)) accountNames += account.name } Loading @@ -53,8 +57,7 @@ class EeloAccountAuthenticatorService : Service(), OnAccountsUpdateListener { try { if (!accountNames.contains(it.mainAccount.name)) it.delete() } catch (e: Exception) { } catch (e: Exception) { Logger.log.log(Level.SEVERE, "Couldn't delete address book account", e) } } Loading