Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6580552 authored by Nihar Thakkar's avatar Nihar Thakkar
Browse files

Show eelo and Google calendar accounts in their own custom account types

parent edd25782
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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")
            }
+2 −2
Original line number Diff line number Diff line
@@ -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) {
+2 −0
Original line number Diff line number Diff line
@@ -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"

@@ -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})")
+9 −5
Original line number Diff line number Diff line
@@ -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
                }
+6 −3
Original line number Diff line number Diff line
@@ -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
                }
@@ -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