summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/app/calllog
AgeCommit message (Collapse)Author
2017-10-25Improved dagger support for executor services.zachh
By always creating executor services via dagger, we can now bind special versions during espresso tests that can implement idling resources. We should be using idling resources during espresso tests for threads that we create ourselves, because espresso does not know about them. Hopefully this reduces some of the flakiness of espresso tests that we have today. This required converting all existing calls to DialerExecutors to pass a context used to fetch the component, and also required creating new application classes for espresso tests. Test: temporarily added a task which just slept to DialtactsActivity and verified that its integration test failed due to idling resource timeout PiperOrigin-RevId: 173334773 Change-Id: I876a93022d235d62cfc377bf5b06687e21a34758
2017-10-24Rename the new bubble package name from "bubble" to "newbubble".Eric Erfanian
It fixes AOSP for package name conflict. Test: manual PiperOrigin-RevId: 173298696 Change-Id: Id10ebe0bcf029e61f65cf6580c7198abd8395081
2017-10-19Take into account special dialable characters when grouping calls in the ↵linyuh
call log UI. Currently we use PhoneNumberUtils#compare(String, String) to determine whether two numbers in the call log should be grouped. The method ignores special dialable characters such as "#", "*", "+", etc, which can cause phone numbers and service dialing numbers to be grouped. For example, suppose the user has a contact named "John Smith" with number 123456789 and a contact named "Service" with number #123456789, and called each contact once. The old grouping logic will put the two numbers in the same group. The new grouping logic in this CL can separate the two numbers. Bug: 30225112 Test: CallLogGroupBuilderTest, PhoneNumberHelperTest PiperOrigin-RevId: 172683494 Change-Id: Ie9e7b7418d6d7c74830cbae09c04ff1feb1b827d
2017-10-17Support bulk inserted voicemails.twyen
Bulk insert is implemented in ag/3073902 When more than one voicemail is inserted into the VoicemailProvider, the URI type is Voicemails.DIR_TYPE instead of ITEM_TYPE. This CL adds support to the new type. Previously when multiple voicemails are being notified, each one of them will generate a ringtone because the notifiction is set to alert children. In this CL, the summary will have alert instead, and will only alert when new voicemails are received. Bug: 21281858 Test: VisualVoicemailNotifierTest PiperOrigin-RevId: 172546076 Change-Id: I4df6098fc3a793139e3d4e77fe1339efdc001944
2017-10-17Allow voicemail transcription notifications to expandmdooley
Bug: 67430264 Test: manual PiperOrigin-RevId: 172520128 Change-Id: I061e3b45599e1c14be387713e63f6fdeae367be4
2017-10-17Move Duo related constants out of interfaceroldenburg
Fixed notifying for Duo missed calls using the new constants to check if a call is a Duo call. Bug: 66946794 Test: existing tests, manual PiperOrigin-RevId: 172400311 Change-Id: I84ec0ac5c933cf1aec68b6d1f422c2effe6b69ec
2017-10-16Rename Lightbringer to Duoroldenburg
Now that our Duo integration is public, we no longer need a code name. To avoid any disruption, logging and config related names were not changed. Bug: 63753964 Test: manual, existing tests PiperOrigin-RevId: 172172738 Change-Id: Ib9d3d80761944d850c8c4886def9fef9a28539a4
2017-10-13Fixed crash which occurred when clearing call log containing enriched call data.zachh
There was a race where the dialog could sometimes get detached before the success callback finished. The callback would attempt to show a snackbar using [fragment.]getString(), which throws when the fragment is detached. The fix is to just use the activity to get the string (which has already been asserted to be valid). Bug: 65968151 Test: unit PiperOrigin-RevId: 172169503 Change-Id: If86250b14038958e6668b26d1f150619fe3eefae
2017-10-13Fixing voicemail notification bugmdooley
Added a check for null notification tags when updating voicemail notifications. Bug: 67607115 Test: manual and unit test PiperOrigin-RevId: 172121860 Change-Id: If9fd6ca972a5a1dbd48a9c529f3cb46c3c93fa2a
2017-10-12Set the secondary action to be a voice call when the primary action is a ↵linyuh
video call. Bug: 67717800 Test: GoogleCallLogAdapterTest PiperOrigin-RevId: 172013208 Change-Id: I86c4ca1ef7caf1899cb9587d98233a9e707b7f3d
2017-10-12Handle invalid PhoneAccountHandle component name in MissedCallNotifiertwyen
Bug: 66946794 Test: MissedCallNotifierTest PiperOrigin-RevId: 172007792 Change-Id: I14a2c0b6a5ad5a5b8acd449214c91bff68282b6a
2017-10-11Added basic bottom sheet to new call log.Zachary Heidepriem
Also added ability to click on row to call. Required plumbing through the original phone number and phone account info through AnnotatedCallLog and CoalescedAnnotatedCallLog, so that clicking to dial doesn't require an additional lookup. Required some refactoring: -created autovalue for CoalescedRow. -created autovalue for ContactPrimaryActionInfo and use it in ContactActionBottomSheet -moved logic for building primary and secondary text into CallLogUtils so it can be shared between call log list and bottom sheets -moved clipboard logic to own package for copying numbers Bug: 34672501 Test: unit PiperOrigin-RevId: 171760252 Change-Id: I645d89974460b611c1d9668c3ca3e50a716c7f8f
2017-10-11Ignore self-manged calls for missed call notificationtwyen
If a PhoneAccount declared it is CAPABILITY_SELF_MANAGED, it should handle the in call UI and notifications itself, but might still write to call log with EXTRA_LOG_SELF_MANAGED_CALLS}. Bug: 66946794 Test: MissedCallNotifierTest PiperOrigin-RevId: 171727177 Change-Id: I34444857d432d6bb72983c0ba919bcfef885192b
2017-10-11Set an appropriate icon for the call detail UI's callback button.linyuh
cl/170943038 groups calls in the call log according to their corresponding actions (Lightbringer, IMS, and voice). This way calls in the call detail UI are in the same category and an appropriate icon can be set. Bug: 66026167 Test: CallDetailsActivityTest.callbackButtonLoggedForLightbringerCall, CallDetailsActivityTest.callbackButtonLoggedForVideoCall, CallDetailsActivityTest.callbackButtonLoggedForVoiceCall PiperOrigin-RevId: 171703514 Change-Id: I534e1d22f1355f261105a6bde74285403fc9ed87
2017-10-10Hide the text view showing call type or location when assisted dialing is ↵Android Dialer
supported. Test: manual PiperOrigin-RevId: 171610298 Change-Id: I12ca284927603804b8761db695d35a1c79fa93f3
2017-10-10Improved FAB UX.calderwoodra
One of the biggest issues with the FAB is that it doesn't scale in/out properly. It looked more like setVisibility was being called instead. This CL migrates the FAB controller to use the built in scale in/out methods #show and #hide and the animation is much nicer. Some of the other issues were: - Now scaling animation is correct and visible. - No longer flashes when going in/out of search. - No longer shows on top of the return to call controller. - No longer bugs when switching between VVM TOS and contacts. - No longer shows FAB over VVM TOS when entering/exiting search Bug: 62588192,35359563,64116334,27458212,37991480,67419607 Test: manual PiperOrigin-RevId: 171608105 Change-Id: I9b3f61df35abf3659a432adf411b1b7d20eba683
2017-10-10Group calls in the call log according to their corresponding actions.Android Dialer
Currently different types of calls can be grouped together (e.g., 1 voice call and 1 IMS call to/from the same number), which makes it difficult to choose the icon for the call detail UI's call back button. This CL adds an extra constraint that separates different call types (Lightbringer, IMS, and voice). This way calls in the call detail UI are in the same category and an appropriate icon can be set. Bug: 66026167 Test: CallLogGroupBuilderTest.addGroups_MixedEntries_PartiallyGroupedByAction PiperOrigin-RevId: 171602617 Change-Id: Id8170206009ba836a40c38a86914c71d5c7701dc
2017-10-10Add assisted dialing to outbound calls that qualify.erfanian
* Add missing assisted dialing to calls from contacts in the call log. * Add missing assisted dialing to calls from dialpad and normal search. Bug: 63995025,63995261 Test: unit test PiperOrigin-RevId: 171593967 Change-Id: I4e63ef1dcd7ee1b2b5cbb8ecb4d8da744d90bd66
2017-10-04Inserting post call notes now compares notifications using fuzzy matching.calderwoodra
Bug: 65559651 Test: MissedCallNotifierTest PiperOrigin-RevId: 171070314 Change-Id: I57e6e0b55a07430daad944473ae4eb427d56ee96
2017-09-28Use goAsync() and dialer executor to insert post call notificationstwyen
Previously post call notifications are inserted by launching CallLogNotificationService. This usually works because the call has just broght dialer to the foreground and there are some grace period before the app is consider background again. However if the post call message comes later background check will crash the app. This CL made the broadcast receiver async and complete the insertion in a worker since it wouldn't take more than a few seconds. Bug: 66444859 Test: unit tests PiperOrigin-RevId: 170275928 Change-Id: I0ff396b51a173f2e4bab0bca6b6e5c5b56ab62da
2017-09-26Fix onVisible/onNotVisible called on CallLogFragment without being attahced ↵twyen
after rotation mCurrentPage is set onResume before the fragment is attached. In this CL, mCurrentPage is still used for page change, but for resume and pause, it is detected directly in CallLogFragment using getUserVisibleHint() Bug: 65161134 Test: manual - change call volume after rotation, check ToS FAB not visible after rotation. CallLogFragment is not testable. PiperOrigin-RevId: 169984576 Change-Id: I870cbe3b83e38ac2cb505193309ab4f8e75a859f
2017-09-25Fixing bug where missed call notifications were getting clobberedmdooley
The problem was that the same notification id was being used by both VisualVoicemailNotifier and MissedCallNotifier, causing the voicemail notification update code to filter out missed call notifications instead of ignoring them. Bug: 66168999 Test: manual and verified existing unit tests pass PiperOrigin-RevId: 169925851 Change-Id: Ifa69506a250557dd7bba631122fdd6d0744d6341
2017-09-25Don't show Lightbringer disclosure dialog after 1 day since viewed.yueg
We think it's viewed by user if it's showing and user scrolls on call log tab, since action in the same tab that moves the dialog is a strong proof. Test: GoogleCallLogAdapterTest PiperOrigin-RevId: 169763132 Change-Id: Ie520c65627b1e5d364860507321fb268c89e0cf7
2017-09-22Log non-contact lightbringer actionstwyen
video call upgrade and calling from call log is logged Bug: 66222115 Test: DialerCallTest, GoogleCallLogAdapterTest PiperOrigin-RevId: 169703001 Change-Id: Ib4dc3507dec09f49d41cec09d32cc9800477ee8b
2017-09-20Added some bug fixes in call details.calderwoodra
When a user dials a number with post dial digits, they are now carried to contact details and used when they redial that number. Additionally, when a user clicks on a photo in call details, they will be taken to Bugle now. This behavior already exists with messages in CD. Bug: 62236726,62230491 Test: CDEVHT PiperOrigin-RevId: 169422921 Change-Id: I1507cb64876540cfc9a683a5a1ea01910443f77b
2017-09-19Fix notification update bugmdooley
The problem was that the query for looking up a voicemail by URI was broken which was causing the notifications to be cancelled then when they were supposed to be updated they were actually getting re-added thus causing the notification sound. Bug: 65692173 Test: manual and unit test PiperOrigin-RevId: 169304391 Change-Id: I1e8f648231b6f0ab984a5b0e4facd8351b01391a
2017-09-11Updating voicemail notificationsmdooley
This is mostly just a revived version of cl/158901400. It adds a job service that is triggered by changes to the voicemail database. The job updates voicemail notifications, as necessary. video of notification update: https://drive.google.com/open?id=0B9o_KvtLkcuId1ptNk1EbGotWFU Bug: 37340510,27535759 Test: manual and unit test PiperOrigin-RevId: 167934550 Change-Id: I36f03c0769645f7a0cb478172171f1079eca2108
2017-09-11Updating voicemail notifications for transcription, part 2mdooley
Changing voicemail notifications to match the latest mocks, (replacing the 'Voicemail' title with what was the notification content, and putting the voicemail status or transcription in the notification content). The notifications will be updated in a following cl. screen shot: https://drive.google.com/open?id=0B9o_KvtLkcuIbDdjaTNHTFFZLW9YZEo1SG5scDR6SzloaWc4 Bug: 37340510 Test: manual PiperOrigin-RevId: 167928866 Change-Id: I81492f7fbf1cc398401a948e036854d6a8ff878b
2017-09-11Updating transcription UI to match latest mocks, part 1mdooley
-add branding 'Google is transcribing' -add branding 'Transcribed by Google' in-progress screenshot: https://drive.google.com/open?id=0B9o_KvtLkcuIdVVTX3BBZkNzV180alZPQ3EtR3gzRFNoamhV transcribed by screenshot: https://drive.google.com/open?id=0B9o_KvtLkcuISUdaRjBlUFpjYTBWWTg1STVHS0oyQmNiSUVR Bug: 37340510 Test: manual PiperOrigin-RevId: 167620447 Change-Id: I5526bebb6999cf77b0902ae50ca72e380538a6e7
2017-09-11Ignore read missed calls and voicemails for notificationtwyen
When the call log is restored by the system, all items are marked as new even though they could already been read. This causes a torrent of "missed" calls after restoring call log with the setup wizard. This CL ignore read entities in the query. Bug: 62871863 Test: CallLogNotificationQueryHelperTest PiperOrigin-RevId: 167602820 Change-Id: Iba5609ace895a309685bfcd61eae85e080562ec5
2017-09-07Adding dialer specific transcription error codesmdooley
These new states will be used to show descriptive failure messages to the user. Also moved the VoicemailCompat class to avoid duplicate code. Bug: 37340510 Test: none PiperOrigin-RevId: 167314611 Change-Id: I618d7f196ea2b0161cbd33479553cae3521328d7
2017-09-06Added logging to aid debugging of issue where dialer shows blank screen.zachh
Bug: 64129606 Test: none PiperOrigin-RevId: 167174480 Change-Id: I4b5a494b0b334b42ee053c4d4d1e81d7699461d0
2017-08-31Update Dialer source to latest internal Google revision.Eric Erfanian
Previously, Android's Dialer app was developed in an internal Google source control system and only exported to public during AOSP drops. The Dialer team is now switching to a public development model similar to the telephony team. This CL represents all internal Google changes that were committed to Dialer between the public O release and today's tip of tree on internal master. This CL squashes those changes into a single commit. In subsequent changes, changes will be exported on a per-commit basis. Test: make, flash install, run Merged-In: I45270eaa8ce732d71a1bd84b08c7fa0e99af3160 Change-Id: I529aaeb88535b9533c0ae4ef4e6c1222d4e0f1c8 PiperOrigin-RevId: 167068436
2017-05-31Update Dialer to v10 RC45.Eric Erfanian
This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC45 Branch: dialer-android_release_branch/153304843.1 dialer-android_20170416.00/dialer-android_20170416.00_RC45 This release contains the following bug fixes since RC39: Bug: 38131932 38302993 38347350 38368993 38395481 62100344 Test: make, on device Change-Id: Ib4af5dcc58c684d51ea1f4628b301e40184b81b3
2017-05-15Update Dialer to v10 RC32Eric Erfanian
This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC32 Branch: dialer-android_release_branch/153304843.1 dialer-android_20170416.00/dialer-android_20170416.00_RC32 This release contains the following bug fixes since RC17: Bug: 33176679 33272455 3646510 36773894 37297649 37413780 37513689 37640315 37680595 37698062 37873639 37901752 37919295 37953423 38062852 38069600 38137349 38173549 38180252 38191514 Test: make, on device Change-Id: I4e4bb630082758e418ff24892b7db3142c6eb09a
2017-05-04Update Dialer to V10 RC16Eric Erfanian
This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC16 Branch: dialer-android_release_branch/153304843.1 dialer-android/dialer-android_20170416.00/dialer-android_20170416.00_RC16 This release contains the following bug fixes since RC00: Bug: 37324705 35304403 36067503 35304446 33203808 37280992 37346084 35766990 37481880 37424493 36470282 37347691 37519015 37168472 35805360 37545472 27704934 36515614 35766990 37577470 34739750 35801628 36788693 35264204 36708536 37628370 36904650 37314436 37642171 37530847 37637799 37666625 37548549 37648036 37636412 37323529 37630507 35919141 37198343 37548572 36178218 37640315 37663896 37720467 37275944 37710497 31634477 37744796 37348506 37744796 37568534 37672424 34872683 34873026 37681461 34873295 37748373 37526812 37618638 37663896 37536088 37727455 37165687 36651204 36900708 37323529 36902926 37256480 37328353 37432034 37436952 34093562 37720889 37321935 37780300 37781115 37755902 36588206 34258266 37290464 37698062 37618638 37473004 37432034 37918676 37870494 37722091 Test: make, on device Change-Id: I99e1a484ccd578c1f8a13e7a6a4b4952f0791297
2017-05-03This change reflects the Dialer V10 RC00 branch.Eric Erfanian
RC00 is based on: branch: dialer-android_release_branch/153304843.1 synced to: 153304843 following the instructions at go/dialer-aosp-release. In this release: * Removes final apache sources. * Uses native lite compilation. More drops will follow with subsequent release candidates until we reach our final v10 release, in cadence with our prebuilt drops. Test: TreeHugger, on device Change-Id: Ic9684057230f9b579c777820c746cd21bf45ec0f
2017-04-06Update AOSP Dialer source from internal google3 repository atEric Erfanian
cl/152373142. Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/151342913 (3/27/2017) to cl/152373142 (4/06/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: I2fbc88cf6867b90ac8b65f75e5e34468988c7217
2017-03-27Update AOSP Dialer source from internal google3 repository atEric Erfanian
cl/151342913. Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/151128062 (3/24/2017) to cl/151342913 (3/27/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: I8d4855628b62e9067e71f32ed40317617a1e3b02
2017-03-27Update AOSP Dialer source from internal google3 repository atEric Erfanian
cl/151128062 Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/150756069 (3/21/2017) to cl/151128062 (3/24/2017). Notable this release: - Explicitly enumerate host and target dependencies. - Update proguard flag references. This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Bug: 33210202 36511925 Addresses 33210202 - Proguard support 36511925 - Compiler warnings when building against platform sdk Change-Id: I448ec3b3f2358886859cf7a4ef76a8fcef3244ae
2017-03-21Update AOSP Dialer source from internal google3 repository atEric Erfanian
cl/150756069 Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/150392808 (3/16/2017) to cl/150756069 (3/21/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: I0888b5db52efb28eb8194600e0c7804592f975f3
2017-03-20Revert "Update AOSP Dialer source from internal google3 repository at ↵Eric Erfanian
cl/150622237" This reverts commit 06b6b56e9eaa91ebf757ea641e38a9c885fa40bd. Change-Id: Ida8c5ee67669524dc63b9adc60a6dd392cb9b9a6
2017-03-20Update AOSP Dialer source from internal google3 repository atEric Erfanian
cl/150622237 Test: make, treehugger, on device testing. This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/150392808 (3/16/2017) to cl/150622237 (3/20/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: Id53e0e580a4ef73760a8afb7bb8c265ee27ad535
2017-03-17Update AOSP Dialer source from internal google3 repository at cl/150392808Eric Erfanian
Test: Treehugger Notable this release: * Reintroduce localization. This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from 3/15/2017 to cl/150392808 (3/16/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: Ia16d68469c2ca1ff42c7fa31d922bdb78c4e244a
2017-03-16Revert "Update dialer to tap green cl 150332012."Sailesh Nepal
This reverts commit 1019500220518fb5fb023fcb7d370ab3cbf12307. Change-Id: Ie6e4f81a995fca7345132b596521b0bd06ceffb9
2017-03-16Update dialer to tap green cl 150332012.Eric Erfanian
Test: Treehugger Change-Id: If2baab1d3fc2dee602a4f784bba532182e7174f5
2017-03-15Update Dialer source from latest green build.Eric Erfanian
* Refactor voicemail component * Add new enriched calling components Test: treehugger, manual aosp testing Change-Id: I521a0f86327d4b42e14d93927c7d613044ed5942
2017-03-01Update dialer sources.Eric Erfanian
Test: Built package and system image. This change clobbers the old source, and is an export from an internal Google repository. The internal repository was forked form Android in March, and this change includes modifications since then, to near the v8 release. Since the fork, we've moved code from monolithic to independent modules. In addition, we've switched to Blaze/Bazel as the build sysetm. This export, however, still uses make. New dependencies have been added: - Dagger - Auto-Value - Glide - Libshortcutbadger Going forward, development will still be in Google3, and the Gerrit release will become an automated export, with the next drop happening in ~ two weeks. Android.mk includes local modifications from ToT. Abridged changelog: Bug fixes ● Not able to mute, add a call when using Phone app in multiwindow mode ● Double tap on keypad triggering multiple key and tones ● Reported spam numbers not showing as spam in the call log ● Crash when user tries to block number while Phone app is not set as default ● Crash when user picks a number from search auto-complete list Visual Voicemail (VVM) improvements ● Share Voicemail audio via standard exporting mechanisms that support file attachment (email, MMS, etc.) ● Make phone number, email and web sites in VVM transcript clickable ● Set PIN before declining VVM Terms of Service {Carrier} ● Set client type for outbound visual voicemail SMS {Carrier} New incoming call and incall UI on older devices (Android M) ● Updated Phone app icon ● New incall UI (large buttons, button labels) ● New and animated Answer/Reject gestures Accessibility ● Add custom answer/decline call buttons on answer screen for touch exploration accessibility services ● Increase size of touch target ● Add verbal feedback when a Voicemail fails to load ● Fix pressing of Phone buttons while in a phone call using Switch Access ● Fix selecting and opening contacts in talkback mode ● Split focus for ‘Learn More’ link in caller id & spam to help distinguish similar text Other ● Backup & Restore for App Preferences ● Prompt user to enable Wi-Fi calling if the call ends due to out of service and Wi-Fi is connected ● Rename “Dialpad” to “Keypad” ● Show "Private number" for restricted calls ● Delete unused items (vcard, add contact, call history) from Phone menu Change-Id: I2a7e53532a24c21bf308bf0a6d178d7ddbca4958