summaryrefslogtreecommitdiff
path: root/java/com/android/dialer
AgeCommit message (Collapse)Author
2017-08-09Add logging to Dialer Key/Value backup implemenation.uabdullah
For Dolly our logging proved to be immensely valuable tool to identify the the framework bug. We were able to co-relate the issue with the backup and restore logging. We are adding this again for Key Value backup and restore. Bug: 64363054 Test: DialerPersistentBackupAgentTest PiperOrigin-RevId: 164754911 Change-Id: I15f97e1a2301703ced85df8f808cf20aae59c25e
2017-08-09Clean up geo location data usage from libphonenumber.wangqi
This change will centralize getting geo location data for a phone number thus enable us to disable it completely by compiling it out. Bug: 64394643 Test: none PiperOrigin-RevId: 164754103 Change-Id: Ie4b526a05f8b4445ee0507683cd238659273c953
2017-08-09Added remote directories to the new search fragment.calderwoodra
When Dialer users search for contacts, if they have an enterprise account on their device, they can also search for enterprise/remote contacts. This change adds the directory queries/results to the new search fragment. screenshot: http://screen/S9mpsvnwtCv Bug: 37209462 Test: javatests/.../searchfragment/remote PiperOrigin-RevId: 164681686 Change-Id: I88bc5bceb4c745d8f6f7d9651929d49100283756
2017-08-09Abstracted search cursors in SearchCursor interfacecalderwoodra
This change should help with separating concerns between each module in searchfragment/. Now cursors returned from each CursorLoader are expected to insert their own headers if they want to. This also simplifies the logic in SearchCursorManager and allows for easier implementation of new cursors. Future CLs will include abstracting ViewHolders and CursorLoaders. Bug: 37209462 Test: existing PiperOrigin-RevId: 164676135 Change-Id: Ib50090c3990c903cfd78f3a168032edd88f0fe56
2017-08-09a11Y for select all buttonuabdullah
Add content description for select all button. Screenshot: http://screen/kmYYExHOuTp Bug: 63917180 Test: Manual, refer to screenshot PiperOrigin-RevId: 164672361 Change-Id: If34f754f68824664270d7a76b1cb17da2f8ef01c
2017-08-09Implement Selectiontwyen
Selection can be used to make complex SQL queries more readable, and pass around incomplete selections for appending. See cl/162013087 for usage Test: SelectionTest PiperOrigin-RevId: 164618236 Change-Id: Ice035211f6b02858255a9e7d18215c9282bf28e9
2017-08-09New Search Fragment no longer crashes when the device is rotated.calderwoodra
In the new search fragment, if you rotated the device, a crash would occur because we were prematurly closing the cursors on our own. Since the cursors are managed by CursorLoaders, we don't actually need to close the cursors ourselves and can leave that to the framework. Bug: 37209462 Test: SearchFragmentIntegrationTest PiperOrigin-RevId: 164562508 Change-Id: Id33274ccb23d026dab352e754a5f03ab834d9d14
2017-08-09Implement Dialer K/V Backup and Restore.Eric Erfanian
This CL ensures that Restore works correctly (to unblock us for ODR system image). As restore happens on the system image and the logic cannot be updated via PlayStore, this CL is time sensitive, to ensure we can get it into the ODR system drop. This CL only backups com.android.dialer.app_preferences.xml for now, but can always be changed to update more shared preference files when needed via an playstore update. Since we are using PersistentBackupAgentHelper, we don't have to worry about not being able to restore additional backed up shared preference files from the future, as PersistentBackupAgentHelper will allow us to restore all the shared preferences that were ever backed up via Key/Value. Currently I added an end to end unit test, and tested restore via "adb shell bmgr restore com.google.android.dialer", which restored the stored data sets. A follow up CL will include additional files to backup and impression logging. Bug: 64363054 Test: DialerPersistentBackupAgentTest PiperOrigin-RevId: 164524465 Change-Id: I5bd65215a42744ba4149a9359e443679306b6cc0
2017-08-09Remove stale TODO.erfanian
Test: NONE PiperOrigin-RevId: 164524149 Change-Id: I7ab941d2d96093647dda3e5321776f43da59ab2b
2017-08-09Move TelphonyManagerCompat outside of contacts/common.erfanian
This class will be used for Assisted Dialing. #turndowncontactscommon Bug: 64205446,37208802 Test: TAP PiperOrigin-RevId: 164510740 Change-Id: I5dec67d2182b33bf2057953aab69e3b561af5708
2017-08-09Added permission revoked screen for new search fragmentcalderwoodra
screenshot: http://screen/WpQJZ0Xy1gi Bug: 37209462 Test: NewSearchFragmentTest PiperOrigin-RevId: 164407405 Change-Id: I3c66dc289524573e687266217b57b19a8ded8c9c
2017-08-09New search fragment now animates and moves with the search box and dialpad.calderwoodra
video: https://drive.google.com/open?id=0B2Hce9qilHmvYTlqVGU0OTNxNjQ Bug: 37209462 Test: SearchFragmentIntegrationTest PiperOrigin-RevId: 164319452 Change-Id: Icc5669be87e97ba5d0e23fc99bada28ca7d2335a
2017-08-09Update Directory POJO to use AutoValue and removed type attribute.calderwoodra
Bug: 37209462 Test: RemoteDirectoriesCursorLoaderTest PiperOrigin-RevId: 164295668 Change-Id: I5d9c54fa748d19f09b62a33ff12a7de8a71d64d3
2017-08-09Remove Dialer Backup and Restore Codeuabdullah
We want to clean up all the Dialer Backup and Restore. This includes the existing Dolly backup code for settings/preferences (causes a crash) and the Hangouts K/V Backup (does not work). The idea is to just have a clean simple K/V backup and restore for dialer, which will be in a follow up CL. Bug: 64363054 Test: Manual. Builds successfully. PiperOrigin-RevId: 164225991 Change-Id: Ic71cfaeed37a5c9f0002d8d12db757f19c0ddf1e
2017-08-04Updated new search filtering criteria to better match current implementationcalderwoodra
There were two outstanding issues in the new search criteria: - Contacts named "Brandon" would be filtered out by query "b" - Contacts named "Bob" would NOT be filtered out by query "o" This isn't how our current implementation of search worked and these issues are resolved by this change by ignoring case sensitivity and doing suffix checks on names instead of #contains checks. Bug: 37209462 Test: QueryFilterUtilTest, SearchContactCursorTest PiperOrigin-RevId: 164214145 Change-Id: I367ed0d862809d28491ae53e7dd8e1a24c824ec9
2017-08-03Call Composer tabs hidden from a11y when hidden from sight.calderwoodra
When the share and call button was visible, users using talkback could reach the media icons hidden underneath. Bug: 62649310 Test: manual PiperOrigin-RevId: 164088069 Change-Id: Ic9cd23a78790c119d6d4d2f6e9d6e62c24e20120
2017-08-03Devices in other locales no longer crash in GalleryComposerFragment.calderwoodra
Devices with other default locales would translate '1' and this would cause an no such column exception in SQLite. Bug: 64137857 Test: manual PiperOrigin-RevId: 164048836 Change-Id: I4ecd070f8d38a82ca6567fb23b660d5ebe1f1f18
2017-08-03Getting network color in call details now assumes a hexidecimal valuecalderwoodra
Previously when setting the color of a network in call details, we assumed the values were stored as String resource values when in fact they were hexidecimal integer values. Now we directly set the color instead of doing a resource lookup. screenshot: http://screen/d3tQNGBkKNX Bug: 64300111 Test: CallDetailsActivityTest PiperOrigin-RevId: 164042030 Change-Id: I858e3665253139b8aab4e4c063bfc4c419f33cc9
2017-08-02Prevent new voicemail notifications from being cleared if a voicemail is ↵twyen
expanded Binding a view holder to an expanded voicemail will attempt to mark the voicemail as read and all voicemails as old. If a new voicemail is received when a voicemail is expanded, the new voicemail will cause a rebind and the notification will be canceled right away. In this CL, voicemails will only be marked as old if the expanded voicemail was not already read. Bug: 64211487 Test: CallLogAsyncTaskUtilTest PiperOrigin-RevId: 163912108 Change-Id: Ibe82fe85984d84aad1a674219ca984fdd10c6d89
2017-08-01Fix the blurry contact photo.wangqi
A high res sync update request should be sent to trigger the photo sync. Without this request, the contact photo will stay in low res until user action to trigger it in other ways such as click on quick contacts or open it in contacts app. Bug: 62390496 Test: manual PiperOrigin-RevId: 163905019 Change-Id: Iaf47934df02dc15f75e806505dfd425402fde07c
2017-08-01Prevent voicemail from playing when call is in progresstwyen
Visual voicemail playback uses the phone stream, which will cause all sort of audio conflict in a call. This CL forces voicemail playback to fail if a call is in progress. Bug: 63584851 Test: manual - play voicemail while in call, "Cannot play voicemail" shown. PiperOrigin-RevId: 163899919 Change-Id: I7350f6904b5a76f9c21a1d541f3c1f39271a5608
2017-08-01Handle null in voicemail config statustwyen
The VVM tab is shown when there are more then one "active" voicemail sources in the voicemail status table. A configuration status of 0 is active, and 1 is inactive. If the configuration state is null, getInt() will return 0 which maps to active, and incorrectly showing the VVM tab. In this CL, null is checked first. The helper class is also made static. Bug: 64122858 Test: VoicemailStatusHelperTest PiperOrigin-RevId: 163858350 Change-Id: I3fca52aaca92492f1969092e2d9f443677cb3b8d
2017-08-01Pressing the ime action button with no text no longer crashes PostCallActivity.calderwoodra
Bug: 64172993 Test: manual PiperOrigin-RevId: 163764485 Change-Id: Id66bc075e98cae0bcdb42e1ad82b403e7e0ae0d1
2017-08-01Do not show "Call" option for Restricted / Private numbersroldenburg
These numbers cannot be called back so don't show the button. Bug: 64103891 Test: GoogleCallLogAdapter PiperOrigin-RevId: 163758778 Change-Id: Ic5d9bd3abe38ff8a9ac84da6c453c924cb1dd6ca
2017-08-01Log bubble expansion and return to call.yueg
Test: BubbleTest PiperOrigin-RevId: 163758306 Change-Id: I391fe411822f01cf29075eab7cf42aeb676fd424
2017-08-01Fix crash placing Fi calls on dogfoodroldenburg
We added a new proguard flag recently and for some reason it is causing issues with Fi calling on dogfood builds. I'm fixing the crash here and will work with Zach to determine why this is causing issues. The new flag that is causing trouble was added in http://cl/163521622 Bug: 64206675 Test: manual (mulitple builds confirming no longer crashes) PiperOrigin-RevId: 163736443 Change-Id: Id30188699f7e9a40fbe23df18700b7104e1b551a
2017-08-01Save dismissed state for legacy voicemail notificationtwyen
TelephonyManager will resend legacy voicemail notifications during connectivity changes with a "is_refresh" flag. Such notifications has already been shown before and should not alert the user. Previously the notification will be set to onlyAlertOnce, but if the user dismissed it it will be shown again. In this CL, if the notification is dismissed, the state will be persisted and the notification will not be shown again. The state will be cleared when a new voicemail arrived and the user will be notified again. Since telephony sends is_refresh=false during boot up, the state will also be cleared with a reboot. Bug: 62229933 Test: LegacyVoicemailNotificationReceieverTest PiperOrigin-RevId: 163728161 Change-Id: I7ec6b5a88fed26e0a4459b8803eeba9a37b7b32b
2017-08-01Implement Duo disclosuretwyen
The duo disclosure takes priority over the nearby places, and will be shown if all the conditions are met: Disclosure enabled by flag show_duo_disclosure (default:false) Duo module is enabled Is in the call log tab Disclosure is not dismissed. The auto dismiss after 24 hours is not implemented. The help center article points to dialer_duo_disclosure which is not created yet. Test: GoogleCallLogAdapterTest PiperOrigin-RevId: 163714903 Change-Id: I724c6961af2912108c81d69a23d84682b721a58c
2017-07-28Don't enable strict mode in non-bugfood builds.zachh
There were some calls to StrictMode#enableDefaults in our codebase that were not guarded by bugfood checks. In testing, #enableDefaults causes warnings to be printed that otherwise would not. This CL makes it so that we never call enableDefaults on non-bugfood builds, and cleans up and consolidates our usage of strict mode logic by introducing a new class called DialerStrictMode. Test: none PiperOrigin-RevId: 163521622 Change-Id: I841b4198a5dd6084ee104dc6907165e3379d0451
2017-07-28Fix NPE and ClassCastException in logging People API lookup error.yueg
Logger.get() returns a LoggingBindingsStub object instead of a LoggingBindingsImpl object under strict mode, and we should not log when it happens. WANT_LGTM=kedars LOG_STORAGE_INCREASE(GB/week): 0 Test: manual PiperOrigin-RevId: 163404058 Change-Id: Ibd466a811126c45eb26bc033367cc86a77066b3f
2017-07-27Center quickContactBadge instead of cropping.erfanian
Use the drawable dimensions to control clipping. Before: Adjusting the screen size from default to largest would trigger a view reflow. However, because the bitmap asset was already cached, and the rounding of the tile was based on the bitmap size, the new, larger drawable would only undergo a partial circular crop. Now: We scale the image uniformly and center it. Also, use the drawable dimensions to control clipping dimensions. Bug: 63864703 Test: manual PiperOrigin-RevId: 163376680 Change-Id: Ic678dff2b18d3308c859818f187a42afd6563e10
2017-07-27Handle null phone account handle for calllog filteringtwyen
cl/163140580 filters out audio call from Duo, but will also remove fi voicemails because fi writes null phone account handle. null NOT LIKE x returns null. null OR x returns x. This CL limits the filter only to the call log, and handles the null phone account handle. Bug: 64060628 Test: manual, leave voicemails in fi. Automated tests in a future CL. Test call log database in progress(see cl162013087) PiperOrigin-RevId: 163284363 Change-Id: I69ba6cbadbd1a02f05405ca0f5273b0a5ea0e5e9
2017-07-27Do not show voicemail transcription ToS if feature is disabledroldenburg
We'll want to cherry-pick this onto v11. Bug: 64073371 Test: manual, verified with QA across multiple scenarios (Fi, Verizon, forced flag enabled) PiperOrigin-RevId: 163282286 Change-Id: I4b9456ec9a8ed978e93866a5c9dcab46848fee58
2017-07-26Handle null number on row expandmaxwelb
As discovered in b/63711486 it's possible for the number to null when we expand a call log row. Since the EnrichedCallManagerImpl checks that the number isn't null when we check capabilities, this crashes when EC is enabled. This CL fixes the issue by checking for the null value and working around it as needed. Since the DialerContact proto requires non-null numbers, I had to protect it's call as well. There's no affect on CallDetailsActivity and CallComposerActivity since the proto will return the empty string if number is unset. Bug: 63711486 Test: GoogleCallLogAdapterTest PiperOrigin-RevId: 163225329 Change-Id: Id30ad5076523987f1cc93b803d52e85daa6c0e20
2017-07-26Added cursor loader to load contacts from a remote directory in contact search.calderwoodra
When Dialer users search for contacts, if they have an enterprise account on their device, they can also search for enterprise/remote contacts. This change adds the cursor loader needed to get a list of contacts from a specific remote directory. Bug: 37209462 Test: RemoteContactsCursorLoaderTest PiperOrigin-RevId: 163154108 Change-Id: Ieae2cb2c03e759d7ed6cfdfa2f72a4190d8b844d
2017-07-26Filter out Duo audio callsroldenburg
Without this CL, Duo audio calls show in the Dialer call log and will either start phone calls or Duo video calls based on Duo integration being available or not. Carriers do not want OTT audio calling in the Dialer call log so we should filter the audio calls out. Bug: 63089358 Test: Manual: Placed duo audio and video calls, verified they showed without the patch, verified correct calls were filtered out with it. Will want QA verification over other test scenarios including multi-sim if we were to put this into OC-DR. PiperOrigin-RevId: 163140580 Change-Id: I83c3659f6c356522b62d9ced2002a808ea958c95
2017-07-26Added cursor loader to load the list of remote directories in contact search.calderwoodra
When Dialer users search for contacts, if they have an enterprise account on their device, they can also search for enterprise/remote contacts. This change adds the cursor loader needed to get the list of all remote directories associated with the accounts on the device. Bug: 37209462 Test: DirectoryCursorLoaderTest PiperOrigin-RevId: 163139517 Change-Id: If5e626507d5c337633a678fff5e8dac59f85658e
2017-07-25Refresh capabilities when temporarily unavailablemaxwelb
See go/ec-temp-unavailable. This CL fixes the issues when we get enriched call capabilities for users who are temporarily unavailable. Bugle sends an indication that this is the case through the ACTION_CALL_CAPABILITIES_UPDATE intent, which is saved as part of the capabilities. When users click on a call log row, we check if the capabilities were temporarily unavailable and if that's the case, we request the capabilities again. This ensures that we don't cache the temporarily unavailable capabilities forever. manual Bug: 62609419,37726219 Test: EnrichedCallManagerImplTest, EnrichedCallBroadcastReceiverTest, PiperOrigin-RevId: 163126355 Change-Id: I45be6f883d9c6596d20382250c220a90fbf5e996
2017-07-25Fixed bug where app could crash when clearing call history.zachh
Bug: 63686780 Test: ClearCallLogDialogTest PiperOrigin-RevId: 163096437 Change-Id: Ifc416b8c0ff1baa6ddbef11c26b548af2eb3fc64
2017-07-25Added RecyclerView.ViewHolder for remote contacts in search list.calderwoodra
When Dialer users search for contacts, if they have an enterprise account on their device, they can also search for enterprise/remote contacts. This change adds the viewholder that shows these contacts to the user. Bug: 37209462 Test: RemoteContactViewHolderTest PiperOrigin-RevId: 162793301 Change-Id: Ifa409f49c8a0069b0753a138f4762830921cb3f7
2017-07-25Check for contacts permission before mutating contacts.erfanian
Before: PhoneNumberInteraction only checked if it could Read CONTACT. This resulted in a crash when setting super primary number preferences. After: PhoneNumberInteration checks for R/W. Any missing, required permissions are now granted. Steps to reproduce: 1) Add a contact with two different numbers. 2) Mark that contact as a favorite. 3) Long press on the dialer icon, long press on the contact, and add them as an icon to your screen. 4) Tap on the icon 5) Grant contact permissions. 6) App crashes. Bug: 63668172 Test: on device, unit tests PiperOrigin-RevId: 162761620 Change-Id: Ic9aefbb8101bc73294eb871cc9684b0464d4bdcd
2017-07-25Fix distorted view of call history.wangqi
This is caused by no background color is set for the call log activity. This is regression caused by cl/162392495. Bug: 63899078 Test: manual PiperOrigin-RevId: 162758117 Change-Id: I3fbeffa7e5ba2a1149c425c00384ed9dbb330549
2017-07-25Converted a few straggling instances of FallibleAsyncTask to DialerExecutors.zachh
This is an effort to eventually delete FallibleAsyncTask, since people still occasionally use it by accident. There are still some instances of FallibleAsyncTask in p13n code which will be cleaned up in a later CL. Test: existing PiperOrigin-RevId: 162633637 Change-Id: I79b57dc6284952145f62f556799d15a31888bdea
2017-07-25Fix non-normalized number bug with FuzzyPhoneNumberMatchermaxwelb
This CL fixes a bug with the FuzzyPhoneNumberMatcher implementation. The logic should be that if the last 7 digits of two numbers match, we treat them as the same. The issue was that if we found digits that didn't match between the number, we reported them as not matching, even if they had 7 digits in common. This CL also makes some quality of life changes: - Renames FuzzyNumberMatcher to FuzzyPhoneNumberMatcher to match the class name. - Abstracts the logic of the FuzzyPhoneNumberMatcher into another well named method, so it's more clear how the code works. While I didn't check too carefully, I believe this will also help out issues with capability flakiness in: - b/62609419 | maxwelb | RCS very unstable when on cellular. Bug: 63564400,62609419 Test: FuzzyPhoneNumberMatcherTest PiperOrigin-RevId: 162552340 Change-Id: Ie091d985a34a16000750f6050bde6bb0ea7da4e5
2017-07-25Removed duplicate quick contact string.calderwoodra
Quick contact descriptions are added in the ContactPhotoManager, so we can remove this string duplicate and its only use. Test: manual talkback testing PiperOrigin-RevId: 162514532 Change-Id: Ic8345a30b6d69017e72fffa1469b96b10e69cdf8
2017-07-25Pause voicemail playback when headphone is unpluggedtwyen
Bug: 34512128 Test: VoicemailAudioManagerTest PiperOrigin-RevId: 162505938 Change-Id: Ie097c0e04562ea5bf915ec61cd686b5ae5e1791c
2017-07-25Handle corrupted persistent logtwyen
Previously if the log is corrupted for any reason(interrupted writes, cosmic rays, bad programming skills), the log reader will get an incorrect entry length and try to read a few GB of data. In this CL a prefix and postfix is added to each log entry. If it doesn't match or if the entry length is dubious, the logs will be purged. All existing logs will be purged upon sending feedback as a result of the new format. Bug: 63678731 Test: PersistentLoggerTest PiperOrigin-RevId: 162504759 Change-Id: I85f39fbc6e9738b9fb0a251131b77d8a15fe44f6
2017-07-25Move CallComposerActivity's DialerExecutor to onCreatemaxwelb
As per the documentation, DialerExecutors.createUiTaskBuilder is meant to be called in onCreate. As a side effect of this change, if at some point we support sending both an image and text at the same time, the code will not work. This is not currently planned, so this CL stays simple, rather than adding the complexity of plumbing the old MultimediaData through CopyAndResizeImageWorker. Bug: 63714992 Test: CallComposerActivityIntegrationTest, manually placed EC call PiperOrigin-RevId: 162498272 Change-Id: I710e94284b2235684a27afbfa12ea8ddef0690de
2017-07-25Contacts adapter now checks if cursor is closed.calderwoodra
Bug: 63696987 Test: ContactsAdapterTest PiperOrigin-RevId: 162423318 Change-Id: Ia43bda7857576b4e838372eef79edb1fa233571f
2017-07-25Remove unnecessary background in call log.wangqi
Background in call log fragment is same as the activity. It's unnecessary and only reduces rending performances. Verified by hand that it looks same as before. GPU Overdraw: Before: https://screenshot.googleplex.com/y1HNFiae1j7 After: https://screenshot.googleplex.com/mQFxyWEhkFm Performance test: Before: Total frames rendered: 668 Janky frames: 35 (5.24%) 50th percentile: 7ms 90th percentile: 11ms 95th percentile: 16ms 99th percentile: 73ms Number Missed Vsync: 18 Number High input latency: 1 Number Slow UI thread: 35 Number Slow bitmap uploads: 0 Number Slow issue draw commands: 2 After: Total frames rendered: 736 Janky frames: 32 (4.35%) 50th percentile: 6ms 90th percentile: 11ms 95th percentile: 13ms 99th percentile: 61ms Number Missed Vsync: 15 Number High input latency: 0 Number Slow UI thread: 31 Number Slow bitmap uploads: 0 Number Slow issue draw commands: 3 Test: manual PiperOrigin-RevId: 162392495 Change-Id: I726cd06518d282abe68eb1ff16db82c9a3e6d291
2017-07-25Fixed issue where calls longer than 60 minutes would be truncated.calderwoodra
SimpleDateFormatter cannot display times longer than 60 minutes. If a time is longer than 60 minutes, it will display the time % 60. This change accounts for that and replaces the truncated time with the correct time. Bug: 63709810 Test: CallEntryFormatterTest PiperOrigin-RevId: 162284780 Change-Id: Ib01b135c028b5d59637850e873e5a218f9c39ae8
2017-07-25Fixed '1' dialpad button to be aligned with '2' and '3'calderwoodra
The voicemail icon was rendering at 24 dp with 2dp of padding above it. Removed the padding and reduced the icon to 16dp. screenshots: before: http://screen/Dx2zcVsX10y after (portrait): http://screen/RUnQP8CR65t after (land): http://screen/aKCdMTLkOnU Bug: 62517731 Test: screenshots PiperOrigin-RevId: 162278290 Change-Id: Iaaf65d9bac3920ff1755da85b6f85752654d86b8
2017-07-25Move ContactPhotoManager code and related utilties out of contacts/common.Eric Erfanian
Bug: 37208805 Test: compiler, on device PiperOrigin-RevId: 162268272 Change-Id: I98d63d063b9a4dff6a1b1b7462378ef7d0139bd2
2017-07-25Hide contacts recyclerview when the last contact is deleted.calderwoodra
When a user would delete their last contact, the contacts fragment would show a list with the old contact and the empty contacts background view underneath it. Test: ContactsFragmentTest PiperOrigin-RevId: 162267124 Change-Id: I294f2fe06f08ba6bd31148681647ffe3d536e1bf
2017-07-25Replaced video calling/camera permission dialog with a toast.calderwoodra
Since we are given the camera permission by default for video calling, we don't need to request it from the framework. But, for privacy reasons, we still need to tell the user that we have it. Since we're changing the preference for call composer, v10.1 users will see this this toast again if they've never made a video call. The toast is shown in the following situations: 1. If a user receives a video call 2. If a user makes a video call 3. If the user opens call composer The toast doesn't show: 1. If the user has already seen the toast anywhere before 2. If the user has revoked the system permission and grants it with a system dialog Bug: 36608790,63405063 Test: manual PiperOrigin-RevId: 162258610 Change-Id: Ie93413c9c2e1f083919e7183eb920100b06fd4a4
2017-07-25Merge changes I9b4919e9,I15419178,Ib0f46aed,If592be8cEric Erfanian
* changes: Fix Lightbringer call upgrading when Dialer was not in memory before the call Handle null host for secret code Dont start a service to cancel missed call notifications, use DialerExecutor instead Fix NPE when user click on call log.
2017-07-24Dont start a service to cancel missed call notifications, use DialerExecutor ↵roldenburg
instead We cannot start services while in the background on O. Currently, we start a service to cancel missed call notifications in the onStop of our Activity. This is when we are going into the background so it is not safe (as we have seen from the crashes). Bug: 63633461 Test: CallLogNotificationsServiceTest PiperOrigin-RevId: 162029424 Change-Id: Ib0f46aed848ba0898af8cbee1c114b1e41f3ae32
2017-07-24Fix NPE when user click on call log.wangqi
This is caused by null tag of videoCallButtonView when expanding action view. Bug: 63710739 Test: none PiperOrigin-RevId: 162011496 Change-Id: If592be8cd9b05c369e2ff8b51610d93af48834f1
2017-07-24Update ECCapabilities for temporarily unavailable statusmaxwelb
This CL makes a number of changes to include temporarily unavailable statuses (go/ec-temp-unavailable) as part ECCapabilities. - Adds isTemporarilyUnavailable methods, which will be set by ECBroadcastReceiver upon getting a capabilities update. - Adds a builder to ECCapabilities as there are now 4 booleans that are set upon construction. - Changes the names of getters on ECCapabilities, which was required to get autovalue to correctly generate the builder. - Adds an ALL_CAPABILITIES constant to match the NO_CAPABILITIES constant. Bug: 62609419 Test: Existing tests, ECCapabilitiesTest PiperOrigin-RevId: 161890511 Change-Id: I967a9a14793ac12101ecfed59e5f7af1217faf3b
2017-07-24Use a shared thread pool for spam transport.zachh
Before, we were creating a custom thread pool for spam transport, which isn't necessary. Instead, we can just use an application wide thread pool. Also fixed some instances where we were not clearing the thread stats tag after opening the socket. Test: manually launched app with data cleared and observed no crash PiperOrigin-RevId: 161882076 Change-Id: I39bdd31cf5fa8a974d7535e861ec0716c85986f3
2017-07-24Reorganized dialer traffic stats tags.zachh
We now have googledialer, aosp dialer, and voip registries for traffic tags which should always be used to avoid reusing tags. There are comments in each file about the reserved tag ranges. Note that this moves some traffic tags from one value to another. Traffic data is cleared across device restarts so that shouldn't be a problem. Test: unit tests verify no conflicts PiperOrigin-RevId: 161848949 Change-Id: I5b51e6242494a0bc211748f793a415a5fead5097
2017-07-24Fixes the Hebrew translation for calls <60s in length.calderwoodra
The Hebrew translation had an extra single quotation causing an UnboundQuotationException. This change fixes that temporarily by looking for that specific translation and adjusting it. This change should be reverted once the translation is corrected. Test: release build in hebrew results in no crash, manual test PiperOrigin-RevId: 161730025 Change-Id: Ifb171e3e795e91a93096493ec770ae339a6ed12f
2017-07-24Move contacts common LetterTile class into its own package.Eric Erfanian
A subsequent change will move the ContactPhotoManager related code, eventually enabling the removal of contacts/common. Bug: 37208805 Test: TAP PiperOrigin-RevId: 161724700 Change-Id: Ice0789951ae544f6e27bcdaab0c032b218c83613
2017-07-13Set CallDetailsActivity exported to false.erfanian
Bug: 37846172 Test: on device PiperOrigin-RevId: 161720359 Change-Id: I2df2036c6d9941d37511f450f58682cf07e774b0
2017-07-13Contacts headers now update properly when you fast scroll backwards slowly.calderwoodra
video: https://drive.google.com/open?id=0B2Hce9qilHmvdl8xY1hmcDZ0R3M Test: manual PiperOrigin-RevId: 161713747 Change-Id: I8185ca897a82479ef7c552a1ce6891e31c4c5aad
2017-07-13Adjust call composer for dimensions so all items fit on screen for large dpi.calderwoodra
screenshots: default sizes: before: http://screen/u29zyepX0OM after: http://screen/tXGSUbNfWAE large sizes: before: http://screen/NH3OmGDRyBp after: http://screen/W6DVopCxMUp Bug: 63156716 Test: screenshots PiperOrigin-RevId: 161693857 Change-Id: I8310336080ae080dc586dcf21d4966260880a627
2017-07-13Display correct string for Lightbringer calls in call detailsroldenburg
Without this change, all video calls are referred to as just "video call". This CL uses the Lightbringer interface to allow customizing that text. Before: https://drive.google.com/open?id=0B7uuA4cyYX0xeVZCTGtMUUtoRVU After: https://drive.google.com/open?id=0B7uuA4cyYX0xMnFhbTBXMDI2VW8 Bug: 63138393 Test: CallTypeHelperTest PiperOrigin-RevId: 161692812 Change-Id: I36dc1a1fae96dddee91c5efb8892c4a6c7ef67ca
2017-07-13Resolve NPE in post call send message prompt.calderwoodra
This issue occurs when users are shown a post call snackbar and their shared prefs are updated before pressing "send message". This change resolves the issue by getting the phone number when the prompt is created rather than when the button is pressed. Bug: 62294499 Test: PostCallTest#postCall_UpdatedQuickly_PostCallStartedSuccessfully. PiperOrigin-RevId: 161689241 Change-Id: Ie2c857f6743aa556f993bc3f8e92c8b2b7357c08
2017-07-13Fixed ArrayIndexOutOfBoundsException in Contacts Fragment.calderwoodra
If a user caused their activity to undergo several state changes rapidly, they could get the contacts fragment into a state where it wouldn't have any elements but still call onScrollChange. This would result in calls to getFirstCompletelyVisibleItemPosition returning NO_POSITION (-1) and throw an AIOOBE when attempting to get a row's header value. Bug: 63594129 Test: manual. PiperOrigin-RevId: 161610423 Change-Id: I0c53587a6499c42abe5e51b6ac2b4108c0971545
2017-07-13PostCallActivity edittext is not always visible on all screen sizes.calderwoodra
before: http://screen/DsVrM1vK89e after: http://screen/RzGZvPTXRQb Bug: 63093275 Test: manual PiperOrigin-RevId: 161609906 Change-Id: If53681b9414dd79dba16371f42be437f1afa2729
2017-07-13Fix Call button text alignment in expanded call log itemroldenburg
The Call button may have two lines of text. We were not properly setting the second to GONE in all cases. Note: We don't need to require Google Dialer being the default Dialer for the Duo integration to work. I added this check so removing it doesn't go against any previous well-considered decision. It also enables the Espresso test work without needing a flag to override. Before: https://screenshot.googleplex.com/3YXaZdbQk7k After: https://drive.google.com/open?id=0B7uuA4cyYX0xNThETTJWdTVQQWM Bug: 63062360 Test: GoogleDialtactsActivityTest PiperOrigin-RevId: 161606497 Change-Id: I7526a4fc60b84906cc04563b635eaad9f348415e
2017-07-12Fixed NPE in CameraComposerFragment.calderwoodra
If a user took a picture then quickly closed call composer, when the image was ready we would try to update our view state. Since our fragment is no longer attached, this cuases a crash when we check that getContext() is not null. fragment.getContext is never null in robolectric. Bug: 62687110 Test: manual, cannot test b/c we cannot take photos in Espresso and PiperOrigin-RevId: 161600278 Change-Id: If9bd98578d221fca4bc99ff17a39f917f3a8bcca
2017-07-12Move VideoShareSession to third_party to remove bad cast in VideoShareManagerroldenburg
It was odd that we were casting and was causing some crashes. This CL makes things work more as is typical in Dialer. We previously did not do this because there are some parts of the VideoShareSession which are not open-sourceable. Turns out we can simplify those parts out of the interface. Bug: 63523694 Test: existing tests PiperOrigin-RevId: 161593028 Change-Id: I8f1379fc46f4e9d41413b731787dbf37e0901da9
2017-07-12Tag spam network traffic using TrafficStats.zachh
The dialer app crashes on launch right now when app data is empty, because we fetch the spam list on app start, and we don't tag the network traffic using TrafficStats, which is a strict mode violation. This CL tags spam network traffic using TrafficStats, by providing a custom transport executor for the GRPC channel. All activity on the channel is tagged as spam. This unfortunately required creating a new thread pool. I am not sure if this creates more threads than before, because it is not clear what type of transport executor grpc uses by default. Note that the new thread pool will kill unused threads after 60 seconds so won't consume resources when idle. Bug: 62388129 Test: manually verified app does not crash on launch with empty data. Can add automated tests upon request. PiperOrigin-RevId: 161568882 Change-Id: I99da6ebb649fe1a63d634871ab314d8d910658f9
2017-07-12Remove obsolete wrapper bundle from CallIntent Bundle.erfanian
Add additional null checks during deseriailzation. Bug: 63575857 Test: unit tests, on device PiperOrigin-RevId: 161564824 Change-Id: I54f52e12397adb4473b523325f8c006ff534fbd9
2017-07-12Update AOSP Dialer license Data.erfanian
Test: ondevice PiperOrigin-RevId: 161548092 Change-Id: If4cde06669bc33cca69a9b602f54d873b735c730
2017-07-11Fix NPE in PhoneFavoriteTileView.onClick.yueg
Although we don't know the reason why v.getParent() can be null, we can avoid calling it. Test: manual PiperOrigin-RevId: 161442696 Change-Id: I07af0da9b64fb3fa77b01c0b619837a79d593b67
2017-07-11Make CallLogCache thread safe.wangqi
Methods such as getAccountLabel() is called on different threads which may cause race condition issue. This change also delete CallLogCacheLollopopMr1 since it's not necessary that Dialer is targeting M+. Bug: 63415147,63524435 Test: none PiperOrigin-RevId: 161440757 Change-Id: Ia609c52e53dabdce78ffb4320f4cd66e38112e47
2017-07-11Remove Assert(isAtLeastO) in LegacyVoicemailNotificaitonReceivertwyen
OC preview devices are hitting the assert and skewing crash rate numbers. Bug: 62338925 Test: LegacyVoicemailNotificaitonReceiverTest PiperOrigin-RevId: 161438516 Change-Id: Ib533947d2cd9e9a87ffd9fb629f09f877f683026
2017-07-10Bump version code and name to Dialer v12sail
This CL bumps the version name of Dialer from Dialer v11 to Dialer v12. This CL also bumps the version code from 15***** to 1600000. I've also set 'version_conf_incrementer_max_version_code' at go/dialer-v11 to 1599999. Test: N/A PiperOrigin-RevId: 161418347 Change-Id: I961f22481d813d66b950894b3783e13624de733e
2017-07-10Remove ConfigBindings from DialerBackupAgentuabdullah
We cannot use ConfigBindings as full backups happen with a base Application, not the app's custom subclass. Bug: 63104326 Test: N/A PiperOrigin-RevId: 161398864 Change-Id: I7f559fe7cfd8bfdd65f49efea943f3f75488d1a6
2017-07-10Improve GoogleCallLogAdapterTest to better emulate realityroldenburg
The tests now call through the click listener to expand instead of just calling the expanding method directly. This was done after we had a bug come up inside the click listener that these tests did not catch. The bug: Lightbringer.getPackageName can return null, so when using a stub there was an NPE inside the ExpandCollapseListener. Test: only tests PiperOrigin-RevId: 161121777 Change-Id: Ie58a4c14a32984c183b6159db2076a96cf46b37e
2017-07-10Fix 2 NPEs in CallLogAdapter.yueg
Test: cl/160695183 PiperOrigin-RevId: 160697524 Change-Id: I07127554a968d8dc36c02b522b7536438be7fb90
2017-07-10Move voicemail notification dismissing to VisualVoicemailCallLogFragmenttwyen
The original code is somehow triggering when the VVM tab is not selected. Bug: 62517716 Test: VisualVoicemailCallLogFragment is utterly untestable PiperOrigin-RevId: 160692310 Change-Id: Ia9da8e5aa7dd28f22c46d87dd25ebf6097918a9a
2017-07-06Add video call not available dialog.wangqi
When telecom disconnect the video call with the code of DisconnectCause.ERROR and the DisconnectCause#getReason() of "IMS_ACCESS_BLOCKED", we should show an error dialog to user indicating that video call is not available and providing a option to make a voice call instead. Screenshots: https://screenshot.googleplex.com/YTUGVouoLmj Bug: 33821263 Test: manual, VideoCallNotAvailablePromptTest PiperOrigin-RevId: 160563754 Change-Id: Ie2eb735a92c577b5ae5a5e8b7efa2d699fc964bc
2017-06-30Bump version code for Dialer v11 (again)uabdullah
This CL bumps the version name of Dialer from also bumps the version code from 14***** to 15*****. go/dialer-v10_1 did not have a version_conf_incrementer_max_version_code set, which let it to share the version code increments between v10.1 and v11. There are version codes in v10.1 which are higher than v11 which will lead to users downgrading when we submit v10.1 to the playstore (http://cl/160476738) To make sure users are not downgraded from v11 to v10.1 when we push to the play store, I've also set 'version_conf_incrementer_max_version_code' at go/dialer-v10_1 to 1504907. Test: N/A PiperOrigin-RevId: 160555974 Change-Id: I4a9e64aa2fe461019e179f544fe959b8389a02cf
2017-06-30Automated g4 rollback of changelist 160202511.sail
*** Reason for rollback *** Causes crash, see b/63127884 *** Original change description *** All Fragments are now support library Fragments. Switch a bunch of imports to support library Fragments (and Loaders) instead of framework Fragments (and Loaders). This was needed to use FragmentManager.isStateSaved() instead of manually tracking that state. This should reduce errors around committing after state is saved. Also adds METADATA presubmit to prevent new usages of framework Fragments or Loaders. *** Bug: 38241305,63127884 Test: N/A PiperOrigin-RevId: 160530287 Change-Id: Ie2c4d3561ebea2d0f05097ce89bdd9bc8767c8cf
2017-06-30Re-enabled strict mode in bugfood.zachh
I think this was inadvertently (?) disabled. Test: no PiperOrigin-RevId: 160455622 Change-Id: I9f00331d7ef53108eb0adb9bec9c91be22422d2f
2017-06-30Move Session State definition into Sessionmaxwelb
The state of a session is more closely tied to the session itself, rather than the EnrichedCallManager. The enum was originally placed in the Manager as it was used in the API, but now that's no longer the case. This CL moves the Session State declaration into Session, which is a more appropriate location. Test: tap PiperOrigin-RevId: 160448612 Change-Id: I907476140bc174a061d48ee8e58878af64a62b29
2017-06-30Load dreamchip from assetstwyen
b/38149414 building with dreamchip regressed startup time by 400ms. This seems to be caused by linking against the library with cc_library, but the true reason is still unknown. In this CL, dreamchip libraries is stored as an asset instead. During runtime the asset will be copied into the data directory then loaded. Currently the copying happens on the main thread. Whether if it's acceptable to introduce further risk to handle this is to be discussed. Disk IO could already happen before this change. Bug: 38149414 Test: N/A PiperOrigin-RevId: 160444223 Change-Id: I9f098e7b79df113b2992d8590b33f423942716e4
2017-06-30Log the number of times when Lightbringer video call button appears.yueg
Including in: - expanded call log item - collapsed call log item - search - in call UI LOG_STORAGE_INCREASE(GB/week): 3.15 5M active block user/day * 10 events/active = 350M event/wk 350M event/wk * (3 * 3 [int32])/event = 3.15GB/wk Test: GoogleCallLogAdapterTest, ContactListItemViewTest, InCallFragmentTest PiperOrigin-RevId: 160423797 Change-Id: I6c0ade53caf767ea9b2610a4c0eb68fcc2bcedf7
2017-06-30Fix NPE in CallLogCacheLollipopMr1.isVoicemailNumber()twyen
Bug: 63012482 Test: CallLogCacheLollipopMr1Test PiperOrigin-RevId: 160303077 Change-Id: I00c80a681963c5a7a25fffd04e02db32ca2386dd
2017-06-30Automated g4 rollback of changelist 159993127.sail
*** Reason for rollback *** This CL causes a crash when swapping SIMs. *** Original change description *** Adding voicemail transcription branding and progress UI screen shot showing branding (its harder to capture the progress UI): https://drive.google.com/open?id=0B9o_KvtLkcuIdkkycVo1RFhsaENYV3J2Yi1LWnJzR0FfSHJR *** Bug: 63059930 Test: N/A PiperOrigin-RevId: 160296762 Change-Id: Ib8d709d03d6d8a3fee4a0c384c15df00f55cb182
2017-06-30Move video call logging from IntentProvider to CallLogListItemViewHolder.yueg
This prevents accidental logging. Test: GoogleCallLogAdapterTest, CallLogListItemViewHolderTest PiperOrigin-RevId: 160207870 Change-Id: Ib0582613979114c24bb0bd38df41ad7d7dadb63a
2017-06-30All Fragments are now support library Fragments.keyboardr
Switch a bunch of imports to support library Fragments (and Loaders) instead of framework Fragments (and Loaders). This was needed to use FragmentManager.isStateSaved() instead of manually tracking that state. This should reduce errors around committing after state is saved. Also adds METADATA presubmit to prevent new usages of framework Fragments or Loaders. Bug: 38241305 Test: Covered by existing tests. PiperOrigin-RevId: 160202511 Change-Id: I5dc0b467da984ca571e49b4dfa0deea44eb372b2
2017-06-26Tweaks to the voicemail TOS UImdooley
• moved scrollbar to edge of screen • changed divider to .5dp and added shadow • change "DECLINE" to "NO THANKS" for verizon TOS (it already was that way for non-verizon) • changed "ACCEPT" button to "TURN ON" text • increased the bottom bar height • made the google transcription text in the TOS bold • add an image to the non-verizon TOS screen (just using test image for now) i didn't add the 'Learn more' link, since its not ready yet. verizon screen shot: https://drive.google.com/open?id=0B9o_KvtLkcuIcVk0dHBtWmFfdjJWQVV3OEdVc0JXN01XZHQ4 non-verizon screen shot: https://drive.google.com/open?id=0B9o_KvtLkcuIci1OMlVXTHVuMGYwMWZVTS01dGVwMUpLdmRr Bug: 62375681 Test: manual and updated unit tests PiperOrigin-RevId: 160006810 Change-Id: Id45a3a848bb219a70fddbb5a7ada29cd39e604a9
2017-06-26Adding voicemail transcription branding and progress UImdooley
screen shot showing branding (its harder to capture the progress UI): https://drive.google.com/open?id=0B9o_KvtLkcuIdkkycVo1RFhsaENYV3J2Yi1LWnJzR0FfSHJR Bug: 62376944,62424455 Test: device testing PiperOrigin-RevId: 159993127 Change-Id: I8355164b5831e85de13915e221f6e0f0163e8c81
2017-06-26Adding voicemail transcription impression loggingmdooley
Logging impressions for interactions with the voicemail transcription server. Bug: 62423554 Test: none PiperOrigin-RevId: 159985772 Change-Id: I782d7eb4df917ae42940f359d98abc87f7ec0f95
2017-06-23Updated in call ui for EC calls with text to not get cropped.calderwoodra
screenshots: short message (before cl): http://screen/pMAgfV540Y5 short message (after cl): http://screen/VN3TVTBYjPN long message (before cl): http://screen/V8jSApXmEC2 long message (after cl): http://screen/Vd7zyf2JGvP long message zoomed (before cl): http://screen/urWDNGACgOf long message zoomed (after cl): http://screen/i2xEch8HHoq PiperOrigin-RevId: 159968371 Change-Id: Icaf0a69949b206efd8d08001065cfb4ccdcb1726
2017-06-23Fixing strict mode violations in voip module.mdooley
There is still one more violation in hangouts that i will address in a separate cl. PiperOrigin-RevId: 159955865 Change-Id: I61cb65d5f099baae497dfe2daddb4f7da6866ad6