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

Commit 5fbd8239 authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

858-Handle_exception_on_accountSettings_init_call

parent 6f8aa67b
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ class AccountSettings(
            context.getString(R.string.account_type), context.getString(R.string.google_account_type), context.getString(R.string.eelo_account_type) ->
                account = argAccount
            else ->
                throw IllegalArgumentException("Account type not supported")
                throw IllegalArgumentException("Account type not supported. AccountType: ${argAccount.type}")
        }

        // synchronize because account migration must only be run one time
+14 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import dagger.hilt.EntryPoint
import dagger.hilt.InstallIn
import dagger.hilt.android.EntryPointAccessors
import dagger.hilt.components.SingletonComponent
import java.util.logging.Level

object SyncUtils {

@@ -111,8 +112,18 @@ object SyncUtils {
                val isSyncable = ContentResolver.getIsSyncable(account, providerName.authority)     // may be -1 (unknown state)
                val shallBeSyncable = hasCalDAV && providerName == currentProvider
                if ((shallBeSyncable && isSyncable != 1) || (!shallBeSyncable && isSyncable != 0)) {
                    try {
                        // enable/disable sync
                    setSyncableFromSettings(context, account, providerName.authority, shallBeSyncable)
                        setSyncableFromSettings(
                            context,
                            account,
                            providerName.authority,
                            shallBeSyncable
                        )
                    } catch (e: IllegalArgumentException) {
                        Logger.log.log(Level.WARNING, "Account type not supported", e)
                        continue
                    }

                    // if sync has just been enabled: check whether additional permissions are required
                    if (shallBeSyncable && !PermissionUtils.havePermissions(context, providerName.permissions))
@@ -138,6 +149,7 @@ object SyncUtils {
                settings.setSyncInterval(authority, interval)
            } catch (e: InvalidAccountException) {
                // account has already been removed
                Logger.log.log(Level.WARNING, "Account is not present", e)
            }
        } else {
            Logger.log.info("Disabling $authority sync for $account")