diff options
Diffstat (limited to 'src/com/android/dialer/calllog')
7 files changed, 270 insertions, 148 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index 46f010a15..46bb4fd28 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -517,7 +517,7 @@ import java.util.LinkedList; views.primaryActionView.setTag( IntentProvider.getCallDetailIntentProvider( - this, c.getPosition(), c.getLong(CallLogQuery.ID), count)); + getCursor(), c.getPosition(), c.getLong(CallLogQuery.ID), count)); // Store away the voicemail information so we can play it directly. if (callType == Calls.VOICEMAIL_TYPE) { String voicemailUri = c.getString(CallLogQuery.VOICEMAIL_URI); diff --git a/src/com/android/dialer/calllog/CallLogQueryHandler.java b/src/com/android/dialer/calllog/CallLogQueryHandler.java index fed381427..91a2e5d2b 100644 --- a/src/com/android/dialer/calllog/CallLogQueryHandler.java +++ b/src/com/android/dialer/calllog/CallLogQueryHandler.java @@ -45,7 +45,7 @@ import java.util.List; import javax.annotation.concurrent.GuardedBy; /** Handles asynchronous queries to the call log. */ -/*package*/ class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler { +public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler { private static final String[] EMPTY_STRING_ARRAY = new String[0]; private static final String TAG = "CallLogQueryHandler"; @@ -62,6 +62,8 @@ import javax.annotation.concurrent.GuardedBy; /** The token for the query to fetch voicemail status messages. */ private static final int QUERY_VOICEMAIL_STATUS_TOKEN = 58; + private final int mLogLimit; + /** * Call type similar to Calls.INCOMING_TYPE used to specify all types instead of one particular * type. @@ -121,10 +123,16 @@ import javax.annotation.concurrent.GuardedBy; } public CallLogQueryHandler(ContentResolver contentResolver, Listener listener) { + this(contentResolver, listener, -1); + } + + public CallLogQueryHandler(ContentResolver contentResolver, Listener listener, int limit) { super(contentResolver); mListener = new WeakReference<Listener>(listener); + mLogLimit = limit; } + /** * Fetches the list of calls from the call log for a given type. * <p> @@ -154,8 +162,9 @@ import javax.annotation.concurrent.GuardedBy; selection = String.format("(%s = ?)", Calls.TYPE); selectionArgs.add(Integer.toString(callType)); } + final int limit = (mLogLimit == -1) ? NUM_LOGS_TO_DISPLAY : mLogLimit; Uri uri = Calls.CONTENT_URI_WITH_VOICEMAIL.buildUpon() - .appendQueryParameter(Calls.LIMIT_PARAM_KEY, Integer.toString(NUM_LOGS_TO_DISPLAY)) + .appendQueryParameter(Calls.LIMIT_PARAM_KEY, Integer.toString(limit)) .build(); startQuery(token, requestId, uri, CallLogQuery._PROJECTION, selection, selectionArgs.toArray(EMPTY_STRING_ARRAY), diff --git a/src/com/android/dialer/calllog/IntentProvider.java b/src/com/android/dialer/calllog/IntentProvider.java index 1b79d6ebc..01ebf2f3e 100644 --- a/src/com/android/dialer/calllog/IntentProvider.java +++ b/src/com/android/dialer/calllog/IntentProvider.java @@ -62,11 +62,10 @@ public abstract class IntentProvider { } public static IntentProvider getCallDetailIntentProvider( - final CallLogAdapter adapter, final int position, final long id, final int groupSize) { + final Cursor cursor, final int position, final long id, final int groupSize) { return new IntentProvider() { @Override public Intent getIntent(Context context) { - Cursor cursor = adapter.getCursor(); cursor.moveToPosition(position); Intent intent = new Intent(context, CallDetailActivity.class); diff --git a/src/com/android/dialer/calllog/NewCallLogActivity.java b/src/com/android/dialer/calllog/NewCallLogActivity.java new file mode 100644 index 000000000..a3704cc98 --- /dev/null +++ b/src/com/android/dialer/calllog/NewCallLogActivity.java @@ -0,0 +1,189 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.dialer.calllog; + +import android.app.ActionBar; +import android.app.Activity; +import android.app.Fragment; +import android.app.FragmentManager; +import android.app.ActionBar.Tab; +import android.app.ActionBar.TabListener; +import android.app.FragmentTransaction; +import android.content.Intent; +import android.os.Bundle; +import android.provider.CallLog.Calls; +import android.support.v13.app.FragmentPagerAdapter; +import android.support.v4.view.PagerTabStrip; +import android.support.v4.view.ViewPager; +import android.support.v4.view.ViewPager.OnPageChangeListener; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; + +import com.android.dialer.NewDialtactsActivity; +import com.android.dialer.R; +import com.android.dialer.calllog.NewCallLogFragment; + +public class NewCallLogActivity extends Activity { + + private ViewPager mViewPager; + private ViewPagerAdapter mViewPagerAdapter; + private NewCallLogFragment mAllCallsFragment; + private NewCallLogFragment mMissedCallsFragment; + private NewCallLogFragment mVoicemailsFragment; + + private static final int TAB_INDEX_ALL = 0; + private static final int TAB_INDEX_MISSED = 1; + private static final int TAB_INDEX_VOICEMAIL = 2; + + private static final int TAB_INDEX_COUNT = 3; + + public class ViewPagerAdapter extends FragmentPagerAdapter { + public ViewPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + switch (position) { + case TAB_INDEX_ALL: + mAllCallsFragment = new NewCallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL); + return mAllCallsFragment; + case TAB_INDEX_MISSED: + mMissedCallsFragment = new NewCallLogFragment(Calls.MISSED_TYPE); + return mMissedCallsFragment; + case TAB_INDEX_VOICEMAIL: + mVoicemailsFragment = new NewCallLogFragment(Calls.VOICEMAIL_TYPE); + return mVoicemailsFragment; + } + throw new IllegalStateException("No fragment at position " + position); + } + + @Override + public int getCount() { + return TAB_INDEX_COUNT; + } + } + + private final TabListener mTabListener = new TabListener() { + @Override + public void onTabUnselected(Tab tab, FragmentTransaction ft) { + } + + @Override + public void onTabSelected(Tab tab, FragmentTransaction ft) { + if (mViewPager != null && mViewPager.getCurrentItem() != tab.getPosition()) { + mViewPager.setCurrentItem(tab.getPosition(), true); + } + } + + @Override + public void onTabReselected(Tab tab, FragmentTransaction ft) { + } + }; + + private final OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener() { + + @Override + public void onPageScrolled( + int position, float positionOffset, int positionOffsetPixels) {} + + @Override + public void onPageSelected(int position) { + final ActionBar actionBar = getActionBar(); + actionBar.selectTab(actionBar.getTabAt(position)); + } + + @Override + public void onPageScrollStateChanged(int arg0) { + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.call_log_activity_new); + + final ActionBar actionBar = getActionBar(); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); + actionBar.setDisplayShowHomeEnabled(true); + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowTitleEnabled(true); + + final Tab allTab = actionBar.newTab(); + final String allTitle = getString(R.string.call_log_all_title); + allTab.setContentDescription(allTitle); + allTab.setText(allTitle); + allTab.setTabListener(mTabListener); + actionBar.addTab(allTab); + + final Tab missedTab = actionBar.newTab(); + final String missedTitle = getString(R.string.call_log_missed_title); + missedTab.setContentDescription(missedTitle); + missedTab.setText(missedTitle); + missedTab.setTabListener(mTabListener); + actionBar.addTab(missedTab); + + final Tab voicemailTab = actionBar.newTab(); + final String voicemailTitle = getString(R.string.call_log_voicemail_title); + voicemailTab.setContentDescription(voicemailTitle); + voicemailTab.setText(voicemailTitle); + voicemailTab.setTabListener(mTabListener); + actionBar.addTab(voicemailTab); + + mViewPager = (ViewPager) findViewById(R.id.call_log_pager); + mViewPagerAdapter = new ViewPagerAdapter(getFragmentManager()); + mViewPager.setAdapter(mViewPagerAdapter); + mViewPager.setOnPageChangeListener(mOnPageChangeListener); + mViewPager.setOffscreenPageLimit(2); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + final MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.call_log_options_new, menu); + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + final MenuItem itemDeleteAll = menu.findItem(R.id.delete_all); + + final NewCallLogAdapter adapter = mAllCallsFragment.getAdapter(); + // Check if all the menu items are inflated correctly. As a shortcut, we assume all + // menu items are ready if the first item is non-null. + if (itemDeleteAll != null) { + itemDeleteAll.setEnabled(adapter != null && !adapter.isEmpty()); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + final Intent intent = new Intent(this, NewDialtactsActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + return true; + case R.id.delete_all: + ClearCallLogDialog.show(getFragmentManager()); + return true; + } + return super.onOptionsItemSelected(item); + } +} diff --git a/src/com/android/dialer/calllog/NewCallLogAdapter.java b/src/com/android/dialer/calllog/NewCallLogAdapter.java index 079919f59..c2f7c71e6 100644 --- a/src/com/android/dialer/calllog/NewCallLogAdapter.java +++ b/src/com/android/dialer/calllog/NewCallLogAdapter.java @@ -46,7 +46,7 @@ import java.util.LinkedList; /** * Adapter class to fill in data for the Call Log. */ -/*package*/ class NewCallLogAdapter extends GroupingListAdapter +public class NewCallLogAdapter extends GroupingListAdapter implements ViewTreeObserver.OnPreDrawListener, CallLogGroupBuilder.GroupCreator { /** Interface used to initiate a refresh of the content. */ public interface CallFetcher { @@ -166,7 +166,7 @@ import java.util.LinkedList; private QueryThread mCallerIdThread; /** Instance of helper class for managing views. */ - private final CallLogListItemHelper mCallLogViewsHelper; + private final NewCallLogListItemHelper mCallLogViewsHelper; /** Helper to set up contact photos. */ private final ContactPhotoManager mContactPhotoManager; @@ -227,7 +227,7 @@ import java.util.LinkedList; } }; - NewCallLogAdapter(Context context, CallFetcher callFetcher, + public NewCallLogAdapter(Context context, CallFetcher callFetcher, ContactInfoHelper contactInfoHelper) { super(context); @@ -246,7 +246,7 @@ import java.util.LinkedList; PhoneCallDetailsHelper phoneCallDetailsHelper = new PhoneCallDetailsHelper( resources, callTypeHelper, mPhoneNumberHelper); mCallLogViewsHelper = - new CallLogListItemHelper( + new NewCallLogListItemHelper( phoneCallDetailsHelper, mPhoneNumberHelper, resources); mCallLogGroupBuilder = new CallLogGroupBuilder(this); } @@ -259,7 +259,7 @@ import java.util.LinkedList; mCallFetcher.fetchCalls(); } - void setLoading(boolean loading) { + public void setLoading(boolean loading) { mLoading = loading; } @@ -444,7 +444,7 @@ import java.util.LinkedList; protected View newStandAloneView(Context context, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View view = inflater.inflate(R.layout.call_log_list_item, parent, false); + View view = inflater.inflate(R.layout.new_call_log_list_item, parent, false); findAndCacheViews(view); return view; } @@ -458,7 +458,7 @@ import java.util.LinkedList; protected View newChildView(Context context, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View view = inflater.inflate(R.layout.call_log_list_item, parent, false); + View view = inflater.inflate(R.layout.new_call_log_list_item, parent, false); findAndCacheViews(view); return view; } @@ -472,7 +472,7 @@ import java.util.LinkedList; protected View newGroupView(Context context, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View view = inflater.inflate(R.layout.call_log_list_item, parent, false); + View view = inflater.inflate(R.layout.new_call_log_list_item, parent, false); findAndCacheViews(view); return view; } @@ -515,9 +515,10 @@ import java.util.LinkedList; final ContactInfo cachedContactInfo = getContactInfoFromCallLog(c); - /*views.primaryActionView.setTag( + views.primaryActionView.setTag( IntentProvider.getCallDetailIntentProvider( - this, c.getPosition(), c.getLong(CallLogQuery.ID), count));*/ + getCursor(), c.getPosition(), c.getLong(CallLogQuery.ID), count)); + // Store away the voicemail information so we can play it directly. if (callType == Calls.VOICEMAIL_TYPE) { String voicemailUri = c.getString(CallLogQuery.VOICEMAIL_URI); @@ -715,7 +716,7 @@ import java.util.LinkedList; private void setPhoto(CallLogListItemViews views, long photoId, Uri contactUri) { views.quickContactView.assignContactUri(contactUri); - mContactPhotoManager.loadThumbnail(views.quickContactView, photoId, true); + mContactPhotoManager.loadThumbnail(views.quickContactView, photoId, false /* darkTheme */); } /** diff --git a/src/com/android/dialer/calllog/NewCallLogFragment.java b/src/com/android/dialer/calllog/NewCallLogFragment.java index d5b17952c..c470c55d4 100644 --- a/src/com/android/dialer/calllog/NewCallLogFragment.java +++ b/src/com/android/dialer/calllog/NewCallLogFragment.java @@ -34,7 +34,6 @@ import android.provider.ContactsContract; import android.telephony.PhoneNumberUtils; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; -import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -59,10 +58,11 @@ import com.google.common.annotations.VisibleForTesting; import java.util.List; /** - * Displays a list of call log entries. + * Displays a list of call log entries. To filter for a particular kind of call + * (all, missed or voicemails), specify it in the constructor. */ public class NewCallLogFragment extends ListFragment - implements CallLogQueryHandler.Listener, CallLogAdapter.CallFetcher { + implements CallLogQueryHandler.Listener, NewCallLogAdapter.CallFetcher { private static final String TAG = "CallLogFragment"; /** @@ -70,7 +70,7 @@ public class NewCallLogFragment extends ListFragment */ private static final int EMPTY_LOADER_ID = 0; - private CallLogAdapter mAdapter; + private NewCallLogAdapter mAdapter; private CallLogQueryHandler mCallLogQueryHandler; private boolean mScrollToTop; @@ -81,7 +81,6 @@ public class NewCallLogFragment extends ListFragment private View mStatusMessageView; private TextView mStatusMessageText; private TextView mStatusMessageAction; - private TextView mFilterStatusView; private KeyguardManager mKeyguardManager; private boolean mEmptyLoaderRunning; @@ -114,11 +113,30 @@ public class NewCallLogFragment extends ListFragment // Default to all calls. private int mCallTypeFilter = CallLogQueryHandler.CALL_TYPE_ALL; + // Log limit - if no limit is specified, then the default in {@link NewCallLogQueryHandler} + // will be used. + private int mLogLimit = -1; + + public NewCallLogFragment() { + this(CallLogQueryHandler.CALL_TYPE_ALL, -1); + } + + public NewCallLogFragment(int filterType) { + this(filterType, -1); + } + + public NewCallLogFragment(int filterType, int logLimit) { + super(); + mCallTypeFilter = filterType; + mLogLimit = logLimit; + } + @Override public void onCreate(Bundle state) { super.onCreate(state); - mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(), this); + mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(), + this, mLogLimit); mKeyguardManager = (KeyguardManager) getActivity().getSystemService(Context.KEYGUARD_SERVICE); getActivity().getContentResolver().registerContentObserver( @@ -126,6 +144,7 @@ public class NewCallLogFragment extends ListFragment getActivity().getContentResolver().registerContentObserver( ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver); setHasOptionsMenu(true); + updateCallList(mCallTypeFilter); } /** Called by the CallLogQueryHandler when the list of calls has been fetched or updated. */ @@ -205,20 +224,20 @@ public class NewCallLogFragment extends ListFragment @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) { - View view = inflater.inflate(R.layout.call_log_fragment, container, false); + View view = inflater.inflate(R.layout.new_call_log_fragment, container, false); mVoicemailStatusHelper = new VoicemailStatusHelperImpl(); mStatusMessageView = view.findViewById(R.id.voicemail_status); mStatusMessageText = (TextView) view.findViewById(R.id.voicemail_status_message); mStatusMessageAction = (TextView) view.findViewById(R.id.voicemail_status_action); - mFilterStatusView = (TextView) view.findViewById(R.id.filter_status); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + updateEmptyMessage(mCallTypeFilter); String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity()); - mAdapter = new CallLogAdapter(getActivity(), this, + mAdapter = new NewCallLogAdapter(getActivity(), this, new ContactInfoHelper(getActivity(), currentCountryIso)); setListAdapter(mAdapter); getListView().setItemsCanFocus(true); @@ -250,6 +269,7 @@ public class NewCallLogFragment extends ListFragment @Override public void onResume() { + Log.d(TAG, "Call Log Fragment resume"); super.onResume(); refreshData(); } @@ -320,132 +340,30 @@ public class NewCallLogFragment extends ListFragment mCallLogQueryHandler.fetchVoicemailStatus(); } - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - super.onCreateOptionsMenu(menu, inflater); - inflater.inflate(R.menu.call_log_options, menu); - } - - @Override - public void onPrepareOptionsMenu(Menu menu) { - final MenuItem itemDeleteAll = menu.findItem(R.id.delete_all); - // Check if all the menu items are inflated correctly. As a shortcut, we assume all - // menu items are ready if the first item is non-null. - if (itemDeleteAll != null) { - itemDeleteAll.setEnabled(mAdapter != null && !mAdapter.isEmpty()); - - showAllFilterMenuOptions(menu); - hideCurrentFilterMenuOption(menu); - - // Only hide if not available. Let the above calls handle showing. - if (!mVoicemailSourcesAvailable) { - menu.findItem(R.id.show_voicemails_only).setVisible(false); - } + private void updateCallList(int filterType) { + if (filterType == CallLogQueryHandler.CALL_TYPE_ALL) { + unregisterPhoneCallReceiver(); + } else { + // TODO krelease: Make this work + //registerPhoneCallReceiver(); } + mCallLogQueryHandler.fetchCalls(filterType); } - private void hideCurrentFilterMenuOption(Menu menu) { - MenuItem item = null; - switch (mCallTypeFilter) { - case CallLogQueryHandler.CALL_TYPE_ALL: - item = menu.findItem(R.id.show_all_calls); - break; - case Calls.INCOMING_TYPE: - item = menu.findItem(R.id.show_incoming_only); - break; - case Calls.OUTGOING_TYPE: - item = menu.findItem(R.id.show_outgoing_only); - break; + private void updateEmptyMessage(int filterType) { + final String message; + switch (filterType) { case Calls.MISSED_TYPE: - item = menu.findItem(R.id.show_missed_only); + message = getString(R.string.recentMissed_empty); break; case Calls.VOICEMAIL_TYPE: - menu.findItem(R.id.show_voicemails_only); + message = getString(R.string.recentVoicemails_empty); break; - } - if (item != null) { - item.setVisible(false); - } - } - - private void showAllFilterMenuOptions(Menu menu) { - menu.findItem(R.id.show_all_calls).setVisible(true); - menu.findItem(R.id.show_incoming_only).setVisible(true); - menu.findItem(R.id.show_outgoing_only).setVisible(true); - menu.findItem(R.id.show_missed_only).setVisible(true); - menu.findItem(R.id.show_voicemails_only).setVisible(true); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.delete_all: - ClearCallLogDialog.show(getFragmentManager()); - return true; - - case R.id.show_outgoing_only: - // We only need the phone call receiver when there is an active call type filter. - // Not many people may use the filters so don't register the receiver until now . - registerPhoneCallReceiver(); - mCallLogQueryHandler.fetchCalls(Calls.OUTGOING_TYPE); - updateFilterTypeAndHeader(Calls.OUTGOING_TYPE); - return true; - - case R.id.show_incoming_only: - registerPhoneCallReceiver(); - mCallLogQueryHandler.fetchCalls(Calls.INCOMING_TYPE); - updateFilterTypeAndHeader(Calls.INCOMING_TYPE); - return true; - - case R.id.show_missed_only: - registerPhoneCallReceiver(); - mCallLogQueryHandler.fetchCalls(Calls.MISSED_TYPE); - updateFilterTypeAndHeader(Calls.MISSED_TYPE); - return true; - - case R.id.show_voicemails_only: - registerPhoneCallReceiver(); - mCallLogQueryHandler.fetchCalls(Calls.VOICEMAIL_TYPE); - updateFilterTypeAndHeader(Calls.VOICEMAIL_TYPE); - return true; - - case R.id.show_all_calls: - // Filter is being turned off, receiver no longer needed. - unregisterPhoneCallReceiver(); - mCallLogQueryHandler.fetchCalls(CallLogQueryHandler.CALL_TYPE_ALL); - updateFilterTypeAndHeader(CallLogQueryHandler.CALL_TYPE_ALL); - return true; - default: - return false; - } - } - - private void updateFilterTypeAndHeader(int filterType) { - mCallTypeFilter = filterType; - - switch (filterType) { - case CallLogQueryHandler.CALL_TYPE_ALL: - mFilterStatusView.setVisibility(View.GONE); - break; - case Calls.INCOMING_TYPE: - showFilterStatus(R.string.call_log_incoming_header); - break; - case Calls.OUTGOING_TYPE: - showFilterStatus(R.string.call_log_outgoing_header); - break; - case Calls.MISSED_TYPE: - showFilterStatus(R.string.call_log_missed_header); - break; - case Calls.VOICEMAIL_TYPE: - showFilterStatus(R.string.call_log_voicemail_header); + message = getString(R.string.recentCalls_empty); break; } - } - - private void showFilterStatus(int resId) { - mFilterStatusView.setText(resId); - mFilterStatusView.setVisibility(View.VISIBLE); + ((TextView) getListView().getEmptyView()).setText(message); } public void callSelectedEntry() { @@ -489,8 +407,7 @@ public class NewCallLogFragment extends ListFragment } } - @VisibleForTesting - CallLogAdapter getAdapter() { + NewCallLogAdapter getAdapter() { return mAdapter; } @@ -547,6 +464,8 @@ public class NewCallLogFragment extends ListFragment updateOnTransition(true); } + // TODO krelease: Figure out if we still need this. If so, it should be probably be moved to + // the call log activity instead, or done only in a single call log fragment. private void updateOnTransition(boolean onEntry) { // We don't want to update any call data when keyguard is on because the user has likely not // seen the new calls yet. @@ -570,9 +489,13 @@ public class NewCallLogFragment extends ListFragment getActivity().startService(serviceIntent); } + // TODO krelease: Make the ViewPager switch to the correct tab (All) when a phone call is + // placed. + // This should probably be moved to the call log activity. /** * Register a phone call filter to reset the call type when a phone call is place. */ + /* private void registerPhoneCallReceiver() { if (mPhoneStateListener != null) { return; // Already registered. @@ -592,13 +515,13 @@ public class NewCallLogFragment extends ListFragment if (getActivity() == null || getActivity().isFinishing()) { return; } - updateFilterTypeAndHeader(CallLogQueryHandler.CALL_TYPE_ALL); } }); } }; mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); } + */ /** * Un-registers the phone call receiver. diff --git a/src/com/android/dialer/calllog/NewCallLogListItemHelper.java b/src/com/android/dialer/calllog/NewCallLogListItemHelper.java index 371094d34..6cb80a051 100644 --- a/src/com/android/dialer/calllog/NewCallLogListItemHelper.java +++ b/src/com/android/dialer/calllog/NewCallLogListItemHelper.java @@ -27,8 +27,12 @@ import com.android.dialer.R; /** * Helper class to fill in the views of a call log entry. + * TODO krelease: The only difference between this and the original is that we don't touch + * divider views, which are not present in the new dialer. Once the new dialer replaces + * the old one, we can replace it entirely. Otherwise we would have redundant divider=null + * checks all over the place. */ -/*package*/ class NewCallLogListItemHelper { +/* package */class NewCallLogListItemHelper { /** Helper for populating the details of a phone call. */ private final PhoneCallDetailsHelper mPhoneCallDetailsHelper; /** Helper for handling phone numbers. */ @@ -67,15 +71,12 @@ import com.android.dialer.R; if (canPlay) { // Playback action takes preference. configurePlaySecondaryAction(views, isHighlighted); - views.dividerView.setVisibility(View.VISIBLE); } else if (canCall) { // Call is the secondary action. configureCallSecondaryAction(views, details); - views.dividerView.setVisibility(View.VISIBLE); } else { // No action available. views.secondaryActionView.setVisibility(View.GONE); - views.dividerView.setVisibility(View.GONE); } } |