summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog
AgeCommit message (Collapse)Author
2018-04-26Show Cequint info in the new call log.linyuh
Bug: 70989584 Test: PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 194494486 Change-Id: I706802c000da953f962786bd07ca5da2fd59dc8a
2018-04-24Don't allow reporting a inaccurate number for a voicemail call.linyuh
Bug: 78291768 Test: ModulesTest PiperOrigin-RevId: 194114862 Change-Id: Iee367be53ffff5226a818ebb4af69ddd55054812
2018-04-19Use PreCall.start instead of context.startActivity when starting calls from ↵zachh
call log. For some reason not understood, startActivity with the call intent causes the current activity (MainActivity) to be paused, resumed, and paused again. This results in an opportunity to double-tap the row which causes the InCallUi to open in bubble mode (this is also not well understood). In any event, PreCall.start eventually uses TelecomManager to place the call rather than startActivity, which is presumably the thing that fixes the problem. Also refactored TestPreCallModule to remove the many test implementations of PreCall and remove the static field in the module which could cause test interference. TEST=manual Bug: 78187587 Test: manual PiperOrigin-RevId: 193596093 Change-Id: I933020d33db1c158628f14b30c2681c59c86201b
2018-04-18Support placing a call with assisted dialing in the new call log.linyuh
Bug: 70988691 Test: ModulesTest PiperOrigin-RevId: 193434411 Change-Id: I3fe493eeb2869cad0d42ccf08d57018a42b1b84e
2018-04-18Reduce the number of parameters when building bottom sheet options for ↵linyuh
telecom/Duo calls. Bug: 70988691 Test: ModulesTest, DuoCallModuleTest PiperOrigin-RevId: 193431749 Change-Id: I2af9979504b99175513cb753a030244f735828be
2018-04-17Improved support for short codes in Coalescer.zachh
Use ShortNumberInfo to identify shortcodes and apply more basic matching for them; without this short codes like '5555' and '55555' would match due to being a SHORT_NSN_MATCH even though they should not match. Also removed the PhoneNumberUtil argument from DialerPhoneNumberUtil's constructor as it was always PhoneNumberUtil.getInstance(). (This allowed me to do a similar thing for ShortNumberInfo.getInstance()). TEST=unit Bug: 71586485 Test: unit PiperOrigin-RevId: 193288929 Change-Id: Ia16c78e7eee5e0912d3913660952b9ee32713731
2018-04-17Improved handling of IS_READ in new call log.zachh
It is not marked "not null" in the system call log and our simulator gives it null data, so handle it more gracefully to be on the safe side. Also enforce "not null" for IS_READ and NEW in annotated call log as I observed that happening somehow (possibly from older builds though). TEST=existing Test: existing PiperOrigin-RevId: 193271095 Change-Id: I780db20c9d6ea5cf5e1d757def9ea06b492267c1
2018-04-16Don't show the Duo disclosure card if it's been viewed for more than 1 day.linyuh
Bug: 70989614 Test: NewCallLogAdapterTest PiperOrigin-RevId: 193101600 Change-Id: I52b0db9dc03d5e44cad7462403c2639fb33b5f33
2018-04-16Remove column PHONE_ACCOUNT_LABEL and PHONE_ACCOUNT_COLOR from the annotated ↵linyuh
call log. Bug: 77808449 Test: NewCallLogViewHolderTest + existing tests for the call log framework PiperOrigin-RevId: 193086917 Change-Id: I39244c69acf1d261699610f6010c0cf147ca3492
2018-04-13Animate duo disclosure dismissal.calderwoodra
Test: tap PiperOrigin-RevId: 192825959 Change-Id: I814537b08d9afd678c1cb88e6012e60e5511b6bb
2018-04-13Increased tap target for 3-dot menu in new call log.zachh
Accomplished by replacing margin with padding. TEST=manual Bug: 77812328 Test: manual PiperOrigin-RevId: 192818386 Change-Id: Iaf58b8460c18259a0472fd154695238c7e93a489
2018-04-12Add Duo disclosure card to the new call log.linyuh
Bug: 70989614 Test: NewCallLogAdapterTest PiperOrigin-RevId: 192692744 Change-Id: I42dbb5738558803ad6eae9fe2c2f98b31c49f360
2018-04-11Add RTT badge to new call log.wangqi
Bug: 77717594 Test: ContactPhotoViewTest PiperOrigin-RevId: 192492913 Change-Id: I6db36017fde2cf9dca580d60d5c88bf2ad2dfe16
2018-04-10For an audio call log entry, add a video call option in the bottom sheet if ↵linyuh
the capability is present. Bug: 70989603 Test: ModulesTest PiperOrigin-RevId: 192302145 Change-Id: I3162e7d22223aa02709d0d401c70c6fc37a00e3b
2018-04-05Exclude Duo audio calls from the new call log.linyuh
Bug: 77496097 Test: SystemCallLogDataSourceTest PiperOrigin-RevId: 191845115 Change-Id: Id0d3770e0cd21383cf2f4c5ae5314ca4de258edd
2018-04-05Support new voicemail fragment in old peer.uabdullah
This makes the old peer read the CallLogConfig#isNewVoicemailFragmentEnabled and show the old or new fragment accordingly. If the user is viewing the NewVoicemail and the CallLogConfig needs to disable the framework, the new fragment is immediately replaced with the old one. This is necessary because if the user were to scroll the fragment, the AnnotatedCallLog database would be read, which would trigger creation. I tested this by flipping flags and observing underlying data being removed: > dialer-cmd configprovider set new_voicemail_fragment_enabled false > adb shell ls /data/data/com.google.android.dialer/databases/ && echo && adb shell cat /data/user_de/0/com.google.android.dialer/shared_prefs/com.google.android.dialer_preferences.xml I test flipping flags back and forth on the voicemail tab, call log tab and ensuring that they are independent. Bug: 77601968 Test: unit and manual. Some tests are failing, so to ensure we can have the voicemail ready for the bug bash tomorrow, I've ignored them temporarily but will be fixed in a follow up CL (tracked by b/77601893) PiperOrigin-RevId: 191738860 Change-Id: I24ca38b862e98324cf802a3020e7e9df31c0b966
2018-04-04Use the default phone account for a voice call when the call log item is for ↵linyuh
Duo. Bug: 77535982 Test: ModulesTest + Manual PiperOrigin-RevId: 191612821 Change-Id: I417b46ed3ec131bf409c427d82f5b2fa6b791054
2018-04-03Separate calls with the video feature from others when coalescing rows in ↵linyuh
the new call log. Test: CoalescerTest PiperOrigin-RevId: 191376690 Change-Id: Id5939175edddd164a1b477319fb20e6d2a9671a9
2018-04-03Support placing Duo calls in the new UI's bottom sheet.linyuh
Bug: 70988685 Test: DuoCallModuleTest, PlaceDuoCallEndToEndTest, Manual testing PiperOrigin-RevId: 191372706 Change-Id: I439be71c361eaca722820b81278e5f95322e100c
2018-03-30Use IS_READ instead of NEW in new call log.zachh
We want to be more consistent with other usages of NEW in the app, i.e. NEW should be used primarily by notifications. Bug: 74821515 Test: unit PiperOrigin-RevId: 191139559 Change-Id: Ib6fbead8b5589aedd881db26a07f7daed4d83543
2018-03-30Added logging for popping in new call log.zachh
Bug: 70989667 Test: unit PiperOrigin-RevId: 191099351 Change-Id: I47f1e487e2a0cc23af7b39ae89e20abf993933ea
2018-03-29Badge contact photos for video calls in the bottom sheet.linyuh
Bug: 70988682 Test: Existing tests PiperOrigin-RevId: 190946639 Change-Id: Iaa8294e8ba6e85ab3c27bb2e67200d7972a240f2
2018-03-28Create a common widget (ContactPhotoView) for a contact photo and its ↵linyuh
optional badge. Bug: 70988682 Test: ContactPhotoViewTest PiperOrigin-RevId: 190855440 Change-Id: Ib658efa6486b66548c710804049517905dc67b13
2018-03-28Badge contact photos in the new call log for video calls.linyuh
Bug: 70988682 Test: NewCallLogViewHolderTest PiperOrigin-RevId: 190783830 Change-Id: Ib0b1ec23b7c278b83516019924b6c68ff12adaf9
2018-03-27Support new call log fragment in old peer.zachh
This makes the old peer read the CallLogConfig#isNewCallLogFragmentEnabled and show the old or new fragment accordingly. If the user is viewing the NewCallLog and the CallLogConfig needs to disable the framework, the new fragment is immediately replaced with the old one. This is necessary because if the user were to scroll the fragment, the AnnotatedCallLog and PhoneLookupHistory databases would be read, which would trigger creation. I don't expect this to be a common case because 1) we hopefully never have to disable the framework and 2) Framework is only updated on Phenotype broadcasts and JobScheduler jobs, which hopefully don't typically happen when user is viewing the call log. However, I still want to make sure that if it happens we don't irreversibly break users when we turn the framework back on. I tested this by flipping flags and observing underlying data being removed: > dialer-cmd configprovider set new_voicemail_fragment_enabled false > adb shell ls /data/data/com.google.android.dialer/databases/ && echo && adb shell cat /data/user_de/0/com.google.android.dialer/shared_prefs/com.google.android.dialer_preferences.xml I test flipping flags back and forth on the call log tab, speed dial tab, and while the activity was paused (pressing Home after viewing call log). Note that this CL doesn't address showing missed calls and badge counts correctly with the new fragment; that will come in a later CL. Bug: 74821995 Test: unit and manual PiperOrigin-RevId: 190706481 Change-Id: I618d9c1649169abd65733502cfebc662a835e787
2018-03-26Remove TODOs left for M in the new call log as the min SDK has been bumped to N.linyuh
Bug: 72125574 Test: None. PiperOrigin-RevId: 190572832 Change-Id: I581d3c9e366a1190c1608b369700aeb511fe51d1
2018-03-26Removed NUI shortcut.zachh
We're not going to have a shortcut for NUI anymore. There are individual flags related to NUI that are controlled in CallLogConfig. Other related changes to help accomplish this: -Changed how the call log framework/config/migrator interact; the migrator is now only called on config changes and enabling/disabling of the framework now lives in CallLogFramework. -Move CallLogConfig an interface, and moved it to its own package and added component and module. This is to simplify tests which just need to check the config status (like PhoneLookupHistoryRecorderTest). -The "Main" package is also on longer needed since it existed to control the shortcut. Bug: 74821995 Test: existing PiperOrigin-RevId: 190251418 Change-Id: I73c8e83aee80295131443a8ffaa7dea716ea89b6
2018-03-26Increase minSdk to 24.calderwoodra
Manually set to M - MissedCallNotifierTest (not sure what the issue is here...) - CallLogGroupBuilderTest (because a check was removed, some NPEs are thrown) - MainSearchControllerTest (/system/etc/fonts.xml (No such file or directory)) Ignore Tests - a few random ones in incallui/answer/impl/hint (shared prefs aren't working for some reason) - VisualVoicemailUpdateTaskTest (disabled the whole test, issue unclear) Bug: 73902692 Test: tap PiperOrigin-RevId: 190030202 Change-Id: I1e9b61d758a61582c5a183ee884dd2181d1c10de
2018-03-22Removed appContext from CallLogDataSource and PhoneLookup.zachh
Impls can access appContext via dagger. Test: existing PiperOrigin-RevId: 189974157 Change-Id: Ie64d2c6f9ba08fc914d3c31f7e014c2beef3ab00
2018-03-22Enable and disable the call log framework on flag changes.zachh
Bug: 74821995 Test: unit PiperOrigin-RevId: 189969399 Change-Id: I8e287cc7884dde7640721bd385fe383a4635f3c8
2018-03-20Added "clearData" to CallLogDataSource and PhoneLookup interfaces.zachh
This is necessary to disable the call log framework via flags. This isn't yet called anywhere. Bug: 74821995 Test: unit PiperOrigin-RevId: 189838957 Change-Id: I926c02c41151528eabc208c874acbfe7897a2f93
2018-03-20Added unregisterContentResolvers() to CallLogDataSource and PhoneLookup.zachh
This is needed to support flag changes which should cause the call log framework to become disabled. It's not called anywhere yet. Bug: 74821995 Test: unit PiperOrigin-RevId: 189761665 Change-Id: I914c690448f03ebacd7d05c9ad082aba7bf1a4ce
2018-03-19Make the top row of the bottom sheet not clickable.linyuh
Test: Existing tests PiperOrigin-RevId: 189683790 Change-Id: I0209e7fa839175041da29e9a6d8a590133121376
2018-03-19Convert @AutoValue CoalescedRow to a protolinyuh
Test: Existing tests PiperOrigin-RevId: 189675976 Change-Id: Ieae92b5ac2aefd3f0397bbb07ebb1c97bd72ed42
2018-03-19Added polling job for CallLogConfig.zachh
Bug: 74821995 Test: unit PiperOrigin-RevId: 189670163 Change-Id: Ifdfcab7dc4493cbe688ef77d43df7e7a1400fa27
2018-03-19Implement VoicemailDataSourcetwyen
This data source determines if the call is to the voicemail inbox. isVoicemail() is removed from NumberAttributes and PhoneLookup. It is yet decided how in call UI should handle voicemail calls in the future. TAG_CHANGE_OK=proto not in prod yet. Please clear app data. TYPE_CHANGE_OK=above Bug: 70989587 Test: Unit tests PiperOrigin-RevId: 189650273 Change-Id: Iafebf1abb18c74301b62a72d1d04deecd6d78d29
2018-03-19Watch for phenotype flag changes and update CallLogConfig.zachh
Bug: 74821995 Test: unit PiperOrigin-RevId: 189648655 Change-Id: I9918bd6f35bf7eb1bebb9862c2d78880457efa91
2018-03-15Introduce GlidePhotoManager to CallDetailsActivitylinyuh
Bug: 74202944 Test: ModulesTest, CallDetailsActivityTest PiperOrigin-RevId: 189204143 Change-Id: I917bac76009522c6a99fdb63299556ec2a454dfa
2018-03-14Added CallLogConfig.zachh
This class is responsible for enabling or disabling the call log framework when flags change. Bug: 74821995 Test: unit PiperOrigin-RevId: 189143911 Change-Id: I4727645ce621fbc01acbcd0acab523fe955d4075
2018-03-12Use white background in new call log.zachh
Bug: 74402112 Test: none PiperOrigin-RevId: 188782198 Change-Id: I36c2adcd8f0403c88694343cbbf12e9aba229afb
2018-03-06Covnert @AutoValue PhotoInfo into a proto.linyuh
Bug: 74202944 Test: Existing tests PiperOrigin-RevId: 188060790 Change-Id: I4d79a353abf767935383d4149f261f5e96fd7acb
2018-03-02Added impression logging for AnnotatedCallLog rebuild operations.zachh
Bug: 70989667 Test: unit PiperOrigin-RevId: 187694255 Change-Id: Ie6ec70a70a4c59cbdfe25c34003d21fa2f751564
2018-03-02Added timing to some more AnnotatedCallLog operations.zachh
This includes: 1) Made RefreshAnnotatedCallLogWorker.refresh() methods return a result which is "not dirty", "dirty but no changes needed" or "dirty and changes need". It will be interesting to see how often these cases occur (will log impressions in a future CL) so I thought we might as well log the latency of each case separately as well. 2) To support 1) added a new method to FutureTimer which allows you to compute the event name from the result of the timed Future. Also needed to update the Metrics interface to support deferring the event name when starting a timer via a generic token. 3) Timing the coalesce operation which is very heavyweight. 4) Made StubMetrics do some logcat logging to easily observe timing information using AOSP Bug: 70989667 Test: unit PiperOrigin-RevId: 187691203 Change-Id: I5f19a2fc94d86639486299b65b0edd66eeaab52e
2018-02-28Log contact source when reporting spam from the new UI.linyuh
Bug: 73780748 Test: PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 187404074 Change-Id: I1db81304909fbf63aba00088c12e18922042c3b1
2018-02-28Group info needed to show a block/report spam dialog into a proto to avoid ↵linyuh
long method signatures. Test: Existing tests PiperOrigin-RevId: 187338094 Change-Id: I0d7a5206d127931d322b5604b2bb81f5202b8de8
2018-02-27Internal cleanup for the new UI's bottom sheet.linyuh
Test: Existing tests PiperOrigin-RevId: 187254014 Change-Id: I8a57b632d45e87ad075eb8bbb25180858e890f08
2018-02-27Set the correct reporting location when reporting spam in the new call log.linyuh
Bug: 73816729 Test: Existing tests PiperOrigin-RevId: 187230516 Change-Id: I59d70b9676e2972b80f124f29f2c1cb1858efef8
2018-02-26Look up contacts in the local enterprise directory in the new call log.linyuh
Bug: 73547944 Test: Cp2ExtendedDirectoryPhoneLookupTest PiperOrigin-RevId: 187064655 Change-Id: Icb468e0867248f097a77134dd67a53352f7c80b0
2018-02-26Implement logic of bottom sheet options related to spam numbers.linyuh
Bug: 70989605 Test: ShowBlockReportSpamDialogNotifierEndToEndTest + Manual PiperOrigin-RevId: 187047450 Change-Id: I23c3929135bcfe5c14fe317ef65f628dc126027f
2018-02-23Track initial call log building metrics separately from incremental building ↵zachh
metrics. This required creating "CallLogState" which is currently just a boolean value which can only be turned on once (when the annotated call log flow finishes for the first time). This CL also changes CompositePhoneLookup to no longer implement PhoneLookup. This was done to support a now reverted implementation of CallLogState but it's easier for me to keep the change and it shouldn't be harmful. Bug: 70989667 Test: unit PiperOrigin-RevId: 186852257 Change-Id: I3f342737aaf909f8230b8a69d9c21e6e5c19b84e
2018-02-22Added some logcat and metrics logging for new call log.zachh
Bug: 70989667 Test: unit PiperOrigin-RevId: 186726722 Change-Id: I1a68ae1e01b101b1624e4f5ede1a8d639d481ad2
2018-02-22Make MarkDirtyObserver available to all call log data sources & PhoneLookups.linyuh
Bug: 73347270 Test: Existing tests PiperOrigin-RevId: 186475562 Change-Id: I622b52f4d74b26fd084b6588da6321c46458aa9d
2018-02-22Rebuild Call Log on first launch after NUI is enabledtwyen
This improves the first time experience by populating the DB when the user is still in other tabs. Bug: 72119926 Test: Unit tests PiperOrigin-RevId: 186418788 Change-Id: If011d7191a09fd1aaca489c6e682ccdc643c2139
2018-02-22Moved metrics related methods out of LoggingBindings.zachh
Test: existing PiperOrigin-RevId: 186413083 Change-Id: I96c88c46b0ecc01167b655fa30fc47aaa6a9e351
2018-02-22Record jank metrics in old and new call logs.zachh
Bug: 70989667 Test: unit PiperOrigin-RevId: 186410938 Change-Id: I0671ab0bbbe957b8f034c673e6309204284756d2
2018-02-22Initialize/Update the UI of New{CallLog|Voicemail}Fragment iff the fragment ↵linyuh
is truly visible. Bug: 73347270 Test: NewCallLogFragmentTest, NewVoicemailFragmentTest PiperOrigin-RevId: 186350076 Change-Id: Ib3e320f02a02795acb8b7d2017818b36df3dd49d
2018-02-22Use a broadcast receiver to refresh the annotated call log.linyuh
Bug: 73347270 Test: Existing tests + RefreshAnnotatedCallLogNotifierTest PiperOrigin-RevId: 186347066 Change-Id: I5a530416bdaa9edc7131a0d5ced44f1b5ee1692b
2018-02-22Include the primary callback action in the new call log's bottom sheet.linyuh
Test: ModulesTest PiperOrigin-RevId: 186006639 Change-Id: I0c37d342d4a6da563b49b3ebe8f8ee2262efde60
2018-02-22Include both PHOTO_URI and PHOTO_THUMBNAIL_URI in Cp2Info.linyuh
Bug: 73007132 Test: NumberAttributesConverterTest, PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 185545712 Change-Id: I228d8c4e1b6327e38057f73aad63bb7048704d49
2018-02-14Mark calls as read in new call log.zachh
Playing with the existing app, the missed call becomes unbolded when: 1) Expanding the row. The closest analog of this is in the new UI is opening the bottom sheet, I've done that. 2) Swiping away from the call history tab. This can't be done in NewCallLogFragment because it doesn't know if the user is selected a new tab or pressed Home. So, I implemented this in NewMainActivityPeer. 3) After viewing the call log for 3(ish) seconds and leaving the activity pressing Home/Back. This is best done in NewCallLogFragment#onResume since MainActivity doesn't always know when the fragment is being displayed (it could be done after the user comes back to the app after pressing Home for example). Note that the notification is also removed in all of these cases. Also note that dismissing the notification makes the call unbolded (but this case already appears to be handled via the system call log content observer). Also, as part of writing tests for this, I made TestCallLogProvider more realistic. Bug: 70989622 Test: manual PiperOrigin-RevId: 185457438 Change-Id: Ib360d3bc73083bd1a018ed98e2b7d9a69fb7fafb
2018-02-14Add bottom sheet options for blocked and/or spam numbers in the new call log.linyuh
Bug: 70989605 Test: ModulesTest PiperOrigin-RevId: 185392711 Change-Id: I709a1e307925f1c99d2740ed52dc2b7784bca986
2018-02-09Show icon and label for a spam number in the new call log.linyuh
Bug: 73077158 Test: CallLogEntryTextTest, GlidePhotoManagerImplTest, PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 185017362 Change-Id: I113472482da2213d17a847054272a22249edc578
2018-02-05Match redlines in new call log.zachh
This includes: -Moved call count to after icons -Bold PhoneAccount for new calls -Fixed recycling issues in call type icons and phone account -Fixed cropping at bottom of "y" character (see b/67913060) -Reduced nesting in layout -Removed dimens.xml as it shouldn't be shared by voicemail -Set the alpha for Wifi/HD icons depending on read/unread status -Don't color call type icons, except for missed -Call type icons scale with display size -Call type icons are larger (18dp) in new UI Note that FrameLayout is used to ensure that icons/callCount view is not clipped, and instead contact name is ellipsized when the content is too wide to fit. Bug: 67913060,70989593,70989611 Test: unit and manual PiperOrigin-RevId: 184605728 Change-Id: Ie36c89354cbe4444ad2b42b6b0040430e396691c
2018-02-02Add Support for transcription state in the AnnotatedCallLoguabdullah
Transcription state column is needed for voicemail transcriptions. This CL adds the support for it in the NUI so that it maybe used by the VM Tab. Bug: 72491920 Test: Unit Tests PiperOrigin-RevId: 184335015 Change-Id: I14a71890224216c957e0d6146af9dafaa1550865
2018-01-29Added is_valid and post_dial_portion fields to DialerPhoneNumber.zachh
These are frequently used attributes of numbers that we can compute once at parse-time. Also did some general cleanup of DialerPhoneNumberUtil: -Removed unused Future version of parse() -Remove formatToValidE164 now that the new fields are available -Inlined normalizeNumber() Bug: 72563861 Test: existing PiperOrigin-RevId: 183720128 Change-Id: I702dc265360e590439c5352c493ae8a858f36812
2018-01-26Reworked the internals of DialerPhoneNumber.zachh
It turns out the storing the libphonenumber representation of the number is not particularly useful because even formatting these objects cannot be done on the main thread. Rather than propagate the requirement of using PhoneNumberUtil (and background threads by extension) in the call log UI, we now just store a dialer-normalized version of the number which contains all information required by the UI in a way that allows us to avoid any background work in the UI code. Bug: 72563861 Test: existing PiperOrigin-RevId: 183463907 Change-Id: I4bdadaccb7a84033b3c72c54fe3833064f587ee3
2018-01-26Added number presentation to AnnotatedCallLog.zachh
Updated the new call log UI to properly show text based on the presentation. Bug: 70989592 Test: unit PiperOrigin-RevId: 183414195 Change-Id: I2123f37cd3c733060125b6e894c1a80be4193ad6
2018-01-25Remove non call log dependencies on PhoneAccountUtiltwyen
Methods moved to TelecomUtils Test: Unit tests PiperOrigin-RevId: 183305626 Change-Id: Idd6604e58c06a36066bd49870849dd71747969c6
2018-01-24Add skeleton for SpamPhoneLookuplinyuh
Bug: 70989534 Test: SpamPhoneLookupTest PiperOrigin-RevId: 183174131 Change-Id: I46e819a0710ccce293195594e2f249e91d74551a
2018-01-24Show Icon and label for blocked numberstwyen
CallLogPhoto.getPhotoUri() returns a URI to a drawable so it will be easier to transition into glide. Meanwhile ContactPhotoManager will just show the drawable directly. Bug: 70989547 Test: Unit tests PiperOrigin-RevId: 183163818 Change-Id: I4ee4ff98782e35d2be03dfe14f8bf3dfd6ded074
2018-01-24Add flag to enable NUI shortcut.calderwoodra
Bug: 64655802 Test: n/a PiperOrigin-RevId: 183149638 Change-Id: Idc58efced8f70311eccd67f403bc5bd98f3f8518
2018-01-23Don't garbage collect voicemails in AnnotatedCallLog.zachh
We currently limit the size of AnnotatedCallLog to 999 via a trigger, but it doesn't exclude voicemails. Since we don't want to ever garbage collect the user's voicemails, exclude them from the trigger. This means that we can no longer assume a maximum size for the table (the user culd have more than 999 voicemails) so I've updated the places in the code where we did that before. Finally, I changed AnnotatedCallLog's CALL_TYPE column to be non-null. This is so that we can have more confidence that the trigger will work as intended. Null values cannot be compared in SQLite, so an expression like "where call_type != 4" won't actually match a null call type. Rather than implicitly fail to clean up such rows, we just crash completely when encountering such rows (even though I don't expect that to happen). Bug: 70989634 Test: unit PiperOrigin-RevId: 183006714 Change-Id: I9f4394a4812afe4b65c1e8427c355d825356557c
2018-01-23Moved coalesced_ids.proto and number_attributes.proto to ↵zachh
calllog/database/contract. The "model" package should be reserved for call history proper (and not voicemail) so it shouldn't contain things needed by voicemail. Test: existing PiperOrigin-RevId: 182976719 Change-Id: I463c8ed4600950a8d18db49d991609bfaa49c709
2018-01-23Write PhoneLookup results to PhoneLookupHistory in RealtimeRowProcessor.zachh
This is an optimization to reduce "popping" in the new call log. Since we have to do the PhoneLookup anyway to update the UI, we may as well write the result to PhoneLookupHistory so that the next time the AnnotatedCallLog is refreshed, the updated results can be retrieved from PhoneLookupHistory. I also updated RealtimeRowProcessorTest to use FakePhoneLookup rather than the real Cp2PhoneLookup since RealtimeRowProcessor no longer uses Cp2PhoneLookup directly (it was updated to use the general-purpose PhoneLookup in a previous CL but I didn't update the test at that time). Test: unit PiperOrigin-RevId: 182974567 Change-Id: I813e9d69f802ca08757238290fdfcf58e78b3592
2018-01-22Don't let the FAB obscure the last item of speed dial/call log/voicemail.linyuh
Bug: 72235391 Test: Manual PiperOrigin-RevId: 182848699 Change-Id: I587f5f4dd770278747114da17581c8fc253651c0
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-19Add the "Yesterday" header in the new call loglinyuh
Bug: 70989598 Test: NewCallLogAdapterTest, CallLogDatesTest PiperOrigin-RevId: 182567571 Change-Id: Ieabbe709668d843334bc3bf4a128834fddb57cb8
2018-01-19Improved support for post dial digits in new call log.zachh
-Don't ever coalesce rows with different post-dial digits -Made matching of unparsable numbers a little more intelligent by comparing national/postdial portions which have undialable characters removed (rather than exact string match) -Read and append the post-dial digits from the system call log when building DialerPhoneNumbers to place in the AnnotatedCallLog. Note: PhoneNumberUtil will parse numbers with exactly one post-dial character, but not more than one. -Use post-dial digits when building the AnnotatedCallLog's FORMATTED_NUMBER value -Display the formatted number in CallDetails when the name is missing, instead of the unformatted number -Don't set the displayNumber in CallDetails when the name is missing, because we are showing the (formatted) number via the nameOrNumber field. -Treat numbers with post-dial digits as invalid in PartitionedNumbers; batch operations are not possible with these numbers because their normalized representations strip the post-dial digits (and they are significant for contact matching) Bug: 70989632 Test: unit and manual PiperOrigin-RevId: 182557754 Change-Id: Idcdefce0946a189e5b350a53ec2a16a96a8d4552
2018-01-17Relax number matching when coalescing rows in new call log.zachh
We currently require two numbers to be a PhoneNumberUtil.MatchType.EXACT_MATCH to coalesce them, but this means that two numbers like "456-7890" and "408 456-7890" won't ever be collapsed. This is potentially a likely situation since it is possible to dial numbers without an area code so we should better support it (and the old call log coalesces such numbers today). Bug: 70989626 Test: unit PiperOrigin-RevId: 182289194 Change-Id: If884d5a1f2631116a2729e0635f9a97aeca3e057
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-17Replace PhoneLookupSelector with PhoneLookupInfoConsolidator.linyuh
PhoneLookupInfoConsolidator is designed for the following two purposes. (1) Different sub-messages in a PhoneLookupInfo proto can contain information for the same purpose. For example, all of cp2_local_info, cp2_remote_info, and people_api_info have the information for a contact's name. PhoneLookupInfoConsolidator defines the rules that determine which sub-message should be used to display the name in the UI. This is the same as PhoneLookupSelector. (2) Avoid mixing info from different sub-messages when we are supposed to stick with only one sub-message. For example, if a PhoneLookupInfo proto has both cp2_local_info and cp2_remote_info but only cp2_remote_info has a photo URI, PhoneLookupInfoConsolidator should return an *empty* photo URI as cp2_local_info has higher priority and we should not use cp2_remote_info's photo URI to display the contact's photo. This is what PhoneLookupSelector is unable to do. Bug: 71763594 Test: PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 182236013 Change-Id: If19cdc1a9e076f3ebc8f9e2901f050b519e273f2
2018-01-17Correctly show the contact's photo in CallDetailsActivity when launched from ↵linyuh
the new call log. Bug: 70218437,71867391 Test: ModulesTest & Manual PiperOrigin-RevId: 182233967 Change-Id: I6eb4bf236230eee6bbecc99b128fef5afddfd1e9
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-12Do not show deleted voicemails in the NUI Voicemail tabuabdullah
Voicemails that are deleted or marked as deleted should not show up in the annotated call log. Bug: 71885122 Test: N/A PiperOrigin-RevId: 181719056 Change-Id: I7a5f7769ecbfc5feaaee36f0f1de48155576f458
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-11Fixed bug in handling of empty numbers in new call log.zachh
Empty numbers were not being inserted into PhoneLookupHistory because the URI "content://.../PhoneLookupHistory/" is treated the same as "content://.../PhoneLookupHistory" (w/o the trailing slash). This caused the update (i.e. replace) operation to incorrectly update all rows in the table when it should have updated a single row. The fix for this was to switch to a query parameter, so the empty number URI now looks like "content://.../PhoneLookupHistory?number=" Also improved some logging while debugging this problem. Bug: 71866050 Test: unit and manual PiperOrigin-RevId: 181659081 Change-Id: Idec4fb77e74920cd5485620b0a997db03aa8ff9b
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-10Fix PhoneLookupDataSource ignoring inserts if history is emptytwyen
Test: Unit tests. PiperOrigin-RevId: 181512134 Change-Id: If64b4cd184c60a807541cfe8727aa03532a80cb4
2018-01-09Rename Cp2PhoneLookup as Cp2LocalPhoneLookup and PhoneLookupInfo.cp2_info as ↵linyuh
PhoneLookupInfo.cp2_local_info. To support remote CP2 contacts, there will be a new PhoneLookup ("Cp2RemotePhoneLookup") and a new field in proto PhoneLookupInfo ("cp2_remote_info"). In proto PhoneLookupInfo, cp2_local_info and cp2_remote_info will be of the same type ("Cp2Info"). Bug: 71763594 Test: Existing tests PiperOrigin-RevId: 181405798 Change-Id: I6c43b486229d4e9ae7b55c579d9c9997a2884c80
2018-01-09Changed behavior of failures in DialerFutures#firstMatching.zachh
DialerFutures#firstMatching now fails if one of its provided futures fails before a match is found. This is to accomodate the case where no source returns true for isDirty, but one or more fail; we want to be notified of the failure in that case and not silently treat that case as not dirty. Also fixed a bug in NewCallLogFragment where the failed future wasn't causing the application to crash. Also improved some related logging in RefreshAnnotatedCallLogWorker and Cp2PhoneLookup, and fixed a bug where empty numbers were not being handled correctly. Bug: 71504246 Test: unit PiperOrigin-RevId: 181401710 Change-Id: I23e207ac334ff80ac95b08a8f4f775a528a8c511
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-08Simplifying implementation of the coalescing logic in the new call log.linyuh
Bug: 70388714 Test: Existing tests PiperOrigin-RevId: 181231987 Change-Id: I0c7386f60e92f7087f9f5ad1b1f454b43b7227e7
2018-01-08Add "delete" option in the 3-dot menu of the new call loglinyuh
Bug: 69639422 Test: DeleteCallLogItemModuleTest, ModulesTest, and Manual PiperOrigin-RevId: 181191883 Change-Id: I86c19e8a402b03a58c6b236b9ca54fd81f0b6f9a
2018-01-05Implement dialer blocked number phone lookuptwyen
This CL implements looking up the dialer internal database for blocked numbers when the system database is not available yet. Data is only invalidated when dialer is alive since that is the only time blocked numbers can be set and removed. Bug: 70989538,70989547 Test: DialerBlockedNumberPhoneLookupTest PiperOrigin-RevId: 180956355 Change-Id: Ie7acf091bf58a074d0a1ee39613fad035d2e6e60
2018-01-04Set flag 'canReportAsInvalidNumber' in CallDetailsActivity's intent when ↵linyuh
it's launched from the new call log. Bug: 70218437 Test: ModulesTest PiperOrigin-RevId: 180841866 Change-Id: Iba25ce6a8716d85f86a6cea32386b949973ee59f
2018-01-04Add column CAN_REPORT_AS_INVALID_NUMBER to the annotated call log.linyuh
This column is filled by PhoneLookupDataSource using PhoneLookupInfo#PeopleApiInfo. Bug: 70218437 Test: AnnotatedCallLogDatabaseHelperTest, PhoneLookupDataSourceTest, RowCombinerTest, CoalescedAnnotatedCallLogCursorLoaderTest, PhoneLookupSelectorTest PiperOrigin-RevId: 180839783 Change-Id: I8d5ddb940670724fd4bf6dd6a50dcf408f91da9d
2018-01-02Add assisted dialing to the new call log.erfanian
Bug: 70506228 Test: new unit tests PiperOrigin-RevId: 180610636 Change-Id: I7f498df1a529737bf8473584836bdc3e04a5043c
2018-01-02Support assisted dialing in CallDetailsActivity when launched from the new ↵linyuh
call log UI. Bug: 70218437 Test: ModulesTest PiperOrigin-RevId: 180577770 Change-Id: Idbfe48ea22d422c90d970d633a952a7200f49f82
2017-12-27Parameterized PhoneLookup with submessage type.zachh
This allows indvidual PhoneLookups to define and deal mostly with their own submessage type (with the exception of trivial setter and getter methods for converting from/to PhoneLookupInfo). This also simplifies the FakePhoneLookup and tests which use it a bit, I think. Bug: 34672501 Test: unit PiperOrigin-RevId: 179976215 Change-Id: I2db1fc85771621be2f2afcd6af114d82680e30d0