194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng/*
294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * Copyright (C) 2011 The Android Open Source Project
394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng *
494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * Licensed under the Apache License, Version 2.0 (the "License");
594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * you may not use this file except in compliance with the License.
694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * You may obtain a copy of the License at
794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng *
894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng *      http://www.apache.org/licenses/LICENSE-2.0
994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng *
1094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * Unless required by applicable law or agreed to in writing, software
1194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * distributed under the License is distributed on an "AS IS" BASIS,
1294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * See the License for the specific language governing permissions and
1494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * limitations under the License.
1594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng */
1694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
1794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengpackage com.android.dialer.calllog;
1894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
1994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengimport android.content.Context;
2094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengimport android.database.MatrixCursor;
2194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengimport android.test.AndroidTestCase;
2294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengimport android.test.suitebuilder.annotation.SmallTest;
2394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengimport android.view.View;
2494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
2594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengimport com.google.common.collect.Lists;
2694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
2794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengimport java.util.List;
2894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
2994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng/**
3094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng * Unit tests for {@link CallLogAdapter}.
3194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng */
3294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng@SmallTest
3394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Chengpublic class CallLogAdapterTest extends AndroidTestCase {
3494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private static final String TEST_NUMBER = "12345678";
3594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private static final String TEST_NAME = "name";
3694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private static final String TEST_NUMBER_LABEL = "label";
3794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private static final int TEST_NUMBER_TYPE = 1;
3894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private static final String TEST_COUNTRY_ISO = "US";
3994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
4094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    /** The object under test. */
4194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private TestCallLogAdapter mAdapter;
4294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
4394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private MatrixCursor mCursor;
4494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private View mView;
4594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
4694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    @Override
4794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    protected void setUp() throws Exception {
4894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        super.setUp();
4994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Use a call fetcher that does not do anything.
5094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        CallLogAdapter.CallFetcher fakeCallFetcher = new CallLogAdapter.CallFetcher() {
5194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            @Override
5294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            public void fetchCalls() {}
5394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        };
5494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
5594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        ContactInfoHelper fakeContactInfoHelper =
5694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                new ContactInfoHelper(getContext(), TEST_COUNTRY_ISO) {
5794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                    @Override
5894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                    public ContactInfo lookupNumber(String number, String countryIso) {
5994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                        ContactInfo info = new ContactInfo();
6094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                        info.number = number;
6194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                        info.formattedNumber = number;
6294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                        return info;
6394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                    }
6494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                };
6594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
6694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter = new TestCallLogAdapter(getContext(), fakeCallFetcher, fakeContactInfoHelper);
6794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // The cursor used in the tests to store the entries to display.
68f517e7bb367d1ed749b500959d0a0a1ba8c3d5e5Christine Chen        mCursor = new MatrixCursor(CallLogQuery._PROJECTION);
6994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mCursor.moveToFirst();
7094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // The views into which to store the data.
71e38e9ab6195950d2083efde283788b91d03354c4Yorke Lee        mView = new CallLogListItemView(getContext());
7294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mView.setTag(CallLogListItemViews.createForTest(getContext()));
7394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
7494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
7594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    @Override
7694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    protected void tearDown() throws Exception {
7794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter = null;
7894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mCursor = null;
7994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mView = null;
8094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        super.tearDown();
8194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
8294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
8394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    public void testBindView_NoCallLogCacheNorMemoryCache_EnqueueRequest() {
8494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mCursor.addRow(createCallLogEntry());
8594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
8694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Bind the views of a single row.
8794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.bindStandAloneView(mView, getContext(), mCursor);
8894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
8994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // There is one request for contact details.
9094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(1, mAdapter.requests.size());
9194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
9294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        TestCallLogAdapter.Request request = mAdapter.requests.get(0);
9394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // It is for the number we need to show.
9494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(TEST_NUMBER, request.number);
9594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // It has the right country.
9694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(TEST_COUNTRY_ISO, request.countryIso);
9794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Since there is nothing in the cache, it is an immediate request.
9894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertTrue("should be immediate", request.immediate);
9994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
10094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
10194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    public void testBindView_CallLogCacheButNoMemoryCache_EnqueueRequest() {
10294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mCursor.addRow(createCallLogEntryWithCachedValues());
10394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
10494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Bind the views of a single row.
10594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.bindStandAloneView(mView, getContext(), mCursor);
10694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
10794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // There is one request for contact details.
10894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(1, mAdapter.requests.size());
10994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
11094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        TestCallLogAdapter.Request request = mAdapter.requests.get(0);
11194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // The values passed to the request, match the ones in the call log cache.
11294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(TEST_NAME, request.callLogInfo.name);
11394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(1, request.callLogInfo.type);
11494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(TEST_NUMBER_LABEL, request.callLogInfo.label);
11594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
11694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
11794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
11894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    public void testBindView_NoCallLogButMemoryCache_EnqueueRequest() {
11994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mCursor.addRow(createCallLogEntry());
12094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.injectContactInfoForTest(TEST_NUMBER, TEST_COUNTRY_ISO, createContactInfo());
12194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
12294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Bind the views of a single row.
12394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.bindStandAloneView(mView, getContext(), mCursor);
12494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
12594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // There is one request for contact details.
12694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(1, mAdapter.requests.size());
12794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
12894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        TestCallLogAdapter.Request request = mAdapter.requests.get(0);
12994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Since there is something in the cache, it is not an immediate request.
13094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertFalse("should not be immediate", request.immediate);
13194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
13294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
13394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    public void testBindView_BothCallLogAndMemoryCache_NoEnqueueRequest() {
13494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mCursor.addRow(createCallLogEntryWithCachedValues());
13594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.injectContactInfoForTest(TEST_NUMBER, TEST_COUNTRY_ISO, createContactInfo());
13694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
13794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Bind the views of a single row.
13894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.bindStandAloneView(mView, getContext(), mCursor);
13994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
14094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Cache and call log are up-to-date: no need to request update.
14194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(0, mAdapter.requests.size());
14294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
14394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
14494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    public void testBindView_MismatchBetwenCallLogAndMemoryCache_EnqueueRequest() {
14594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mCursor.addRow(createCallLogEntryWithCachedValues());
14694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
14794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Contact info contains a different name.
14894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        ContactInfo info = createContactInfo();
14994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        info.name = "new name";
15094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.injectContactInfoForTest(TEST_NUMBER, TEST_COUNTRY_ISO, info);
15194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
15294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Bind the views of a single row.
15394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        mAdapter.bindStandAloneView(mView, getContext(), mCursor);
15494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
15594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // There is one request for contact details.
15694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertEquals(1, mAdapter.requests.size());
15794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
15894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        TestCallLogAdapter.Request request = mAdapter.requests.get(0);
15994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        // Since there is something in the cache, it is not an immediate request.
16094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        assertFalse("should not be immediate", request.immediate);
16194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
16294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
16394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    /** Returns a contact info with default values. */
16494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private ContactInfo createContactInfo() {
16594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        ContactInfo info = new ContactInfo();
16694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        info.number = TEST_NUMBER;
16794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        info.name = TEST_NAME;
16894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        info.type = TEST_NUMBER_TYPE;
16994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        info.label = TEST_NUMBER_LABEL;
17094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        return info;
17194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
17294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
17394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    /** Returns a call log entry without cached values. */
17494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private Object[] createCallLogEntry() {
175f517e7bb367d1ed749b500959d0a0a1ba8c3d5e5Christine Chen        Object[] values = CallLogQueryTestUtils.createTestValues();
17694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        values[CallLogQuery.NUMBER] = TEST_NUMBER;
17794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        values[CallLogQuery.COUNTRY_ISO] = TEST_COUNTRY_ISO;
17894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        return values;
17994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
18094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
18194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    /** Returns a call log entry with a cached values. */
18294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private Object[] createCallLogEntryWithCachedValues() {
18394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        Object[] values = createCallLogEntry();
18494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        values[CallLogQuery.CACHED_NAME] = TEST_NAME;
18594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        values[CallLogQuery.CACHED_NUMBER_TYPE] = TEST_NUMBER_TYPE;
18694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        values[CallLogQuery.CACHED_NUMBER_LABEL] = TEST_NUMBER_LABEL;
18794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        return values;
18894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
18994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
19094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    /**
19194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng     * Subclass of {@link CallLogAdapter} used in tests to intercept certain calls.
19294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng     */
19394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    // TODO: This would be better done by splitting the contact lookup into a collaborator class
19494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    // instead.
19594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    private static final class TestCallLogAdapter extends CallLogAdapter {
19694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        public static class Request {
19794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            public final String number;
19894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            public final String countryIso;
19994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            public final ContactInfo callLogInfo;
20094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            public final boolean immediate;
20194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
20294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            public Request(String number, String countryIso, ContactInfo callLogInfo,
20394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                    boolean immediate) {
20494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                this.number = number;
20594b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                this.countryIso = countryIso;
20694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                this.callLogInfo = callLogInfo;
20794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                this.immediate = immediate;
20894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            }
20994b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        }
21094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
21194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        public final List<Request> requests = Lists.newArrayList();
21294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
21394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        public TestCallLogAdapter(Context context, CallFetcher callFetcher,
21494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                ContactInfoHelper contactInfoHelper) {
2159686330691f1216edff0ffa779138bda43388c47Sai Cheemalapati            super(context, callFetcher, contactInfoHelper, null, null, false);
21694b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        }
21794b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng
21894b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        @Override
219ac30d47c709ef6f0a27b67db6d53635e580d3724Chiao Cheng        protected void enqueueRequest(String number, String countryIso, ContactInfo callLogInfo,
22094b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng                boolean immediate) {
22194b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng            requests.add(new Request(number, countryIso, callLogInfo, immediate));
22294b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng        }
22394b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng    }
22494b10b530c0fc297e2974e57e094c500d3ee6003Chiao Cheng}
225