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

Commit 613dc67c authored by Gary Mai's avatar Gary Mai Committed by Android (Google) Code Review
Browse files

Merge "Show "add account" dialog when it needs to appear" into ub-contactsdialer-h-dev

parents 9adc9ef5 3107b25d
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -16,13 +16,10 @@

package com.android.contacts.common.preference;

import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.preference.PreferenceManager;
@@ -219,7 +216,8 @@ public class ContactsPreferences implements OnSharedPreferenceChangeListener {
            return defaultAccount == null || !defaultAccount.isNullAccount();
        }

        if (currentWritableAccounts.size() == 1) {
        if (currentWritableAccounts.size() == 1
                && !currentWritableAccounts.get(0).isNullAccount()) {
            return false;
        }

+3 −0
Original line number Diff line number Diff line
@@ -987,6 +987,9 @@ public class ContactEditorFragment extends Fragment implements
            mStatus = Status.SUB_ACTIVITY;
            startActivityForResult(intent, REQUEST_CODE_ACCOUNTS_CHANGED);
        } else {
            // Make sure the default account is automatically set if there is only one non-device
            // account.
            mEditorUtils.maybeUpdateDefaultAccount();
            // Otherwise, there should be a default account. Then either create a local contact
            // (if default account is null) or create a contact with the specified account.
            AccountWithDataSet defaultAccount = mEditorUtils.getOnlyOrDefaultAccount();
+14 −0
Original line number Diff line number Diff line
@@ -132,6 +132,20 @@ public class ContactEditorUtils {
        return mContactsPrefs.shouldShowAccountChangedNotification(getWritableAccounts());
    }

    /**
     * Sets the only non-device account to be default if it is not already.
     */
    public void maybeUpdateDefaultAccount() {
        final List<AccountWithDataSet> currentWritableAccounts = getWritableAccounts();
        if (currentWritableAccounts.size() == 1) {
            final AccountWithDataSet onlyAccount = currentWritableAccounts.get(0);
            if (!onlyAccount.isNullAccount()
                    && !onlyAccount.equals(mContactsPrefs.getDefaultAccount())) {
                mContactsPrefs.setDefaultAccount(onlyAccount);
            }
        }
    }

    @VisibleForTesting
    String[] getWritableAccountTypeStrings() {
        final Set<String> types = Sets.newHashSet();