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

Commit cfe94650 authored by Wenyi Wang's avatar Wenyi Wang
Browse files

Set action bar title in fragment rather than PeopleActivity

Bug: 31920908
Bug: 30944495

Test: manual - follow steps to repro in the bug and navigate b/w
               fragments (tested all acounts incl. Device).

Change-Id: I085628bd98685f9d1f07cf3c526d36b4127f5376
parent 9c1974f6
Loading
Loading
Loading
Loading
+1 −21
Original line number Diff line number Diff line
@@ -845,16 +845,7 @@ public class PeopleActivity extends ContactsDrawerActivity {
            mShouldSwitchToAllContacts = true;
        }

        // Set title and check menu in navigation drawer.
        final String actionBarTitle;
        if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
            actionBarTitle = getString(R.string.account_phone);
        } else if (!TextUtils.isEmpty(filter.accountName)) {
            actionBarTitle = getActionBarTitleForAccount(filter);
        } else {
            actionBarTitle = getString(R.string.contactsList);
        }
        setTitle(actionBarTitle);
        // Check menu in navigation drawer.
        updateFilterMenu(filter);

        if (CompatUtils.isNCompatible()) {
@@ -863,15 +854,4 @@ public class PeopleActivity extends ContactsDrawerActivity {
        }
        invalidateOptionsMenu();
    }

    private String getActionBarTitleForAccount(ContactListFilter filter) {
        final AccountDisplayInfoFactory factory = AccountDisplayInfoFactory
                .forAllAccounts(this);
        final AccountDisplayInfo account = factory.getAccountDisplayInfoFor(filter);
        if (account.hasGoogleAccountType()) {
            return getString(R.string.title_from_google);
        }
        return account.withFormattedName(this, R.string.title_from_other_accounts)
                .getNameLabel().toString();
    }
}
+26 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Intents;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;

@@ -35,6 +36,8 @@ import com.android.contacts.common.list.AccountFilterActivity;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.ContactListFilterController;
import com.android.contacts.common.model.AccountTypeManager;
import com.android.contacts.common.model.account.AccountDisplayInfo;
import com.android.contacts.common.model.account.AccountDisplayInfoFactory;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.AccountWithDataSet;
import com.android.contacts.common.preference.ContactsPreferences;
@@ -209,4 +212,27 @@ public class AccountFilterUtil {
    public static boolean isDeviceContactsFilter(ContactListFilter filter) {
        return filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS;
    }

    /**
     * Returns action bar title for filter and returns default title "Contacts" if filter is empty.
     */
    public static String getActionBarTitleForFilter(Context context, ContactListFilter filter) {
        if (filter.filterType == ContactListFilter.FILTER_TYPE_DEVICE_CONTACTS) {
            return context.getString(R.string.account_phone);
        } else if (!TextUtils.isEmpty(filter.accountName)) {
            return getActionBarTitleForAccount(context, filter);
        }
        return context.getString(R.string.contactsList);
    }

    private static String getActionBarTitleForAccount(Context context, ContactListFilter filter) {
        final AccountDisplayInfoFactory factory =
                AccountDisplayInfoFactory.forAllAccounts(context);
        final AccountDisplayInfo account = factory.getAccountDisplayInfoFor(filter);
        if (account.hasGoogleAccountType()) {
            return context.getString(R.string.title_from_google);
        }
        return account.withFormattedName(context, R.string.title_from_other_accounts)
                .getNameLabel().toString();
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -689,6 +689,7 @@ public class DefaultContactBrowseListFragment extends ContactBrowseListFragment
    private void setFilterAndUpdateTitle(ContactListFilter filter, boolean restoreSelectedUri) {
        setContactListFilter(filter);
        updateListFilter(filter, restoreSelectedUri);
        mActivity.setTitle(AccountFilterUtil.getActionBarTitleForFilter(mActivity, filter));

        // Determine whether the account has pullToRefresh feature
        if (Flags.getInstance(getContext()).getBoolean(Experiments.PULL_TO_REFRESH)) {