tree a33447c38bbfa4a055e78c909176dde351b419d9
parent 6b049128c51b90e17ae14856d98130a22d3a5433
author Yorke Lee <yorkelee@google.com> 1372296272 -0700
committer Yorke Lee <yorkelee@google.com> 1374002912 -0700

Initial commit of all new dialer activities, layouts and styles

As far as possible, this change does not modify any behavior/look
of the existing dialer. All modifications to classes/layouts/style attributes
that would affect functionality of the old dialer are instead done in
separate new files.

Added new versions of all activities, fragments, layouts, menus
and resources that have been rewritten or modified.

The activities do not have intent filters yet in order to not interfere
with the existing dialer.

Added some new values in colors/styles/dimens for the newly added
layouts.

Added NewCallLogActivity to separate the CallLogFragment from
DialtactsActivity. All call log and voicemail entries are now presented
in a separate (New)CallLogActivity.

IntentProvider.getCallDetailIntent now takes a cursor instead of an
adapter for more flexibility.

Add OnListFragmentScrolledListener interface for DialtactsActivity
to receive callback when one of its children fragment is scrolled.

Added slide in and slide out animations for DialpadFragment.

Add slide up and hide animations for search view

All menu options now show up in a PopupMenu in NewPhoneFavoriteFragment.

Added call log adapter into NewPhoneFavoriteMergedAdapter.

Rewrote layout of DialpadFragment to show up as a fragment partially overlaying
the screen.
Removed some unused code in DialpadFragment (smart dialing, menu handling)

Add fragments and adapters for SmartDial.

- Update Dialer database to support highlight masking and record contact
  data Uri, as well as photo uri
- Add a fragment and adapter for smart dialing
- Add SmartDialCursorLoader to load SmartDial results.
- Typing in the dialpad now returns smart dialing results instead of regular
  search results

QuickContactTiles for all sub-adapters of PhoneFavoriteMergedAdapter now use
light theme instead of the the default dark theme.

Removed all redundant call log filter and contacts to display filter code

Moved Dialer specific UI list-related classes to the Dialer package

Change-Id: I34885813e4fa79b69e29ac870a87a56d6f08a5e7
