summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog/database
Commit message (Collapse)AuthorAgeFilesLines
* Dialer: Fix proto warning with optmize for liteLuca Stefani2020-05-012-2/+0
| | | | | | | | | | * option optimize_for = LITE_RUNTIME is ignored in proto 3+ * Instead we should use the java_lite compiler via the LOCAL_PROTOC_OPTIMIZE_TYPE flag which defaults to lite in java projects Test: m Dialer, no warnings Change-Id: I552f5895bbe8192a4ae870bb48e5ef6a9e7e8c78
* Remove redundant @TargetApi, @RequiresApi and @SuppressWarningslinyuh2018-06-281-3/+0
| | | | | | Test: Existing tests PiperOrigin-RevId: 202589482 Change-Id: I6982e4069d30032bf46caf3c9984dfc0e7196f6f
* Also ignore IllegalStateException thrown by SQLiteClosable when coalescing ↵linyuh2018-06-281-19/+65
| | | | | | | | fails. Test: Manual PiperOrigin-RevId: 202499434 Change-Id: Ie41eeb782072d82c5613b44be99649f43807498d
* Enforce AnnotatedCallLog column constraints in its content provider.linyuh2018-06-203-10/+159
| | | | | | | Bug: 110185399 Test: AnnotatedCallLogConstraintsTest, AnnotatedCallLogContentProviderTest PiperOrigin-RevId: 201444134 Change-Id: I105ec7a201265ee5e7708ffb9a4b66b4cef01174
* Improve Coalescer performancelinyuh2018-06-182-281/+233
| | | | | | | Bug: 77813585 Test: CoalescerTest PiperOrigin-RevId: 200764878 Change-Id: I7e3d9c3b4eab1e5de12a108b82c04704550c8c5e
* Default column IS_VOICEMAIL_CALL to 0 in the annotated call log.linyuh2018-06-112-25/+41
| | | | | | Test: AnnotatedCallLogDatabaseHelperTest PiperOrigin-RevId: 200134473 Change-Id: I1d3f43630b6cd7753ef8b72a7a02d119c8ab75cc
* Have Coalescer return CoalescedRow protos directly.linyuh2018-06-112-124/+60
| | | | | | | Bug: 77813585 Test: CoalescerTest, NewCallLogAdapterTest, NewCallLogViewHolderTest PiperOrigin-RevId: 200086621 Change-Id: I8f79359a5972c578ae439aaf33233900b0606dc8
* Move coalescing logic out of AnnotatedCallLogContentProvider.linyuh2018-05-113-69/+144
| | | | | | | Bug: 79232964 Test: CoalescerTest, AnnotatedCallLogCursorLoaderTest, and manual testing. PiperOrigin-RevId: 196321995 Change-Id: I016bf28e0c09cf4fee5bc5a9115335fb35b7f7e9
* Implement EmergencyPhoneLookup for checking if a number is an emergency number.linyuh2018-05-091-1/+4
| | | | | | | Bug: 71719349 Test: EmergencyPhoneLookupTest, PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 195691356 Change-Id: I705721fa6e6a22e5b2d541578b83196181c895eb
* Add column for call mapping id to AnnotatedCallLog database.wangqi2018-05-042-3/+34
| | | | | | | | | | | This will ensure call mapping used by RTT etc. won't break when migrating to new way to generate the call mapping id since they are stored in the database already. Bug: 77717594 Test: unit tests PiperOrigin-RevId: 195132562 Change-Id: Ieb52489b19b37ac2701967eb570a96457ceed4c0
* Show Cequint info in the new call log.linyuh2018-04-261-1/+5
| | | | | | | Bug: 70989584 Test: PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 194494486 Change-Id: I706802c000da953f962786bd07ca5da2fd59dc8a
* Improved support for short codes in Coalescer.zachh2018-04-171-3/+1
| | | | | | | | | | | | 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
* Improved handling of IS_READ in new call log.zachh2018-04-171-2/+2
| | | | | | | | | | | 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
* Remove column PHONE_ACCOUNT_LABEL and PHONE_ACCOUNT_COLOR from the annotated ↵linyuh2018-04-162-20/+2
| | | | | | | | | call log. Bug: 77808449 Test: NewCallLogViewHolderTest + existing tests for the call log framework PiperOrigin-RevId: 193086917 Change-Id: I39244c69acf1d261699610f6010c0cf147ca3492
* Add RTT badge to new call log.wangqi2018-04-111-0/+5
| | | | | | | Bug: 77717594 Test: ContactPhotoViewTest PiperOrigin-RevId: 192492913 Change-Id: I6db36017fde2cf9dca580d60d5c88bf2ad2dfe16
* For an audio call log entry, add a video call option in the bottom sheet if ↵linyuh2018-04-101-1/+4
| | | | | | | | | the capability is present. Bug: 70989603 Test: ModulesTest PiperOrigin-RevId: 192302145 Change-Id: I3162e7d22223aa02709d0d401c70c6fc37a00e3b
* Separate calls with the video feature from others when coalescing rows in ↵linyuh2018-04-031-15/+20
| | | | | | | | the new call log. Test: CoalescerTest PiperOrigin-RevId: 191376690 Change-Id: Id5939175edddd164a1b477319fb20e6d2a9671a9
* Increase minSdk to 24.calderwoodra2018-03-261-1/+1
| | | | | | | | | | | | | | | | 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
* Added "clearData" to CallLogDataSource and PhoneLookup interfaces.zachh2018-03-205-10/+94
| | | | | | | | | | | 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
* Implement VoicemailDataSourcetwyen2018-03-193-9/+29
| | | | | | | | | | | | | 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
* Added timing to some more AnnotatedCallLog operations.zachh2018-03-021-0/+4
| | | | | | | | | | | | | | | | | 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
* Log contact source when reporting spam from the new UI.linyuh2018-02-281-1/+6
| | | | | | | Bug: 73780748 Test: PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 187404074 Change-Id: I1db81304909fbf63aba00088c12e18922042c3b1
* Added some logcat and metrics logging for new call log.zachh2018-02-222-3/+1
| | | | | | | Bug: 70989667 Test: unit PiperOrigin-RevId: 186726722 Change-Id: I1a68ae1e01b101b1624e4f5ede1a8d639d481ad2
* Show icon and label for a spam number in the new call log.linyuh2018-02-091-1/+5
| | | | | | | Bug: 73077158 Test: CallLogEntryTextTest, GlidePhotoManagerImplTest, PhoneLookupInfoConsolidatorTest PiperOrigin-RevId: 185017362 Change-Id: I113472482da2213d17a847054272a22249edc578
* Add Support for transcription state in the AnnotatedCallLoguabdullah2018-02-022-1/+13
| | | | | | | | | 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
* Added number presentation to AnnotatedCallLog.zachh2018-01-263-2/+16
| | | | | | | | | Updated the new call log UI to properly show text based on the presentation. Bug: 70989592 Test: unit PiperOrigin-RevId: 183414195 Change-Id: I2123f37cd3c733060125b6e894c1a80be4193ad6
* Remove non call log dependencies on PhoneAccountUtiltwyen2018-01-251-3/+3
| | | | | | | | Methods moved to TelecomUtils Test: Unit tests PiperOrigin-RevId: 183305626 Change-Id: Idd6604e58c06a36066bd49870849dd71747969c6
* Add skeleton for SpamPhoneLookuplinyuh2018-01-241-3/+10
| | | | | | | Bug: 70989534 Test: SpamPhoneLookupTest PiperOrigin-RevId: 183174131 Change-Id: I46e819a0710ccce293195594e2f249e91d74551a
* Show Icon and label for blocked numberstwyen2018-01-241-0/+3
| | | | | | | | | 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
* Don't garbage collect voicemails in AnnotatedCallLog.zachh2018-01-232-17/+39
| | | | | | | | | | | | | 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
* Moved coalesced_ids.proto and number_attributes.proto to ↵zachh2018-01-232-0/+91
| | | | | | | | | | 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
* Changed PhoneLookup#lookup to accept a DialerPhoneNumber.zachh2018-01-221-1/+1
| | | | | | | | | | | | | | | | | 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
* Improved support for post dial digits in new call log.zachh2018-01-191-9/+4
| | | | | | | | | | | | | | | -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
* Relax number matching when coalescing rows in new call log.zachh2018-01-171-1/+1
| | | | | | | | | | | 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
* Merge PhoneLookupDataSource results into a proto in annotated call log.twyen2018-01-112-84/+6
| | | | | | | | 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
* Fixed bug in handling of empty numbers in new call log.zachh2018-01-111-3/+3
| | | | | | | | | | | | | 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
* Added RealtimeRowProcessor.zachh2018-01-092-2/+11
| | | | | | | | | | 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
* Simplifying implementation of the coalescing logic in the new call log.linyuh2018-01-081-23/+28
| | | | | | | Bug: 70388714 Test: Existing tests PiperOrigin-RevId: 181231987 Change-Id: I0c7386f60e92f7087f9f5ad1b1f454b43b7227e7
* Add column CAN_REPORT_AS_INVALID_NUMBER to the annotated call log.linyuh2018-01-042-2/+11
| | | | | | | | | This column is filled by PhoneLookupDataSource using PhoneLookupInfo#PeopleApiInfo. Bug: 70218437 Test: AnnotatedCallLogDatabaseHelperTest, PhoneLookupDataSourceTest, RowCombinerTest, CoalescedAnnotatedCallLogCursorLoaderTest, PhoneLookupSelectorTest PiperOrigin-RevId: 180839783 Change-Id: I8d5ddb940670724fd4bf6dd6a50dcf408f91da9d
* Add assisted dialing to the new call log.erfanian2018-01-021-0/+22
| | | | | | | Bug: 70506228 Test: new unit tests PiperOrigin-RevId: 180610636 Change-Id: I7f498df1a529737bf8473584836bdc3e04a5043c
* Updated writing of PhoneLookup columns in annotated call log.zachh2017-12-121-8/+8
| | | | | | | | | 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
* In the coalesced call log, replace column NUMBER_CALLS with a new column ↵linyuh2017-12-082-9/+31
| | | | | | | | | | | 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
* Implemented PhoneLookupDataSource#onSuccesfulFill.zachh2017-12-071-17/+23
| | | | | | | | | | | 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
* Added bindings for ListeningExecutorServices.zachh2017-12-071-7/+5
| | | | | | | | | Use them where appropriate. Bug: 34672501 Test: existing PiperOrigin-RevId: 178182298 Change-Id: If454225e0d636c7cb14b5af02d46780d7732abf0
* Switched CallLogDataSource interface to be Future based.zachh2017-12-071-6/+23
| | | | | | | Bug: 34672501 Test: existing PiperOrigin-RevId: 178038086 Change-Id: I1230992ad04bb4415f5a29bd15802d23dff88012
* Add DATA_USAGE column to the annotated call log.linyuh2017-12-072-0/+8
| | | | | | | | | Data in this column are copied from the DATA_USAGE column in the system call log (android.provider.CallLog.Calls#DATA_USAGE). Bug: 70218437 Test: AnnotatedCallLogDatabaseHelperTest, SystemCallLogDataSourceTest PiperOrigin-RevId: 177999609 Change-Id: I64d70734e8e85767f1e93a4a22ce2aae6c2168a1
* Added PhoneLookupDataSource and implemented isDirty.zachh2017-11-181-0/+8
| | | | | | | | | Also extracted FakePhoneLookup to a testing package. Bug: 34672501 Test: unit PiperOrigin-RevId: 175923790 Change-Id: I866708a676e788051b369a024344967975c05979
* Set total duration for NUI voicemail media player seekbaruabdullah2017-11-181-1/+1
| | | | | | | | | The duration of the voicemail shown in the seekbar/media player (upon expanding) should be the same as the duration shown when the voicemail view holder is collapsed. Both values are retrieved from the same source (VoicemailEntry). Bug: 64882313,68382421,69268144 Test: Unit Tests PiperOrigin-RevId: 175712662 Change-Id: I70496c004d52deb1793e6d6354b0ec79bf4c4398
* Added URI for selecting distinct phone numbers from AnnotatedCallLog.zachh2017-11-182-4/+46
| | | | | | | | | This will be used in the PhoneLookupDataSource. A separate URI is necessary because the content provider APIs do not provide a mechanism for querying using the "distinct" keyword. Bug: 34672501 Test: unit PiperOrigin-RevId: 175706603 Change-Id: Ia455a18d10afb116d26f69e8b0c7493f4f877d0b
* Use type TEXT instead of STRING for annotated call log columns.zachh2017-11-121-10/+10
| | | | | | | | | | | The declared type of "STRING" has an affinity of NUMERIC, not TEXT per: https://sqlite.org/datatype3.html Bug: 34672501 Test: existing PiperOrigin-RevId: 175237916 Change-Id: I220a35f3060eb60870f6e930c821bdb2f6d2c7ed