Add analytic event for new microsoft account

pull/2003/head
Alex Baker 3 years ago
parent 1299bce67f
commit 1793d95d4d

@ -7,4 +7,5 @@ object Constants {
const val SYNC_TYPE_ETESYNC_OT = "etesync_ot" const val SYNC_TYPE_ETESYNC_OT = "etesync_ot"
const val SYNC_TYPE_ETEBASE = "etebase" const val SYNC_TYPE_ETEBASE = "etebase"
const val SYNC_TYPE_DECSYNC = "decsync" const val SYNC_TYPE_DECSYNC = "decsync"
const val SYNC_TYPE_MICROSOFT = "microsoft"
} }

@ -32,6 +32,9 @@ import net.openid.appauth.AuthorizationResponse
import net.openid.appauth.AuthorizationServiceDiscovery import net.openid.appauth.AuthorizationServiceDiscovery
import okhttp3.Request import okhttp3.Request
import org.json.JSONObject import org.json.JSONObject
import org.tasks.R
import org.tasks.analytics.Constants
import org.tasks.analytics.Firebase
import org.tasks.data.CaldavAccount import org.tasks.data.CaldavAccount
import org.tasks.data.CaldavAccount.Companion.TYPE_MICROSOFT import org.tasks.data.CaldavAccount.Companion.TYPE_MICROSOFT
import org.tasks.data.CaldavDao import org.tasks.data.CaldavDao
@ -46,6 +49,7 @@ class MicrosoftAuthenticationActivity : ComponentActivity() {
@Inject lateinit var caldavDao: CaldavDao @Inject lateinit var caldavDao: CaldavDao
@Inject lateinit var encryption: KeyStoreEncryption @Inject lateinit var encryption: KeyStoreEncryption
@Inject lateinit var httpClientFactory: HttpClientFactory @Inject lateinit var httpClientFactory: HttpClientFactory
@Inject lateinit var firebase: Firebase
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -71,15 +75,22 @@ class MicrosoftAuthenticationActivity : ComponentActivity() {
it.password = encryption.encrypt(authState.jsonSerializeString()) it.password = encryption.encrypt(authState.jsonSerializeString())
caldavDao.update(it) caldavDao.update(it)
} }
?: caldavDao.insert( ?: caldavDao
CaldavAccount().apply { .insert(
uuid = UUIDHelper.newUUID() CaldavAccount().apply {
name = email uuid = UUIDHelper.newUUID()
username = email name = email
password = encryption.encrypt(authState.jsonSerializeString()) username = email
accountType = TYPE_MICROSOFT password = encryption.encrypt(authState.jsonSerializeString())
accountType = TYPE_MICROSOFT
}
)
.also {
firebase.logEvent(
R.string.event_sync_add_account,
R.string.param_type to Constants.SYNC_TYPE_MICROSOFT
)
} }
)
finish() finish()
} else { } else {
error(ex?.message ?: "Token exchange failed") error(ex?.message ?: "Token exchange failed")

Loading…
Cancel
Save