summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-12-05Add Text-to-Speech annotations for phone number displays (3/3)Ihab Awad
Bug: 17321294 Change-Id: Icc712da80e25e5a5294986ece055fcffaa558f1e
2014-12-05Updating "Add Contact" to pre-populate full contact info.Tyler Gunn
1. For recent call entries with a name and phone number, the name will now also be added. 2. For recent call entries which have complete address information provided by nearby places, all information except the contact photo will be added. The contact photo is excluded, as the ContactsLoader would attempt to load the contact photo while parsing the contact information. On a slow connection this could cause a noticeable pause while adding the contact. Bug: 17308163 Change-Id: If2e78bd1257096b344ff2dd266dcdbaeed4f1471
2014-12-05Merge "Bypass Dialpad code and allow InCallUI check voicemail number for ↵Nancy Chen
MSIM." into lmp-mr1-dev
2014-12-04Bypass Dialpad code and allow InCallUI check voicemail number for MSIM.Nancy Chen
Since user needs to select a subscription before Dialer can check whether a voicemail number is set up for a certain subscription, go directly to calling voicemail when the user dials '1' on a MSIM phone where 'Ask first' is set. Bug:18233678 Change-Id: I10dd56c14bfb98e4f8410e2de400da44e328682f
2014-12-03Merge "Pass string key when updating ringtone." into lmp-mr1-devAndrew Lee
2014-12-03NPE fix.Anthony Lee
Make sure that we check the validity of the label before we call a method on it. Also removed import of unused package. Bug: 18572439 Change-Id: I4b9ae0b4ace4129fe92dcbd9abecc12620d45a86
2014-12-02Merge "On MSIM devices, include account from call log in talkback." into ↵Nancy Chen
lmp-mr1-dev
2014-12-01On MSIM devices, include account from call log in talkback.Nancy Chen
In TalkBack mode, when a user taps on a call log entry, it should read back the name of the SIM/account used for the call. The string used is "on <phoneAccount>". Also add back periods removed in the string updates because they are needed for verbal stopping points in TalkBack mode. Bug:18517912 Change-Id: Iaadbd859ef980ca030f9fb60d3395ca057e8cefc
2014-12-01Merge "Telecom API updates (2/6)" into lmp-mr1-devIhab Awad
2014-11-28Telecom API updates (2/6)Ihab Awad
Bug: 18292176 Change-Id: I3d5229a44bff032178bf2eb9fde633a10db8c7d8
2014-11-25Fix NPE in markDropAreaJay Shrauner
Check for mDraggedEntry == null Bug:18524967 Change-Id: I323cf41ddd21444d4fd675543b822c29517e8b26
2014-11-24Pass string key when updating ringtone.Andrew Lee
Instead of passing in the preference. Bug: 18232725 Change-Id: Ic0eec7cd62f1d9106da4de6d9aa29aeeead9cc0e
2014-11-21Merge "Correcting population of search box with voice search results." into ↵Tyler Gunn
lmp-mr1-dev
2014-11-20Use REDIAL instead of CALL BACK for outgoing callsYorke Lee
Bug: 17325604 Change-Id: Ida625d884088575760e394b2b58a4fc5b7126033
2014-11-20Correcting population of search box with voice search results.Tyler Gunn
The issue is the onActivityResult callback which receives the result of the voice search is called BEFORE the dialtacts activity is resumed, and hence the search results fragment is not properly shown (since resume has not yet completed). Changed so that the search results are stored until onResume, where they are applied to the search box. Bug: 18410823 Change-Id: I02985f722643846067678a67f2c1fda76434fbc4
2014-11-17Merge commit '59edcfbc' into manualmergeYorke Lee
Change-Id: I0d26d0510edf5ea49d77d8c3c7ecd657b5989d52
2014-11-17am 4e97e09f: Switch from CALL -> CALL_PRIVILEGEDYorke Lee
* commit '4e97e09f0ae58f6065252022fe5cf5f7d90aef01': Switch from CALL -> CALL_PRIVILEGED
2014-11-17Switch from CALL -> CALL_PRIVILEGEDYorke Lee
Bug: 18332160 Change-Id: I5b9bcc8f413e5534bab94e0b2677371968a8e483
2014-11-14Move ToneGenerator recreation/release to onStart/onStopYorke Lee
There is no reason to do the costly ToneGenerator initialization inside onResume, which gets called during the Dialer -> InCallUI transition. Move it to onStart/onStop so it only happens when Dialer is actually in the background. Measurement of time taken for InCallActivity start -> onResumed, 10 runs Before: Average 541.9ms SD: 152.4ms After: Average 350.5ms SD: 81.1ms Bug: 18373617 Change-Id: I192e2bcc9fd4b7d423d804f333d8d32bff3f58c1
2014-11-12Merge "Use the highlight color instead of the tint color" into lmp-mr1-devNancy Chen
2014-11-12Merge "Lookup badge member variables correctly during bindBadge" into ↵Yorke Lee
lmp-mr1-dev
2014-11-12Use the highlight color instead of the tint colorNancy Chen
The tint color of a phone account only refers to the color of the icon, the highlight color is the general display color used for text, backgrounds etc. We should use highlight color in Dialer Bug: 18192071 Change-Id: Ia7e1c6cf055357df98b2b2f481b32a727d1f6d61
2014-11-11Remove summary/secondary text from settings.Nancy Chen
Per settings design guildelines, we should not be using the second line to describe the contents of a setting with subscreen navigation (this second line is now used for just status). Remove these second lines from the dialer settings UI. Bug: 17446974 Change-Id: Idbeace64c088805a19a77b1438dd66a618387848
2014-11-11Merge "Fix IOOB exception in ViewDragHelper" into lmp-mr1-devYorke Lee
2014-11-11Fix IOOB exception in ViewDragHelperYorke Lee
If findPointerIndex returns -1, ignore the motion event. The equivalent fix is done for other handlers of motion events as well. Bug: 18186775 Change-Id: Ia7548335eeb84310510260381a8bcedf6556aa40
2014-11-10Lookup badge member variables correctly during bindBadgeYorke Lee
If a new call log view is provided, make sure to correctly find and stash the correct member variables inside bindBadge. Bug: 18016618 Change-Id: If01a68fc6c468905ab576b1c5927afa308238786
2014-11-10Update PhoneAccount icon API (3/6)Ihab Awad
Bug: 18291787 Change-Id: Id53193a2597ac6a7827a484279e130d8bfb78b77
2014-11-08Allow ILD information to be populatedEvan Charlton
Expose the dialpad's ILD (international / long distance) fields to be populated by the dialer. Bug: 13334252 Change-Id: Ia366148ef1318a2dacc4971d51a3bd34ec3c39de
2014-11-06Merge "Fix for "Clear call log" menu item showing up incorrectly." into ↵Yorke Lee
lmp-mr1-dev
2014-11-06Merge "Improve Dialer analytics" into lmp-mr1-devYorke Lee
2014-11-06Merge "Reset mSavedState in onNewIntent because the activity is refreshing." ↵Nancy Chen
into lmp-mr1-dev
2014-11-06Fix for "Clear call log" menu item showing up incorrectly.Yorke Lee
The fragment member variables were being lost on rotation because the FragmentManager does not call getItem on rotation. Fix the way we save the fragments into member variables to ensure that those references are always up to date so that mAllCallsFragment is not null after rotation. Bug: 17478780 Change-Id: I5a0c070273f2d86864afd96c6bb6551bcd0d1aa4
2014-11-05Improve Dialer analyticsYorke Lee
* Send screen view for first fragment loaded inside ListsFragment * Send screen view for voicemail playback fragment * Send screen view for currently active fragment when activity is restarted * Don't send spurious screen views on rotation * Send screen views for call log fragments in call log activity, and differentiate between them with a tag Bug: 18158037 Change-Id: I09fda53db33f6a6acc4a3b477de992aa94921c71
2014-11-05Reset mSavedState in onNewIntent because the activity is refreshing.Nancy Chen
Currently mSavedState is reset to false in just onResume, but it needs to be reset earlier so that the dialpad is allowed to show itself when an ACTION_DIAL intent is sent. Bug: 18242314 Change-Id: I9ddd2a431edc4c2d1cc447b14ee8d1347d139552
2014-11-05Merge "Protect against ActivityNotFoundException" into lmp-mr1-devYorke Lee
2014-11-04Protect against ActivityNotFoundExceptionYorke Lee
Bug: 18247185 Change-Id: I744355ea712f713d5510fa26f141ee2cce7491ff
2014-11-03Refactoring: modifying SelectPhoneAccountDialogFragment constructor.Nancy Chen
The SelectPhoneAccountDialog fragment now supports optional/changeable title and checkbox fields, but to simplify that case, add a method that will initialize the dialog to default values. Bug: 18204058 Change-Id: Icd3b880378ff9a7d8ee75e01ec85ed40b29a59ab
2014-11-04Merge "Adn queries for multi-SIM. (1/3)" into lmp-mr1-devNancy Chen
2014-11-03Adn queries for multi-SIM. (1/3)Nancy Chen
Bring up a dialog if no default subscription account is set by the user when handling ADN queries. Bug: 17917937 Change-Id: Icd6a6dc2843463ba68d281a24e00fdba1880adf4
2014-10-31Add an additional line to Call Log for PhoneAccount nameNancy Chen
Add a line under call log to display PhoneAccount label in the color of the account/SIM. Bug: 17971273 Change-Id: I16c37ae8828245f928bc3867a498a29e73b5925c
2014-10-31Merge "Enable MMI for multi-SIM (3/3)" into lmp-mr1-devNancy Chen
2014-10-31Merge "Use improved analytics in Dialer" into lmp-mr1-devBrian Attwell
2014-10-30Enable MMI for multi-SIM (3/3)Nancy Chen
+ Add Telecomm and Telephony methods for handlePinMMIForSubscriber + Add Select Account dialog in Dialer for MMI Bug: 17917937 Change-Id: Iaabd0c5705cdf0d325aa7514d04935747078b28c
2014-10-30Use improved analytics in DialerBrian Attwell
Remove dependencies on old analytics code. Initialize analytics inside DialerApplication. Improving analytics CL #4/4 Bug: 18039620 Change-Id: I52f68e50297db2aae61d67d9bdbe66cb1d75aafc
2014-10-29Merge "Refactor ActionBarController and tests" into lmp-mr1-devYorke Lee
2014-10-29Merge "Remove "Dial to add call" text in Dialpad" into lmp-mr1-devYorke Lee
2014-10-28Refactor ActionBarController and testsYorke Lee
The original CL to fix ActionBarControllerTest by using an ActivityInstrumentationTestCase was too heavyweight and caused flaky test. It was also indicative of a flaw in the original design that ActionBar couldn't be mocked out easily. Refactor the code so that: 1) getActionBar() is no longer needed 2) Respect the invariant that all access to the actionBar goes through the ActionBarController (see the changes in ListsFragment) so that any change to the ActionBar's hide offset can be tracked appropriately. Bug: 17487016 Change-Id: I935b683ddb301ca5d3952889af1381bdbdcc97d3
2014-10-28Merge "Fix various IllegalStateExceptions in Dialer" into lmp-mr1-devYorke Lee
2014-10-28Remove "Dial to add call" text in DialpadYorke Lee
Also remove some unnecessary strings Bug: 17647791 Change-Id: I0e5797b3aad35dd37607fde944c1329fbeffbe88
2014-10-28Fix various IllegalStateExceptions in DialerYorke Lee
Make sure to not commit any fragment transactions when onSaveInstanceState has been called. Bug: 18038718 Bug: 18142294 Bug: 18106980 Change-Id: I0755208ee6637431cb3e494b5494b1ccdd930489
2014-10-27Create call settings intent in DialerSettingsActivity.Andrew Lee
- Remove helper method in DialtactsActivity. + Create intent in DialerSettingsActivity. This is the only place the method is called; it seems that this code to create the intent should live in DialerSettingsActivity instead of DialtactsActivity. Bug: 18114923 Change-Id: I129b716c2a247994647c123f1cbd945b7ef36778
2014-10-27Merge "Fix some broken Dialer tests" into lmp-mr1-devYorke Lee
2014-10-27Merge "Send desired size of photo to ContactPhotoManager" into lmp-mr1-devYorke Lee
2014-10-25Fix some broken Dialer testsYorke Lee
Bug: 17487016 Change-Id: I4c13c3e826a4eb1de84708dfa27ad093b2134087
2014-10-25Send desired size of photo to ContactPhotoManagerYorke Lee
This allows it to correctly determine if the photo should be treated as a thumbnail (and thus cropped into a circle), and also saves on RAM since the full sized bitmap doesn't need to be decoded. Bug: 17327890 Change-Id: Ia92cfd9005ea2060608284e3c1f6a539bdd6da72
2014-10-25Merge "Remove CallLogListItemView" into lmp-mr1-devYorke Lee
2014-10-24Remove CallLogListItemViewYorke Lee
CallLogListItemView is a custom view that might have done something once, but doesn't anymore. It makes the code more complicated to read and requires a lot of casting that does nothing at all. Change-Id: I53efb35367d748aa3d164d0fb56686175967c90e
2014-10-24Show phone account settings for multiple sims.Andrew Lee
Bug: 18114923 Change-Id: I93559004bb4fe31b24685155a57424e24770c115
2014-10-24Fix NPE in processNestedScrollJay Shrauner
Null check mCapturedView. Bug:18114408 Change-Id: I5abb9f5bcca37aafab55f12c69d824ab92faf68f
2014-10-23Delete duplicated classBrian Attwell
Also renamed dialerbind package Analytics CL #2/5 Bug: 18039620 Change-Id: I45722015978038cdccb6a848c28e4b6c90d5aa4f
2014-10-22am 8c258ac5: Generalize the device IMEI display for IMEI/MEID and multi-SIM.Nancy Chen
* commit '8c258ac5eee9d1e0c3f8a4d895dda84a2c9ac71a': Generalize the device IMEI display for IMEI/MEID and multi-SIM.
2014-10-22Generalize the device IMEI display for IMEI/MEID and multi-SIM.Nancy Chen
The user can initiate a call to display the IMEI device ID from the dialpad. Since the code is almost identical for the IMEI/MEID cases, factor out into one method. Also in the case where there is more than one IMEI device ID (i.e. multi-SIM with multiple SIMs inserted), display a list of IDs in order of slot number. Bug: 17917937 Change-Id: Id465a5498787a0fe72d8317412c6eb7a2ec61d28
2014-10-17am f663fa08: Make a general call to voicemail when calling back from call log.Nancy Chen
* commit 'f663fa083983a9b417f642e246d0873e0c424bb9': Make a general call to voicemail when calling back from call log.
2014-10-17am f507886d: Merge "Enable use of phone accounts for voicemail info ↵Nancy Chen
display." into lmp-sprout-dev * commit 'f507886d96f74bd7e54c8f430f5c4e5b23a73b79': Enable use of phone accounts for voicemail info display.
2014-10-17Make a general call to voicemail when calling back from call log.Nancy Chen
A voicemail call log entry is saved with the number of the voicemail that was called. In the multi-sim case, however, we don't want to call back to the voicemail number of the original call because it might be the number of a different phone account. Bug: 17925501 Change-Id: I528c4039cc227608e040ae71b6b10488376fb357
2014-10-17Merge "Enable use of phone accounts for voicemail info display." into ↵Nancy Chen
lmp-sprout-dev
2014-10-15Enable use of phone accounts for voicemail info display.Nancy Chen
Call the "isVoicemailNumber(subId, number)" method instead of the one with just the number. This is because we need to check whether a number is the voicemail number for a specific phone account, otherwise the UI would never correctly display "voicemail" for the non-default SIM. Bug:17925501 Change-Id: If1d6cb1acfcb570aca5e639858af8804bac202c0
2014-10-15Merge "Remove dead code" into lmp-mr1-devYorke Lee
2014-10-14Remove dead codeYorke Lee
The TileInteractionTeaserView is no longer displayed in the UI. Change-Id: Ieaf24cdf2ecd5971a22e58e34c49a4481b7d6320
2014-10-14Handle searchbox long press to speed up copy/paste.Andrew Lee
Before, user needed to first tap on the the collapsed search box to expand it. Afterwards, needed to long-press to open the paste option. Now, if the user long-presses on the collapsed search box, it simulates a click on the search box (causing it to expand), and then invokes a long-press to open the paste option. Bug: 17882004 Change-Id: Ie23df56fe1c340aacf484bc482fa8abb06a3574c
2014-10-09Remove accessibility delegate on shortcut card.Andrew Lee
An accessbility delegate is set in the Call Log Adaptor to automatically expand the call log list item when tapped in accessibility mode. We don't want this for the shortcut card, because it shouldn't be expandable. When not doing this expansion, the shortcut card now obtains accessibility focus and reading properly. Change the description text for the shortcut card so it reads "call back #/name". Should update this later with a string to include the other information, but it's not straightforward to do right now. Bug: 17929331 Change-Id: I691fe238ea436916ab7505c39039b6c1cea27781
2014-10-06Merge "Fix IllegalStateException in Dialer" into lmp-devYorke Lee
2014-10-06Fix IllegalStateException in DialerYorke Lee
Bug: 17811695 Change-Id: I5dafca3177855940f51ba414b267f59bd13be467
2014-10-03Merge "Fix NPE in onListFragmentScrollStateChange" into lmp-devYorke Lee
2014-10-03Fix NPE in onListFragmentScrollStateChangeYorke Lee
Ensure that view passed into DialerUtils.hideInputMethod is never null (since mParentLayout refers to the main content view, it should never be null) Also rename parentLayout to mParentLayout Bug: 17797827 Change-Id: I2ac9864138776fcdaea5b7d2df52a82d31911039
2014-10-03Merge "Fix RTL issues in Dialer." into lmp-devAndrew Lee
2014-10-02Fix RTL issues in Dialer.Andrew Lee
+ Force LTR if textviews show numbers. + Change history header with to match_parent so it aligns tor the right properly. Before, it was on the left, even in RTL languages. Bug: 17776561 Change-Id: I53907496fe4e7a12f8962d4bc7295ed7a294c6e5
2014-10-02Merge "Work around scroller bugs" into lmp-devBrian Attwell
2014-10-02Merge "Fix HTTP request to a report bad caller ID entry in the call log ↵Anthony Lee
(1/2)" into lmp-dev
2014-10-01Fix HTTP request to a report bad caller ID entry in the call log (1/2)Anthony Lee
A few things needed to change to fix this bug. 1. Add object ID to ContactInfo and make sure that it is persisted 2. Adding a new row means migration from older versions of DBs 3. Fix logic that determines if we can report a given call log entry since the strategy of using isExternal() is not valid. UI impact. 4. Fix the HTTP request that is generated to include a valid object ID intead of using the source ID. Bug: 17692726 Change-Id: If541fea963837118b7466b6c59f453103cdbdc4a
2014-10-01Work around scroller bugsBrian Attwell
Work around b/17700698 and b/17704016 in order to improve the performance of nested scrolling. When either of these bugs are fixed, we can revert most of this CL. Bug: 16462679 Change-Id: I07755d2aa4c080d2f906fe2b8dd2d7a00636eb42
2014-10-01Merge "Don't forget header momentum upon scroll events" into lmp-devBrian Attwell
2014-09-27Fix another bug with RTL tabsYorke Lee
super.instantiateItem should continue being called with the original unadjusted position (since getItem already adjusts it for RTL). Instead, override getItemId to return the RTL adjusted position, so that if a fragment is being retrieved from the FragmentManager instead of being created by getItem, the overriden getItemId will ensure that FragmentPagerAdapter will construct the correct tag to retrieve the correct fragment from the FragmentManager. Bug: 17673059 Change-Id: I42a7ce3f0d8a17384fdb16c998e49254d3a734db
2014-09-26Don't forget header momentum upon scroll eventsBrian Attwell
Fixes another easy problem with Dialer's nested scrolling. Sometimes onStopNestedScroll causes the momentum in a header fling not to transfer to the ListView. Bug: 16462679 Change-Id: I9ac8af11dc4799c5a5acd68de89e988fdc479113
2014-09-26Fix crash when switching between LTR/RTLYorke Lee
When the language is changed the order of tabs might change but the fragments stored in the fragment manager remains the same (becauase the fragment manager persists fragments across rotation and configuration changes). Retrieve the fragments from the fragment manager in an RTL adjusted fashion in instantiateItem, and also make the logic more resilient to ClassCastExceptions. Bug: 17673059 Change-Id: I1f9b7d85b6a4ecf3ff155c9e6e8cf875ddd51463
2014-09-25Update padding base settings for dialerNancy Chen
2. Adjusted the padding around the base call settings preference page to match the settings on the sub preferences Bug: 17529308 Change-Id: Iba1c6cfb4057cf56e8250abea25602aa2ce4eac8
2014-09-24Remove the "Last Week" heading for call history.Nancy Chen
The phrasing "Last Week" was confusing phrasing, because it included anything from 2-7 days from today. Removing for now. Bug: 17632092 Change-Id: I05ff691c8cc3b20d3d61fae8d7ee0c5c134f4838
2014-09-23Merge "Drag and drop for PhoneFavoriteTileView but not when dialpad is open" ↵Nancy Chen
into lmp-dev
2014-09-23Drag and drop for PhoneFavoriteTileView but not when dialpad is openNancy Chen
Drag actions were disabled for PhoneFavoriteTileView when fixing a bug that caused dragging when the dialpad was up. This CL restores the original functionality while fixing the dialpad bug. Bug: 17626737 Change-Id: I3a352088ff44c81230677d771479e367c9fe7856
2014-09-23Merge "Improve scrolling, handle onNestedPreFling" into lmp-devBrian Attwell
2014-09-23Improve scrolling, handle onNestedPreFlingBrian Attwell
This contains three main changes. 1 Carry momentum from flings in the header into the ListView. 2 The header now snaps into a semi collapsed state more often then it used to 3 The current scrolling direction is now a larger factor in deciding where the header position will snap to upon finishing a scroll I coupled ViewDragHelper a bit closer to OverlappingPaneLayout. At first I tried to avoid this. But I think this was a wasted effort. ViewDragHelper is specifically forked for OverlappingPaneLayout. Some behaviors I made sure to test manually: 1 When expanding/collapsing the header the direction of motion should determine where the header snaps to upon release. 2 Collapsing from fully open to intermediate (not previously possible) 3 Drag tabs up/down regardless of whether at top of ListView or not (unchanged) 4 Dragging and releasing the tabs should cause the same sort of snapping behavior as scrolling and releasing the nested ListView (this still isn't exactly the same. I don't think this is important enough to dig into more) 5 After fully expanding the header by grabbing on the tabs, you can collapse the header normally via nested scrolling. 6 Scroll down the ListView. Then expand the header by dragging the tabs. Now scroll up and down in the ListView a bit. 7 Quickly fling up, down, up, down, up, down, up, down, up, down. Should feel the same as scrolling a regular ListView. 8 Fling upwards, stop the fling prematurly then release. The header shouldn't do anything (fixing this was a matter of adding a scroll slop). Bug: 16462679 Change-Id: I272a838885ce9045d41aaef1168b0ee0a32ee31d
2014-09-23Merge "Hide the FAB if the dialpad chooser is shown." into lmp-devAndrew Lee
2014-09-23Merge "Add null check when auto-scrolling listView" into lmp-devYorke Lee
2014-09-22Add null check when auto-scrolling listViewYorke Lee
Bug: 17609944 Change-Id: Icb14a0539ee3e57ddfc8e237e440b4563fccabf5
2014-09-22Hide the FAB if the dialpad chooser is shown.Andrew Lee
This bug was happening because in onHiddenChanged, the dialpad button was being made to be shown. Now, only reveal the fab at that point if the dialpad chooser is not visible. There is some slight quirk... I would have thought that checking !mDialpadChooser.isShown() should have been sufficient, but it returns false at that point. The isDialpadChooserVisible check works fine. Bug: 17609779 Change-Id: I11eb3dc81a2849874202a3ea06e40c097b50ac9a
2014-09-22Fix for janky dialpad ripplesYorke Lee
Bug: 17611750 Change-Id: Ica20f1bd060e30280f3f4540ac03db99ec817308
2014-09-17Merge "Fix activity leak in Dialer" into lmp-devYorke Lee
2014-09-17Fix activity leak in DialerYorke Lee
Make sure to close the contact lookup thread when ListsFragment is destroyed, just like in CallLogFragment. The thread was holding a reference to the outer adapter because it was a non-static inner class, which was causing the adapter and activity to leak. Bug: 17472228 Change-Id: Ic2d6fbded0c8c40cf99d779fe24a535d75bc802a
2014-09-17Merge "Don't double scroll listview in Dialer" into lmp-devBrian Attwell
2014-09-16Don't double scroll listview in DialerBrian Attwell
Instead of consuming the ListView's scroll in onPreNestedScroll, we were consuming -scroll. This had the affect of making the ListView move at double its natural speed. Bug: 16462679 Change-Id: I553f9a7b02a403c93657b0770f77b7a12bf31a40