Age | Commit message (Collapse) | Author |
|
Bug: 77717594
Test: ContactPhotoViewTest
PiperOrigin-RevId: 192492913
Change-Id: I6db36017fde2cf9dca580d60d5c88bf2ad2dfe16
|
|
the capability is present.
Bug: 70989603
Test: ModulesTest
PiperOrigin-RevId: 192302145
Change-Id: I3162e7d22223aa02709d0d401c70c6fc37a00e3b
|
|
Bug: 77496097
Test: SystemCallLogDataSourceTest
PiperOrigin-RevId: 191845115
Change-Id: Id0d3770e0cd21383cf2f4c5ae5314ca4de258edd
|
|
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
|
|
Duo.
Bug: 77535982
Test: ModulesTest + Manual
PiperOrigin-RevId: 191612821
Change-Id: I417b46ed3ec131bf409c427d82f5b2fa6b791054
|
|
the new call log.
Test: CoalescerTest
PiperOrigin-RevId: 191376690
Change-Id: Id5939175edddd164a1b477319fb20e6d2a9671a9
|
|
Bug: 70988685
Test: DuoCallModuleTest, PlaceDuoCallEndToEndTest, Manual testing
PiperOrigin-RevId: 191372706
Change-Id: I439be71c361eaca722820b81278e5f95322e100c
|
|
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
|
|
Bug: 70989667
Test: unit
PiperOrigin-RevId: 191099351
Change-Id: I47f1e487e2a0cc23af7b39ae89e20abf993933ea
|
|
Bug: 70988682
Test: Existing tests
PiperOrigin-RevId: 190946639
Change-Id: Iaa8294e8ba6e85ab3c27bb2e67200d7972a240f2
|
|
optional badge.
Bug: 70988682
Test: ContactPhotoViewTest
PiperOrigin-RevId: 190855440
Change-Id: Ib658efa6486b66548c710804049517905dc67b13
|
|
Bug: 70988682
Test: NewCallLogViewHolderTest
PiperOrigin-RevId: 190783830
Change-Id: Ib0b1ec23b7c278b83516019924b6c68ff12adaf9
|
|
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
|
|
Bug: 72125574
Test: None.
PiperOrigin-RevId: 190572832
Change-Id: I581d3c9e366a1190c1608b369700aeb511fe51d1
|
|
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
|
|
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
|
|
Impls can access appContext via dagger.
Test: existing
PiperOrigin-RevId: 189974157
Change-Id: Ie64d2c6f9ba08fc914d3c31f7e014c2beef3ab00
|
|
Bug: 74821995
Test: unit
PiperOrigin-RevId: 189969399
Change-Id: I8e287cc7884dde7640721bd385fe383a4635f3c8
|
|
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
|
|
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
|
|
Test: Existing tests
PiperOrigin-RevId: 189683790
Change-Id: I0209e7fa839175041da29e9a6d8a590133121376
|
|
Test: Existing tests
PiperOrigin-RevId: 189675976
Change-Id: Ieae92b5ac2aefd3f0397bbb07ebb1c97bd72ed42
|
|
Bug: 74821995
Test: unit
PiperOrigin-RevId: 189670163
Change-Id: Ifdfcab7dc4493cbe688ef77d43df7e7a1400fa27
|
|
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
|
|
Bug: 74821995
Test: unit
PiperOrigin-RevId: 189648655
Change-Id: I9918bd6f35bf7eb1bebb9862c2d78880457efa91
|
|
Bug: 74202944
Test: ModulesTest, CallDetailsActivityTest
PiperOrigin-RevId: 189204143
Change-Id: I917bac76009522c6a99fdb63299556ec2a454dfa
|
|
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
|
|
Bug: 74402112
Test: none
PiperOrigin-RevId: 188782198
Change-Id: I36c2adcd8f0403c88694343cbbf12e9aba229afb
|
|
Bug: 74202944
Test: Existing tests
PiperOrigin-RevId: 188060790
Change-Id: I4d79a353abf767935383d4149f261f5e96fd7acb
|
|
Bug: 70989667
Test: unit
PiperOrigin-RevId: 187694255
Change-Id: Ie6ec70a70a4c59cbdfe25c34003d21fa2f751564
|
|
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
|
|
Bug: 73780748
Test: PhoneLookupInfoConsolidatorTest
PiperOrigin-RevId: 187404074
Change-Id: I1db81304909fbf63aba00088c12e18922042c3b1
|
|
long method signatures.
Test: Existing tests
PiperOrigin-RevId: 187338094
Change-Id: I0d7a5206d127931d322b5604b2bb81f5202b8de8
|
|
Test: Existing tests
PiperOrigin-RevId: 187254014
Change-Id: I8a57b632d45e87ad075eb8bbb25180858e890f08
|
|
Bug: 73816729
Test: Existing tests
PiperOrigin-RevId: 187230516
Change-Id: I59d70b9676e2972b80f124f29f2c1cb1858efef8
|
|
Bug: 73547944
Test: Cp2ExtendedDirectoryPhoneLookupTest
PiperOrigin-RevId: 187064655
Change-Id: Icb468e0867248f097a77134dd67a53352f7c80b0
|
|
Bug: 70989605
Test: ShowBlockReportSpamDialogNotifierEndToEndTest + Manual
PiperOrigin-RevId: 187047450
Change-Id: I23c3929135bcfe5c14fe317ef65f628dc126027f
|
|
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
|
|
Bug: 70989667
Test: unit
PiperOrigin-RevId: 186726722
Change-Id: I1a68ae1e01b101b1624e4f5ede1a8d639d481ad2
|
|
Bug: 73347270
Test: Existing tests
PiperOrigin-RevId: 186475562
Change-Id: I622b52f4d74b26fd084b6588da6321c46458aa9d
|
|
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
|
|
Test: existing
PiperOrigin-RevId: 186413083
Change-Id: I96c88c46b0ecc01167b655fa30fc47aaa6a9e351
|
|
Bug: 70989667
Test: unit
PiperOrigin-RevId: 186410938
Change-Id: I0671ab0bbbe957b8f034c673e6309204284756d2
|
|
is truly visible.
Bug: 73347270
Test: NewCallLogFragmentTest, NewVoicemailFragmentTest
PiperOrigin-RevId: 186350076
Change-Id: Ib3e320f02a02795acb8b7d2017818b36df3dd49d
|
|
Bug: 73347270
Test: Existing tests + RefreshAnnotatedCallLogNotifierTest
PiperOrigin-RevId: 186347066
Change-Id: I5a530416bdaa9edc7131a0d5ced44f1b5ee1692b
|
|
Test: ModulesTest
PiperOrigin-RevId: 186006639
Change-Id: I0c37d342d4a6da563b49b3ebe8f8ee2262efde60
|
|
Bug: 73007132
Test: NumberAttributesConverterTest, PhoneLookupInfoConsolidatorTest
PiperOrigin-RevId: 185545712
Change-Id: I228d8c4e1b6327e38057f73aad63bb7048704d49
|
|
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
|
|
Bug: 70989605
Test: ModulesTest
PiperOrigin-RevId: 185392711
Change-Id: I709a1e307925f1c99d2740ed52dc2b7784bca986
|
|
Bug: 73077158
Test: CallLogEntryTextTest, GlidePhotoManagerImplTest, PhoneLookupInfoConsolidatorTest
PiperOrigin-RevId: 185017362
Change-Id: I113472482da2213d17a847054272a22249edc578
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Updated the new call log UI to properly show text based on the presentation.
Bug: 70989592
Test: unit
PiperOrigin-RevId: 183414195
Change-Id: I2123f37cd3c733060125b6e894c1a80be4193ad6
|
|
Methods moved to TelecomUtils
Test: Unit tests
PiperOrigin-RevId: 183305626
Change-Id: Idd6604e58c06a36066bd49870849dd71747969c6
|
|
Bug: 70989534
Test: SpamPhoneLookupTest
PiperOrigin-RevId: 183174131
Change-Id: I46e819a0710ccce293195594e2f249e91d74551a
|
|
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
|
|
Bug: 64655802
Test: n/a
PiperOrigin-RevId: 183149638
Change-Id: Idc58efced8f70311eccd67f403bc5bd98f3f8518
|
|
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
|
|
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
|
|
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
|
|
Bug: 72235391
Test: Manual
PiperOrigin-RevId: 182848699
Change-Id: I587f5f4dd770278747114da17581c8fc253651c0
|
|
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
|
|
Bug: 70989598
Test: NewCallLogAdapterTest, CallLogDatesTest
PiperOrigin-RevId: 182567571
Change-Id: Ieabbe709668d843334bc3bf4a128834fddb57cb8
|
|
-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
|
|
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
|
|
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
|
|
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
|
|
the new call log.
Bug: 70218437,71867391
Test: ModulesTest & Manual
PiperOrigin-RevId: 182233967
Change-Id: I6eb4bf236230eee6bbecc99b128fef5afddfd1e9
|
|
-Reset the text appearance when recycling
-Clear the secondary call types when recycling
Test: unit
PiperOrigin-RevId: 181824011
Change-Id: I92cf2c570754e60f3559ad6b47157b3538c6e2cc
|
|
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
|
|
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
|
|
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
|
|
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
|
|
-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
|
|
Test: Unit tests.
PiperOrigin-RevId: 181512134
Change-Id: If64b4cd184c60a807541cfe8727aa03532a80cb4
|
|
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
|
|
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
|
|
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
|
|
Bug: 70388714
Test: Existing tests
PiperOrigin-RevId: 181231987
Change-Id: I0c7386f60e92f7087f9f5ad1b1f454b43b7227e7
|
|
Bug: 69639422
Test: DeleteCallLogItemModuleTest, ModulesTest, and Manual
PiperOrigin-RevId: 181191883
Change-Id: I86c19e8a402b03a58c6b236b9ca54fd81f0b6f9a
|
|
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
|
|
it's launched from the new call log.
Bug: 70218437
Test: ModulesTest
PiperOrigin-RevId: 180841866
Change-Id: Iba25ce6a8716d85f86a6cea32386b949973ee59f
|
|
This column is filled by PhoneLookupDataSource using PhoneLookupInfo#PeopleApiInfo.
Bug: 70218437
Test: AnnotatedCallLogDatabaseHelperTest, PhoneLookupDataSourceTest, RowCombinerTest, CoalescedAnnotatedCallLogCursorLoaderTest, PhoneLookupSelectorTest
PiperOrigin-RevId: 180839783
Change-Id: I8d5ddb940670724fd4bf6dd6a50dcf408f91da9d
|
|
Bug: 70506228
Test: new unit tests
PiperOrigin-RevId: 180610636
Change-Id: I7f498df1a529737bf8473584836bdc3e04a5043c
|
|
call log UI.
Bug: 70218437
Test: ModulesTest
PiperOrigin-RevId: 180577770
Change-Id: Idbfe48ea22d422c90d970d633a952a7200f49f82
|
|
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
|
|
When launching MainActivity with the screen off (e.g. from Android Studio) the application would crash due to:
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
Also use FragmentPagerAdapter in MainPagerAdapter as the number of tabs is small and can be stored in memory.
Test: manual
PiperOrigin-RevId: 179734952
Change-Id: Ib2ca9674f3174493da55bbbf0ef4053fcf73ab47
|
|
If there is a new call with a number that hasn't been seen before, it should be considered the same as numbers that are already part of the call log.
Bug: 34672501
Test: unit
PiperOrigin-RevId: 179628789
Change-Id: I422c24c444958dd8842aa14cf8a8069da5cec2c1
|
|
When a new voicemail is received, it is written in the voicemail table by the Voicemail service. However the new voicemail will not get updated/shown in the New Voicemail UI as the annotated call log would be stale. This CL ensures that when the voicemail is added, the annotated call log is marked dirty and refreshed. This way the new voicemail will be shown in the new voicemail UI. Since a new voicemail is also added, we want to make sure the headers for "today" and "older", their positions are also updated accordingly.
Bug: 64882313
Test: Unit tests
PiperOrigin-RevId: 179623267
Change-Id: I5dfc84f62f9f37c57ffb2dbbe7e848a58306a19d
|
|
Implement the basic bottom sheet that displays name, location add to contacts, send a message and copy number option.
Bug: 64882313,70682949
Test: Unit test, additional unit tests in the next CL that will implement calling from bottom sheet.
PiperOrigin-RevId: 179212401
Change-Id: I23281587a0d42cea595e4dc1608f997036e2dbd0
|
|
sheet
These three modules are to be shared between the voicemail and call log bottom sheets. This CL refactors it such that the functions take in generic parameters instead of coalesced annotated call log row so that they can be used by the voicemail tab.
Bug: 64882313,70682949
Test: Existing tests
PiperOrigin-RevId: 179110882
Change-Id: I2e8edafbf50e51d2299bfbcb95957e40c1b366ec
|
|
Bug: 34672501
Test: unit
PiperOrigin-RevId: 179012381
Change-Id: Icb78c73e243702a71f1a48692151b696ae2ac95f
|
|
Bug: 70218437
Test: CallDetailsActivityTest, CallDetailsCursorLoaderTest, ModulesTest
PiperOrigin-RevId: 178918820
Change-Id: Ib8034190550e8ca8e6e7fd9ce521bfadc73e834f
|
|
We're not going to use the "cached" columns from the system call log any longer, and instead will write them using PhoneLookup.
Bug: 34672501
Test: unit
PiperOrigin-RevId: 178788155
Change-Id: I9255dd3cb727eef3b45bc05aeb3c6fd6fd513d63
|
|
When an activity is killed by the system, a new UiListener is created and attached, but it doesn't have its executor set. Rather than save it as an instance field, just get the Ui executor when needed, by passing the context to the listen method.
Bug: 70510707
Test: unit and manual via "don't keep activities" developer option
PiperOrigin-RevId: 178668338
Change-Id: I5360b525377edab5f3a117d1f0f50bf6da6a6f0c
|
|
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
|
|
Required adding applyBatch functionality to PhoneLookupHistoryContentProvider so that the updates can be performed in a transaction. This code was just copied and modified from AnnotatedCallLogContentProvider.
Also removed the trigger which limited the size of the PhoneLookupHistory, since we now delete rows from PhoneLookupHistory when the last occurrence of a number is deleted from AnnotatedCallLog. Since AnnotatedCallLog is bounded to 1000 rows PhoneLookupHistory is now indirectly bounded by that as well.
Bug: 34672501
Test: unit
PiperOrigin-RevId: 178323464
Change-Id: I233163fe70641b0e4b1d4c5c0e8970ad0b4b167d
|
|
We were previously calling get() which can cause deadlocks.
Bug: 34672501
Test: existing
PiperOrigin-RevId: 178192772
Change-Id: Id9088b12b765307c778d101d847cb1016ea828d1
|