summaryrefslogtreecommitdiff
path: root/tests/src/com/android/dialer
AgeCommit message (Collapse)Author
2013-11-19Rename PhoneNumberHelper in DialerYorke Lee
Rename PhoneNumberHelper to more appropriate PhoneNumberDisplayHelper Change-Id: I2c03f5cbb04c1e03f1fc1e0051a1cea641160dca
2013-09-24Adding missed call badge.Chiao Cheng
Bug: 10861718 Change-Id: I3a889a71cff7abac578da83d09dd7af23f3f88ca
2013-09-20Fix build break.Chiao Cheng
Updating access modifier of test class. Bug: 10822944 Change-Id: If24c4afc280b2b2dcdf38119a857f0f3b9fd8778
2013-09-14Follow up on build break to fix unit tests.Chiao Cheng
Change-Id: I82b7fa50601f6dad60038fd1b9c5f0aad2f374f5
2013-09-13Fix build break.Chiao Cheng
Change-Id: I1d1aa2bc7228a788805937b80972cb800ed0ceff
2013-09-11Add no contacts view to DialerYorke Lee
Bug: 10330508 Change-Id: I5f73a63118558e734cd36e681c59f4b82050a49c
2013-08-22Rewrite animation logicYorke Lee
* Remove old animation-related code. In the past, animations would be applied to a view everytime getView was called. This is no longer the case so it fixes the issue of animations triggering everytime the list was scrolled, dialpad opened, etc. * Make PhoneFavoriteMergedAdapter (and PhoneFavoritesTileAdapter) return stable IDs, so that they can be used for animations. The ID schemes are described below: (N + 1) to -2: CallLogAdapterItems, where N is equal to the number of call log items -1: All contacts button 0 to (N -1): Rows of tiled contacts, where N is equal to the max rows of tiled contacts N to infinity: Rows of regular contacts. Their item id is calculated by N + contact_id, where contact_id is guaranteed to never be negative. * Perform animations by saving each view's offset before the data set changes, and then applying a translation animation to them based on their new offsets in the updated list view. This is the same method described by the framework team at : http://graphics-geek.blogspot.com/2013/06/devbytes-animating-listview-deletion.html In our case, we need to perform both horizontal and vertical animations because of the contact tile favorites. Bug: 10294203 Change-Id: I3ea4ff9995c539267410a264dbbea5ffa02bc6e3
2013-08-17Fix SmartDialPrefixTest database creation.Christine Chen
Bug: 10346442 Change-Id: Id6326622ff91175b55717409754dd376a48c0269
2013-08-15Change primary actions of the CallLog items.Christine Chen
- When the CallLog item is in the CallLog fragment, the primary action remains to be opening the call detail page. - When the CallLog item is in the Favorite fragment, the primary action changes to be calling the number directly. The secondary action is hidden unless it is to play a voicemail. Bug: 10308694 Change-Id: I28ca7aa783bcca35eb8b41f6e8508d08062dd253
2013-08-07Integrate pinning support with drag and drop UIYorke Lee
* Added the concept of a blank entry. This is used to keep the rest of the list in place while a contact is being dragged. Blank entries appear as invisible views for now. * Added the concept of a DEMOTED contact, which is used to indicate that a contact should never be displayed in the favorites list. * Pinned position management methods and tests Added two methods to handle assigning of contact positions based on their pinned positions, as well as reflowing of contacts when a contact is pinned at a new position. The assigning of contact positions works as defined below: 1) All contacts with pinned positions are assigned their defined pinned positions as necessary. 2) If two contacts have been given the same pinned position, they are ranked based on the order returned from the ContactsProvider ( alphabetical by display name). The second contact is then pushed to the next position, bumping all corresponding pinned contacts down by one spot as necessary. 3) If there is a contact with a pinned position that is greater than the number of starred + frequent contacts (this can happen if user clears frequents, for example), then it is simply treated as an unpinned contacts. 4) All unpinned contacts flow to fill in the gaps between pinned contacts. The reflowing of contacts works as defined below: 1) Pinning a contact at a new spot replacing an unpinned contact simply pins it at that position. 2) Pinning a contact at a new spot where there was already an existing pinned contact bumps that replaced pinned contact down by one spot alongside all subsequent pinned contacts as necessary. I.e. contact A is pinned at position 2. Before: [A][1][P][P][4][P] After: [0][1][A][P][P][P] 3) If there is no more space at the end of the list to bump the pinned contacts one spot further, then the replaced pinned contacts will shift to the left to take the space of the original moved contact. I.e. contact A is pinned at position 3. Before: [A][1][P][P][P][P] After: [0][P][P][A][P][P] * We no longer perform dynamic updates of the in-memory list. Instead, when a contact is dropped at a new location, the new positions are sent to the ContactsProvider, which updates the database and notifies the adapter that there is a new cursor with updated data. The new list of ContactEntries is then reconstructed from this new cursor. Note that animation behavior with the newly introduced pinned contacts is pretty janky looking - Instead of flowing together with the rest of the unpinned contacts, pinned contacts should remain in position and not animate on a dataset change. Likewise for empty contacts. In order to support this, the animation logic will have to be rewritten to take into account not just soley where the dragged contact was dropped, but also the old and new position of each and every single contact in the list, before and after the database refresh. Change-Id: I5c9542a7fec529f5d965eebe76acbebe1fc10357
2013-08-05Code cleanup for call log related itemsYorke Lee
Change-Id: I2aa0458e1fb74abaea60a02f430a4e413dfed365
2013-07-16Initial commit of all new dialer activities, layouts and stylesYorke Lee
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
2013-07-03Remove CallLog New and Old sectioning.Christine Chen
Bug: <5751629> Change-Id: I1689fa10f285bc66fc69b6a9b9da139ce5461d83
2013-06-28Add SmartDial database for the Dialer app.Christine Chen
- Creates a database helper to create a smartdial database for the Dialer app. - Queries all rows in the Contact database and copies related columns to the smart dial database. - Create another prefix database to contain all prefixes of a contact. - During keypad input, the prefix databse is queried to find contact suggestions, and suggestions are ranked by the usage data and contact status (starred, primary contact, etc.) - Created unit test for the SmartDial database insertion and prefix computing functions. Change-Id: I4d7c3b3bcc52dd6efa4d6e69d3f1687c3abaeb69
2013-06-13Use new CallLog number presentation columnJay Shrauner
Switch to using new number presentation column in the CallLog table and discontinue using special phone number strings in CallerInfo. Needed for unbundling. Bug:6948882 Change-Id: Ibf27ea55cee783c4530101e4e228198e245e6684
2013-05-23Added SmartDialMap interfaceYorke Lee
All character validation, remap and index calculations in both SmartDialTrie and SmartDialNameMatcher now go through a SmartDialMap. The LatinSmartDialMap is used by default. Bug: 8769026 Change-Id: I4ff90acc380e802f035ca1fbc55c022bf3b76aa3
2013-05-01Apply NANP logic to numbers with a +1 country codeYorke Lee
Bug 8769688 Change-Id: I4aadd0f9e5495fb1b604910306dfd918d1540136
2013-04-30Fix Smart dialing OOM for extremely long contactsYorke Lee
Names with an extremely large number of name tokens were using exponentially increasing amounts of memory since we have to insert entries for all possible initial name combinations. Added a check in the trie insertion algorithm to only add initial matches for the 1st 2, and the last 2 name tokens. This change only affects search by initial matches for names exceeding 4 name tokens. Full token search for names of all lengths should still work. E.g. "frank", "enstein" would still match "Dr Frank En Stein DDS". However initial matching would be limited to the first 2 and last 2 tokens. So "dfsd" or "fsd" would work, but "fes" or "fed" would not. Also fixes a bug caused by integer overflow when calculating thresholds for bucketing frequently used contacts Bug 8737986 Change-Id: I804184368b78fe2fa407667ed83874d839c28115
2013-04-19Allow name matching for contacts with numbers in their nameYorke Lee
For SmartDialTrie, also include numbers as valid characters when calculating indexes when generating the byte array. For SmartDialNameMatcher, include '0'-'9' as valid latin characters, and handle them appropriately after remapping accented characters. Also fixed a subtle matching bug that would manifest itself when matching against multiple tokens with similar initials - E.g. "Dr.Dredd" Bug 8659001 Change-Id: If461d2760a723ef7fd03dda0c1a1515cd7b44cf6
2013-04-17Allow smart dialing to ignore country code/area codeYorke Lee
Add handling of country codes if the number starts with a '+' prefix Also add special case handling for NANP numbers in SmartDialTrie if we determine that the user is in North America. Save user's SIM country ISO into SharedPreferences. Add SmartDialNameMatcher methods to correctly match NANP numbers Fix tests to use assertTrue/assertFalse instead of assertEquals Bug 8292294 Change-Id: Ic61dac75ee3b772986d3008240bbda81322c8f31
2013-04-08Merge "Fix name matching bug with non space separators" into jb-mr2-devYorke Lee
2013-04-08Fix name matching bug with non space separatorsYorke Lee
Bug: 8435819 Change-Id: I69c32207d123e5da4ae5421a5fe83ffeee4e5070
2013-04-08Fix failing tests in PhoneCallDetailsHelpeTestsYorke Lee
Bug 8566339 Change-Id: I20f84454f09be6f954c98042395908ca63977f6f
2013-03-19Always show WAIT/PAUSE in dialer overflow menu.Santos Cordon
Used to hide menu items when not applicable. Now we show them always and only perform the action in those cases where menu items were previously visible. Updated code to do zero-position checks when there is no selection...previously missing check. Changed code to use chars instead of Strings when dealing with single digits. Consolidated duplicate code with updateDialString() function. bug: 7478840 Change-Id: I2aa5d3badd40079e9aa75abf7e4051f9dba5e667
2013-02-12Smart Dialling v2 with phone number supportYorke Lee
Behavior: Use a prefix tree to cache contacts instead of an array list Perform matches against phone numbers as well DialpadFragment now ignores results from stale tasks where queries no longer match Add ability to not use default phone number for phone number disambiguation dialog Contacts are now ranked by the order which they were sorted by in the ContactsProvider (affinity) Change remapAccentedChars to always return lowercase characters to avoid overhead of uppercase character conversion Resource/Layout changes: Tweak margins so that the section containing smart dial suggestions looks cleaner Use color resource instead of hardcoding color values Add phone number to SmartDial items ContentObserver: Add a contentobserver to be notified on changes in contacts Refactored cache to allow for forced cache refreshes Use a single instance of SmartDialCache Tests: Added SmartDialTrie tests Comments: Comment cleanup Change-Id: Ica2854e2845d4d75048aa1fd982f139496d21bf3
2013-02-04Enable initial matching for Smart DiallingYorke Lee
Allow the name matcher function used by smart dialling to perform initial matches of the variety 57 - (J)ohn (S)mith Refactor SmartDialNameMatcher testing method to allow checking multiple match positions. Add tests for initial matches Change-Id: Iadc5e3e8b2f408136c704015d2297e9b520e1065
2012-12-03Merge "Move misplaced SmartDialNameMatcherTest"Yorke Lee
2012-11-30Move misplaced SmartDialNameMatcherTestYorke Lee
Change-Id: I2cf4ff36eb3198af45a6b4e16a3321d68849c9b4
2012-11-30Cherrypick Arabic/Farsi pasting into dialpad fixYorke Lee
Bug: 6656969 Change-Id: I0bb094125eb9be2b6508e6ca658ae23da9da19d1
2012-11-09Use a custom character map instead of name normalizerYorke Lee
Instead of normalizing names during caching, add a function that that maps accented characters to their alphabetic equivalents using switch statements. This character map is used in the on-the-fly matching algorithm. This speeds up the caching process(11k contacts) from 800-1500ms to about 600-1000ms since we no longer perform the normalizing step during caching. Bug: 6977981 Change-Id: I98dfc3cba00258bb7ff03b346eab7ca7dc1065be
2012-11-07Add smart dialling capabilities to dialerYorke Lee
Layout changes to dialpad fragment to make space for smart dial suggestions. This feature does not appear in landscape mode. SmartDialTextView automatically resizes text to fit within the bounds of the view. SmartDialAdapter highlights certain portions of the matching name based on match positions provided by SmartDialNameMatcher. SmartDialLoaderTask is an AsyncTask that caches all contacts with a phone number into memory, or matches all contact names against a provided query to return a list of matches (maximum of 3). SmartDialNameMatcher contains utility functions to remove accents from accented characters and normalize a phone number. It also contains the matching logic that determines if a contact's display name matches a numeric query. Added some tests for SmartDialNameMatcher Bug: 6977981 Change-Id: I43e1a70d8d0d46e02fc67fe1caaec9a1769124f5
2012-10-31Moving PhoneNumberInteraction from Contacts.Chiao Cheng
Bug: 6993891 Change-Id: Id4701c00455de609850a5afea74e68c6bd84cbb3
2012-10-15Changing com.android.contacts.R to com.android.dialer.R.Chiao Cheng
Bug: 6993891 Change-Id: I921ec71fffbd4d4a058bab29ded8a6ac62adfb70
2012-08-30Moving more classes from contacts into dialer.Chiao Cheng
- These classes are only used by dialer code. - Fixed import order. Bug: 6993891 Change-Id: I7941a029989c4793b766fdc77a4666f9f99b750a
2012-08-21Initial move of dialer features from contacts app.Chiao Cheng
Bug: 6993891 Change-Id: I758ce359ca7e87a1d184303822979318be171921