@ -1,18 +1,11 @@
package org.tasks.preferences.fragments
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.billing.Inventory
import org.tasks.data.entity.CaldavAccount
import org.tasks.data.entity.CaldavAccount.Companion.isPaymentRequired
import org.tasks.preferences.IconPreference
import org.tasks.sync.microsoft.MicrosoftSignInViewModel
import javax.inject.Inject
@ -20,21 +13,10 @@ import javax.inject.Inject
@AndroidEntryPoint
class MicrosoftAccount : BaseAccountPreference ( ) {
@Inject lateinit var inventory : Inventory
@Inject lateinit var localBroadcastManager : LocalBroadcastManager
private val microsoftVM : MicrosoftSignInViewModel by viewModels ( )
private val purchaseReceiver = object : BroadcastReceiver ( ) {
override fun onReceive ( context : Context , intent : Intent ) {
lifecycleScope . launch {
if ( inventory . subscription . value != null && account . error . isPaymentRequired ( ) ) {
caldavDao . update ( account . copy ( error = null ) )
}
}
}
}
override fun getPreferenceXml ( ) = R . xml . preferences _google _tasks
override suspend fun setupPreferences ( savedInstanceState : Bundle ? ) {
@ -44,18 +26,6 @@ class MicrosoftAccount : BaseAccountPreference() {
. setOnPreferenceClickListener { requestLogin ( ) }
}
override fun onResume ( ) {
super . onResume ( )
localBroadcastManager . registerPurchaseReceiver ( purchaseReceiver )
localBroadcastManager . registerRefreshListReceiver ( purchaseReceiver )
}
override fun onPause ( ) {
super . onPause ( )
localBroadcastManager . unregisterReceiver ( purchaseReceiver )
}
override suspend fun refreshUi ( account : CaldavAccount ) {
( findPreference ( R . string . sign _in _with _google ) as IconPreference ) . apply {
if ( account . error . isNullOrBlank ( ) ) {
@ -64,11 +34,6 @@ class MicrosoftAccount : BaseAccountPreference() {
}
isVisible = true
when {
account . error . isPaymentRequired ( ) -> {
setOnPreferenceClickListener { showPurchaseDialog ( ) }
setTitle ( R . string . name _your _price )
setSummary ( R . string . requires _pro _subscription )
}
account . error . isUnauthorized ( ) -> {
setTitle ( R . string . sign _in )
setSummary ( R . string . authentication _required )