mirror of
https://github.com/etesync/android
synced 2025-07-02 21:02:39 +00:00

I've seen some crashes there. This change brings it inline with DAVDroid, and looks cleaner regardless. Based on 1f7298f947a4878e86fcba0c6722e34b03cb63c6 from DAVDroid
53 lines
2.3 KiB
Kotlin
53 lines
2.3 KiB
Kotlin
/*
|
|
* Copyright © Ricki Hirner (bitfire web engineering).
|
|
* All rights reserved. This program and the accompanying materials
|
|
* are made available under the terms of the GNU Public License v3.0
|
|
* which accompanies this distribution, and is available at
|
|
* http://www.gnu.org/licenses/gpl.html
|
|
*/
|
|
package com.etesync.syncadapter.syncadapter
|
|
|
|
import android.accounts.AbstractAccountAuthenticator
|
|
import android.accounts.Account
|
|
import android.accounts.AccountAuthenticatorResponse
|
|
import android.accounts.AccountManager
|
|
import android.app.Service
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import com.etesync.syncadapter.ui.AccountsActivity
|
|
|
|
class NullAuthenticatorService: Service() {
|
|
|
|
private lateinit var accountAuthenticator: AccountAuthenticator
|
|
|
|
override fun onCreate() {
|
|
accountAuthenticator = AccountAuthenticator(this)
|
|
}
|
|
|
|
override fun onBind(intent: Intent?) =
|
|
accountAuthenticator.iBinder.takeIf { intent?.action == android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT }
|
|
|
|
|
|
private class AccountAuthenticator(
|
|
val context: Context
|
|
): AbstractAccountAuthenticator(context) {
|
|
|
|
override fun addAccount(response: AccountAuthenticatorResponse?, accountType: String?, authTokenType: String?, requiredFeatures: Array<String>?, options: Bundle?): Bundle {
|
|
val intent = Intent(context, AccountsActivity::class.java)
|
|
intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response)
|
|
val bundle = Bundle(1)
|
|
bundle.putParcelable(AccountManager.KEY_INTENT, intent)
|
|
return bundle
|
|
}
|
|
|
|
override fun editProperties(response: AccountAuthenticatorResponse?, accountType: String?) = null
|
|
override fun getAuthTokenLabel(p0: String?) = null
|
|
override fun confirmCredentials(p0: AccountAuthenticatorResponse?, p1: Account?, p2: Bundle?) = null
|
|
override fun updateCredentials(p0: AccountAuthenticatorResponse?, p1: Account?, p2: String?, p3: Bundle?) = null
|
|
override fun getAuthToken(p0: AccountAuthenticatorResponse?, p1: Account?, p2: String?, p3: Bundle?) = null
|
|
override fun hasFeatures(p0: AccountAuthenticatorResponse?, p1: Account?, p2: Array<out String>?) = null
|
|
|
|
}
|
|
|
|
} |