summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
AgeCommit message (Collapse)Author
2018-01-22Changed PhoneLookup#lookup to accept a DialerPhoneNumber.zachh
There's a problem with the existing implementation of RealtimeRowProcessor; when CP2 information is not present, data from other sources can potentially be erased. This CL fixes the problem by fetching the latest data from all sources, instead of just CP2. This requires being able to fetch PhoneLookup info without a Call, using only a number, so I changed PhoneLookup#lookup to accept a DialerPhoneNumber rather than a Call. (The reason that it accepted a Call was to support CNAP so we'll need a revised solution for that later.) There is a potential concern with performance in RealtimeRowProcessor due to performing a full [Composite]PhoneLookup vs. a CP2 lookup, because the full lookup includes network requests. However, it's anticipated that the real time lookups will very rarely have changes to apply so this might be OK as-is. If not, a mitigation strategy could be improving the performance of CompositePhoneLookup#lookup by short-circutiing slower sources when faster, higher priority sources have already completed. A follow-up CL will write the result of RealtimeRowProcessor queries to PhoneLookupHistory to further reduce how frequently real time updates need to be applied. Bug: 72229553 Test: existing unit PiperOrigin-RevId: 182839130 Change-Id: I8cb26827b4f4dc4702fb416234c8938179cd5ac5
2018-01-17Show existing CP2 information for invalid numbers even if out of date.zachh
This is an optimization to reduce popping in the new call log. Currently when Cp2LocalPhoneLookup determines a number to be "incomplete" (because it is an invalid number and there are too many invalid numbers in the call log to efficiently bulk update) we clear the existing data, which has been populated in PhoneLookupHistory (for example, from InCallUi). This means that we will show the number initially when displaying the call log, and then when the query completes we will "pop in" the new information. This change makes it so that we don't clear the existing data from PhoneLookupHistory, and just add the "incomplete" bit. The result of this is that we immediately display the available information when initially displaying the call log (even though it may be out of date). When the query completes, the row will be updated with the most recent information; in most cases this is likely to be the same as the information used to initially display the row, and no update will need to be applied. Additoinal changes to support this functionality: -RealtimeRowProcessor is now just responsible for returning an updated row, and NewCallLogView holder will compare the result to the originally displayed row and only update the UI if there are differences. -NewCallLogFragment now calls clears the RealtimeRowProcessor's cache and notifies data set changed during onResume. This is to account for the fact that AnnotatedCallLog no longer contains the complete set of information necessary to show the call log; there may be changes we need to show which can't be detected by the cursor loader. We now show those potential changes in onResume. Additional notes: -If there is real-time data that changes after onResume it won't be detected but there shouldn't be such cases; changes made to contact information from dialer are always done through contact cards which pause the fragment. -This change has the effect that whatever information was written to PhoneLookupHistory during the previous invocation of InCallUi will always be (initially) shown. For example, if the contact name for number "123" is "Joe" when the call comes in, we'll write "Joe" to PhoneLookupHistory. If the user changes Joe's name to "Jane", the UI will pop from "Joe" to "Jane" until PhoneLookupHistory is updated (which is currently only done from InCallUi). If this turns out to be a problem it could be mitigated by writing updated results to PhoneLookupHistory from the UI. Test: unit, manual PiperOrigin-RevId: 182277145 Change-Id: I3d9916b7747390ff956f399fe84b26d578e5a07f
2018-01-12Fixed recycling issues in new call log.zachh
-Reset the text appearance when recycling -Clear the secondary call types when recycling Test: unit PiperOrigin-RevId: 181824011 Change-Id: I92cf2c570754e60f3559ad6b47157b3538c6e2cc
2018-01-12Clear the cache in RealtimeRowProcessor when there's new data.zachh
Otherwise changes to "incomplete" rows won't take effect until a new adapter is created. Test: unit and manual PiperOrigin-RevId: 181823087 Change-Id: I24e1b1b465c8d37cf794312b88b6cdd3ad394b5d
2018-01-11Merge PhoneLookupDataSource results into a proto in annotated call log.twyen
This allow extra information from PhoneLookup to be more easily added. Only PhoneLookupSelector and the proto will be affected for new attributes. Test: Unit tests. PiperOrigin-RevId: 181675568 Change-Id: I4e0bc1c6005b58a9b684b030b55bea6223af9ce3
2018-01-11Minor polish and bugfixes for new call log.zachh
-Reuse the adapter in NewCallLogFragment to maintain position in call log when returning from call details -Convert empty values to null when invoking ContactPhotoManager to make photos appear correctly in new call log bottom sheets -Added CallLogContactTypes to be shared between proper call log and bottom sheets -Fixed vertical alignment in bottom sheet when there was no secondary text -Added some verbose logging Test: unit and manual PiperOrigin-RevId: 181655715 Change-Id: I9c1a42ad8d529ee2327e15fcc1d32b7b83982014
2018-01-09Added RealtimeRowProcessor.zachh
This is for performing work inside of the call log's RecyclerView, when the view holder is bound. Most of the time, this should be a no-op but there are possible edge cases where the call log data cannot be updated efficiently through the standard batch mechanism. One example of this is when there are too many invalid numbers in the call log; the CP2 information for invalid numbers cannot be efficiently batch updated so we fetch this information at display time. (Note that we do handle up to 5 invalid numbers in the batch update mechanism, but if there are more than that we fallback to this realtime processing.) Test: unit, manual PiperOrigin-RevId: 181400016 Change-Id: Iea6b380742e757b48d19f319fe46dc5fae837604
2018-01-02Add assisted dialing to the new call log.erfanian
Bug: 70506228 Test: new unit tests PiperOrigin-RevId: 180610636 Change-Id: I7f498df1a529737bf8473584836bdc3e04a5043c
2017-12-08In the coalesced call log, replace column NUMBER_CALLS with a new column ↵linyuh
COALESCED_IDS. For a row in the coalesced call log, COALESCED_IDS contains IDs of the corresponding rows in the annotated call log. These IDs will be used to (1) launch CallDetailsActivity or (2) delete the row in the call log UI. Bug: 70218437 Test: CoalescerTest, CoalescedAnnotatedCallLogCursorLoaderTest PiperOrigin-RevId: 178392968 Change-Id: I2d6cd46bec4d47a9e18941b7a019f39403fa76f5
2017-11-11Hook up pre-call actionstwyen
This CL replaces all instance of CallIntentBuilder.build() with PreCall.getIntent(), which when run as an activity, will finish building the intent with user interaction. Bug: 64216442 Test: manual PiperOrigin-RevId: 174924323 Change-Id: If41868df4c7ed078d03bd3431fa85b8947056a01
2017-11-03Show HD icon in call logs.wangqi
This change removes restriction of showing HD icon only for some Motorola devices. After this change, any devices writing android.provider.CallLog.Calls.FEATURES_HD_CALL into call logs' feature will be able to show HD icon. To be able to write HD features into call logs, both CarrierConfigManager#KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL and CarrierConfigManager#KEY_IDENTIFY_HIGH_DEFINITION_CALLS_IN_CALL_LOG_BOOL must be enabled. It's part of upstream change to enable HD icon in call logs: https://android-review.googlesource.com/#/q/topic:hd_icon_call_log Bug: 68108125 Test: none PiperOrigin-RevId: 174091763 Change-Id: I17c62153ebbc866c91acdaa7a7fcbd124594772b
2017-10-11Added basic bottom sheet to new call log.Zachary Heidepriem
Also added ability to click on row to call. Required plumbing through the original phone number and phone account info through AnnotatedCallLog and CoalescedAnnotatedCallLog, so that clicking to dial doesn't require an additional lookup. Required some refactoring: -created autovalue for CoalescedRow. -created autovalue for ContactPrimaryActionInfo and use it in ContactActionBottomSheet -moved logic for building primary and secondary text into CallLogUtils so it can be shared between call log list and bottom sheets -moved clipboard logic to own package for copying numbers Bug: 34672501 Test: unit PiperOrigin-RevId: 171760252 Change-Id: I645d89974460b611c1d9668c3ca3e50a716c7f8f
2017-10-04Only show the most recent call type icon in the new call log, instead of the ↵zachh
last 3. This is according to the latest PRD: https://docs.google.com/document/d/1FLoQ6kNYL-QKplbniJAIUCHku87S9eYuYPs6IXe-U78 Also cleaned up warnings in CallLogQueryHandler. Screenshot: https://screenshot.googleplex.com/Z7p4BRVpLpE Bug: 34672501 Test: unit PiperOrigin-RevId: 170941445 Change-Id: Ibf79b70eda3837ea46d365729aaed0a87961e42b
2017-08-31Update Dialer source to latest internal Google revision.Eric Erfanian
Previously, Android's Dialer app was developed in an internal Google source control system and only exported to public during AOSP drops. The Dialer team is now switching to a public development model similar to the telephony team. This CL represents all internal Google changes that were committed to Dialer between the public O release and today's tip of tree on internal master. This CL squashes those changes into a single commit. In subsequent changes, changes will be exported on a per-commit basis. Test: make, flash install, run Merged-In: I45270eaa8ce732d71a1bd84b08c7fa0e99af3160 Change-Id: I529aaeb88535b9533c0ae4ef4e6c1222d4e0f1c8 PiperOrigin-RevId: 167068436