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