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

Commit 43ec1840 authored by Walter Jang's avatar Walter Jang Committed by Android (Google) Code Review
Browse files

Merge "Workaround AccountWithDataSet problems on work profiles"

parents bb229241 6c5a5580
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -356,11 +356,16 @@ public class ContactSelectionActivity extends ContactsActivity
            }

            case ContactsRequest.ACTION_PICK_GROUP_MEMBERS: {
                final AccountWithDataSet account = getIntent().getParcelableExtra(
                        UiIntentActions.GROUP_ACCOUNT_WITH_DATA_SET);
                final String accountName = getIntent().getStringExtra(
                        UiIntentActions.GROUP_ACCOUNT_NAME);
                final String accountType = getIntent().getStringExtra(
                        UiIntentActions.GROUP_ACCOUNT_TYPE);
                final String accountDataSet = getIntent().getStringExtra(
                        UiIntentActions.GROUP_ACCOUNT_DATA_SET);
                final ArrayList<String> contactIds = getIntent().getStringArrayListExtra(
                        UiIntentActions.GROUP_CONTACT_IDS);
                mListFragment = GroupMemberPickerFragment.newInstance(account, contactIds);
                mListFragment = GroupMemberPickerFragment.newInstance(
                        accountName, accountType, accountDataSet, contactIds);
                break;
            }

+3 −2
Original line number Diff line number Diff line
@@ -397,8 +397,9 @@ public class GroupMembersActivity extends ContactsDrawerActivity implements
            case R.id.menu_add: {
                final Intent intent = new Intent(Intent.ACTION_PICK);
                intent.setType(ContactsContract.Groups.CONTENT_ITEM_TYPE);
                intent.putExtra(UiIntentActions.GROUP_ACCOUNT_WITH_DATA_SET,
                        mGroupMetadata.createAccountWithDataSet());
                intent.putExtra(UiIntentActions.GROUP_ACCOUNT_NAME, mGroupMetadata.accountName);
                intent.putExtra(UiIntentActions.GROUP_ACCOUNT_TYPE, mGroupMetadata.accountType);
                intent.putExtra(UiIntentActions.GROUP_ACCOUNT_DATA_SET, mGroupMetadata.dataSet);
                intent.putExtra(UiIntentActions.GROUP_CONTACT_IDS,
                        getExistingGroupMemberContactIds());
                startActivityForResult(intent, RESULT_GROUP_ADD_MEMBER);
+5 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.contacts.list;

import android.accounts.Account;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
@@ -94,8 +95,10 @@ public class ContactsIntentResolver {
                request.setActionCode(ContactsRequest.ACTION_PICK_EMAIL);
            } else if (Groups.CONTENT_ITEM_TYPE.equals(resolvedType)) {
                request.setActionCode(ContactsRequest.ACTION_PICK_GROUP_MEMBERS);
                request.setAccountWithDataSet(intent.<AccountWithDataSet> getParcelableExtra(
                        UiIntentActions.GROUP_ACCOUNT_WITH_DATA_SET));
                request.setAccountWithDataSet(new AccountWithDataSet(
                        intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_NAME),
                        intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_TYPE),
                        intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_DATA_SET)));
                request.setRawContactIds(intent.getStringArrayListExtra(
                        UiIntentActions.GROUP_CONTACT_IDS));
            }
+0 −3
Original line number Diff line number Diff line
@@ -16,10 +16,7 @@

package com.android.contacts.list;

import android.content.Intent;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;

import com.android.contacts.common.model.account.AccountWithDataSet;

+24 −11
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import com.android.contacts.common.list.ContactEntryListFragment;
import com.android.contacts.common.list.ContactListAdapter.ContactQuery;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.DefaultContactListAdapter;
import com.android.contacts.common.model.account.AccountWithDataSet;

import java.util.ArrayList;

@@ -41,10 +40,14 @@ public class GroupMemberPickerFragment extends

    public static final String TAG = "GroupMemberPicker";

    private static final String KEY_ACCOUNT = "account";
    private static final String KEY_ACCOUNT_NAME = "accountName";
    private static final String KEY_ACCOUNT_TYPE = "accountType";
    private static final String KEY_ACCOUNT_DATA_SET = "accountDataSet";
    private static final String KEY_RAW_CONTACT_IDS = "rawContactIds";

    private static final String ARG_ACCOUNT = "account";
    private static final String ARG_ACCOUNT_NAME = "accountName";
    private static final String ARG_ACCOUNT_TYPE = "accountType";
    private static final String ARG_ACCOUNT_DATA_SET = "accountDataSet";
    private static final String ARG_RAW_CONTACT_IDS = "rawContactIds";

    /** Callbacks for host of {@link GroupMemberPickerFragment}. */
@@ -132,14 +135,18 @@ public class GroupMemberPickerFragment extends
        }
    }

    private AccountWithDataSet mAccount;
    private String mAccountName;
    private String mAccountType;
    private String mAccountDataSet;
    private ArrayList<String> mRawContactIds;
    private Listener mListener;

    public static GroupMemberPickerFragment newInstance(AccountWithDataSet account,
            ArrayList<String> rawContactIds) {
    public static GroupMemberPickerFragment newInstance(String accountName, String accountType,
            String accountDataSet, ArrayList<String> rawContactIds) {
        final Bundle args = new Bundle();
        args.putParcelable(ARG_ACCOUNT, account);
        args.putString(ARG_ACCOUNT_NAME, accountName);
        args.putString(ARG_ACCOUNT_TYPE, accountType);
        args.putString(ARG_ACCOUNT_DATA_SET, accountDataSet);
        args.putStringArrayList(ARG_RAW_CONTACT_IDS, rawContactIds);

        final GroupMemberPickerFragment fragment = new GroupMemberPickerFragment();
@@ -158,10 +165,14 @@ public class GroupMemberPickerFragment extends
    @Override
    public void onCreate(Bundle savedState) {
        if (savedState == null) {
            mAccount = getArguments().getParcelable(ARG_ACCOUNT);
            mAccountName = getArguments().getString(ARG_ACCOUNT_NAME);
            mAccountType = getArguments().getString(ARG_ACCOUNT_TYPE);
            mAccountDataSet = getArguments().getString(ARG_ACCOUNT_DATA_SET);
            mRawContactIds = getArguments().getStringArrayList(ARG_RAW_CONTACT_IDS);
        } else {
            mAccount = savedState.getParcelable(KEY_ACCOUNT);
            mAccountName = savedState.getString(KEY_ACCOUNT_NAME);
            mAccountType = savedState.getString(KEY_ACCOUNT_TYPE);
            mAccountDataSet = savedState.getString(KEY_ACCOUNT_DATA_SET);
            mRawContactIds = savedState.getStringArrayList(KEY_RAW_CONTACT_IDS);
        }
        super.onCreate(savedState);
@@ -170,7 +181,9 @@ public class GroupMemberPickerFragment extends
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putParcelable(KEY_ACCOUNT, mAccount);
        outState.putString(KEY_ACCOUNT_NAME, mAccountName);
        outState.putString(KEY_ACCOUNT_TYPE, mAccountType);
        outState.putString(KEY_ACCOUNT_DATA_SET, mAccountDataSet);
        outState.putStringArrayList(KEY_RAW_CONTACT_IDS, mRawContactIds);
    }

@@ -194,7 +207,7 @@ public class GroupMemberPickerFragment extends
    protected DefaultContactListAdapter createListAdapter() {
        final DefaultContactListAdapter adapter = new DefaultContactListAdapter(getActivity());
        adapter.setFilter(ContactListFilter.createGroupMembersFilter(
                mAccount.type, mAccount.name, mAccount.dataSet));
                mAccountType, mAccountName, mAccountDataSet));
        adapter.setSectionHeaderDisplayEnabled(true);
        adapter.setDisplayPhotos(true);
        return adapter;
Loading