summaryrefslogtreecommitdiff
path: root/InCallUI/src/com/android/incallui/VideoCallFragment.java
AgeCommit message (Collapse)Author
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
2016-05-16IMS-VT: Trigger internal onStateChanged notificationOmkar Kolangade
To minimize delays and avoid race conditions, trigger internal the onStateChanged event upon receiving onUiReady notification. Bug: 27135373 Change-Id: Ib9a26c6dbda8f3897072e6a276a262e191557073
2016-05-04Fix issues with video auto-fullscreen mode.Tyler Gunn
There were a few issues with the auto-fullscreen mode code which is present in video calls. 1. If the Incall UI is backgrounded, the auto-fullscreen mode code would still trigger and put the user into fullscreen mode when they return to the InCall UI. 2. If the user is already in a video call and the remote party enables their camera, the auto fullscreen mode code would trigger and enable fullscreen mode. Ultimately we only want to go into fullscreen mode if we are entering a video call from a non-video state. 3. It is possible for the call to cease to be a video call by the time the auto fullscreen code triggers, meaning that an audio only call would go into fullscreen mode: Change-Id: I338a9ba4bb8d171752dcb38c16363bf0ded701af CL: 120864913 Bug: 28093622
2016-02-22[Gradle] Allow dialer to be compiled as a librarySailesh Nepal
This CL adds a new build-library.gradle file for AOSP dialer. This allows the dialer to be built as a library that can be included from GoogleDialer. Switching to a library project meant making two other changes: - changed all switch statements that used resources to if statements. This was required because resource IDs are not final in library projects. - changed InCalUI code to import com.android.dialer.R instead of com.android.incallui.R. See http://b.android.com/82743 for more info on why this is required. src-N isn't supported yet. Also, this isn't the ideal project layout. In the future we should consider switching to the following layout: - dialer/incallui/ <- incall UI as an independent library project - dialer/dialerlib/ <- dialer code as an independent library project - dialer/app <- skelent app that builds a standalone dialer AOSP app Bug: 26676586 Change-Id: I07fbee4d33cc683539e4f8b3953c93f1427af9d7
2016-02-18IMS-VT: Do not create new surface when setting surface dimensionsOmkar Kolangade
Do not create a new surface when setting surface dimensions. Bug: 27246093 Change-Id: I3f66594141d548680427a7579169647018ca7eb7
2015-12-06Correct positioning of incoming video view.Tyler Gunn
There were a few things going on: 1. There is a case where we could try to position the incoming video view before the call card has been fully laid out and its height is known. 2. When querying the height of the video surface, the getHeight() method does not always return the value that was just set on it. Using the layout params solves this problem. 3. Cleaned up some other comments and debug statements. Bug: 21444300 Change-Id: I9b59b132d6d4c7559497c6499b164598e7a75c7f
2015-12-06IMS-VT: Listen to sensor orientation changes and update camera previewNivedita Sarkar
- Register to listen to OrientationEventListener - Notify registrants of orientation changes and update camera preview size and orientation based on that. - Enable the orientation listener only when CVO is enabled. - Enable the orientation listener for video calls only. Disable it if we downgrade to VOLTE Bug: 21587367 Change-Id: Id1288ee05fe02ebcfee57e52da060ec5c48ceaac
2015-12-06Fix issue where secondary call info overlaps video preview.Tyler Gunn
Other issues: - Secondary caller info should not be shown when in fullscreen mode. Solution: - Added onSecondaryCallerInfoVisibilityChanged to InCallEventListener ( which is documented as a place for events between fragments). - In CallCard fragment, call notify listeners of this callback of the state change. - In VideoCallPresenter/Fragment, handle changes to the visibility of the secondary caller info box to shift the preview surface up or down. - Added hide/show animation for the secondary caller info when entering and exiting fullscreen mode. Bug: 20914754 Change-Id: I44ae0e94e214892776487bff4cc09be8c5640db1
2015-05-22Revert "Merge commit '55fede4' into merge"Etan Cohen
This reverts commit b319b6f6ca8c7752d2070db7ccfad25bb8e4c22c. Change-Id: I9228568f0554eccf2367bb802bd65eb30ad282be
2015-05-21Merge commit '55fede4' into mergeEtan Cohen
2015-05-14Fix issue where secondary call info overlaps video preview.Tyler Gunn
Other issues: - Secondary caller info should not be shown when in fullscreen mode. Solution: - Added onSecondaryCallerInfoVisibilityChanged to InCallEventListener ( which is documented as a place for events between fragments). - In CallCard fragment, call notify listeners of this callback of the state change. - In VideoCallPresenter/Fragment, handle changes to the visibility of the secondary caller info box to shift the preview surface up or down. - Added hide/show animation for the secondary caller info when entering and exiting fullscreen mode. Bug: 20914754 Change-Id: I32ccccd6d881c494688de6d9a965f80c43d50e79
2015-05-13Fix issue where video surfaces show when dowgrading to audio in landscape.Tyler Gunn
The issue is the "inflateVideoCallViews" call in onViewCreated. We should not call inflateVideoCallViews unless we know that the call is a video call. Removing the call to inflateVideoCallViews in onViewCreated solves the problem. Once the UI sets up, onPrimaryCallChanged in the VideoCallPresenter is called to establish the primary call. At this point inflateVideoCallViews will get called anyways, so having it done in the onViewCreated is redundant. Bug: 20188274 Change-Id: Iface049e28192d58cf85347f6e88ca6e38a6a9aa
2015-05-12Fix issue where video surfaces show when dowgrading to audio in landscape.Tyler Gunn
The issue is the "inflateVideoCallViews" call in onViewCreated. We should not call inflateVideoCallViews unless we know that the call is a video call. Removing the call to inflateVideoCallViews in onViewCreated solves the problem. Once the UI sets up, onPrimaryCallChanged in the VideoCallPresenter is called to establish the primary call. At this point inflateVideoCallViews will get called anyways, so having it done in the onViewCreated is redundant. Bug: 20188274 Change-Id: Iface049e28192d58cf85347f6e88ca6e38a6a9aa
2015-05-05DO NOT MERGE Video call upgrade/dowgrade request changes.Tyler Gunn
- fixed potential NPE in VideoCallFragment when setting preview size. - moved photo load into the postExecute for the async task -- it is already threaded and I was seeing intermittent concurrency issues. - Changed CallButtonFragment to retrieve max # of buttons from config.xml. - Added override for wider screens (e.g. N6 and wider) to show an extra button. - Reorganized call buttons so that the "Camera on/off" button is adjacent to the flip camera button. - Changed answer Glowpad to pass correct video state so that accepting a video request uses the correct state (important for accepting requests to turn camera back on). - added new Session modification state REQUEST_REJECTED for when the remote user explicitly declines the request. This is used to trigger a "video request rejected" message when the remote party rejects the request. Bug: 20257400 Change-Id: Ibe25eb045ee868748f91bf411f285629d36ebcd2
2015-05-04Merge commit 'b1c7028' into merge_try2Prerepa Viswanadham
2015-05-04Merge commit '5e2731c' into merge_try2Prerepa Viswanadham
Change-Id: I880eb25812adaeb9355cc9c1dcf46afa0da5f333
2015-04-30Video call upgrade/dowgrade request changes.Tyler Gunn
- fixed potential NPE in VideoCallFragment when setting preview size. - moved photo load into the postExecute for the async task -- it is already threaded and I was seeing intermittent concurrency issues. - Changed CallButtonFragment to retrieve max # of buttons from config.xml. - Added override for wider screens (e.g. N6 and wider) to show an extra button. - Reorganized call buttons so that the "Camera on/off" button is adjacent to the flip camera button. - Changed answer Glowpad to pass correct video state so that accepting a video request uses the correct state (important for accepting requests to turn camera back on). - added new Session modification state REQUEST_REJECTED for when the remote user explicitly declines the request. This is used to trigger a "video request rejected" message when the remote party rejects the request. Bug: 20257400 Change-Id: Ibe25eb045ee868748f91bf411f285629d36ebcd2
2015-04-29VT related cleanup.Anthony Lee
Removed some unused imports and one constant introduced by the mass QCOM CL for VT bringup. Bug: 20090311 Change-Id: Iab7a89495557c8817216ff16559778c6f59a3919
2015-04-24Upgrade / downgrade requestsTyler Gunn
- Remove unnecessary "change to voice" button. - Remove "modify call option" dialog that showed up in the past when pressing the "upgrade to video button". - Cleaned up some unnecessary Toasts for call session events, data usage, and video quality - Implemented the camera on/off functionality. - Change preview to show the user's profile photo when their camera is turned off, as well as a "camera off" icon. Bug: 20257400 Change-Id: I6b7bb3d2394467f1345a798557130b2a674337c4
2015-04-16Make createPresenter() and getUi() public.Andrew Lee
... and update the visibility of their overriden instances. This allows us to create fragments with the BaseFragment/Presenter fragment which do not live in the incallui root directory. Bug: 20300758 Change-Id: I7f9b1c630538a04ca773ba155e5fb8efd6cf6af7
2015-04-16Remove connection substateJay Shrauner
Bug:20300433 Change-Id: Iec4a56229ee30f3183c9f4cf37bed3f028eed155
2015-04-16DO NOT MERGE Remove connection substateJay Shrauner
Bug:20300433 Change-Id: Iec4a56229ee30f3183c9f4cf37bed3f028eed155
2015-04-15am b04d61a..697f674 from mirror-m-wireless-internal-releaseVinit Deshpande
697f674 Fix orientation of preview surface when device rotated. 17de502 Merge "Always allow landscape mode if video call is the primary call" into m-wireless-dev 3692e77 Always allow landscape mode if video call is the primary call a77ad8d Video calling landscape changes to match specs cb74fc0 Merge "Simplify and rewire in-call buttons" into m-wireless-dev ed0775d Simplify and rewire in-call buttons 80a1aad Hide incoming video until call is connected. 4f2a70b Merge "Cleanup AnswerFragment glowpad UI" into m-wireless-dev 6591f05 Merge "Initial refactoring for call buttons" into m-wireless-dev c70a63c Initial refactoring for call buttons 4a63afd Hide end call button when video upgrade glowpad is showing 7ba13e9 Cleanup AnswerFragment glowpad UI 6b2b8df Show progress spinner when upgrading to video c02794b Merge "Cleanup of Video Call pause functionality." into m-wireless-dev bec5807 Standardize fragment layout names bc65cbc Adding video call icon in secondary call info.
2015-04-13Fix orientation of preview surface when device rotated.Tyler Gunn
- Cleaned up some unused methods in InCallActivity. - In onDeviceOrientationChanged, handle orientatoin change by resizing surface. - Fixed setPreviewSize which was not rotating the surface the appropriate way (ensured it was setting a transform on the surface, and also made sure that the correct dimensions were being passed in). Bug: 19850018 Change-Id: Ia9324ce6bad5a797839e69ba20244f2bcc44acb5
2015-04-13Video calling landscape changes to match specsYorke Lee
* Call card has 4dp corners, and is 90% visible * Margins for call card * Call buttons are center aligned with end call button * Remote surface is always center aligned, tapping call card slides it in and out * Status bar is black Bug: 19668216 Change-Id: Ifea27faa5f8ff32f6be13e777ca70aa4d0c7727e
2015-04-10Fix buildPrerepa Viswanadham
Change-Id: I0c953bfa322ffe1be080af2180579e1abc770a2b
2015-04-10Merge commit '8bef461' into merge_workPrerepa Viswanadham
Change-Id: I4cfea114e24c0b0671e99118316ad839dafbe400
2015-04-06DO NOT MERGE Fix crash when rotating video fragmentYorke Lee
Due to a recent framework change, https://googleplex-android-review.git.corp.google.com/#/c/659363/ TextureView will now crash if setSurfaceTexture is called before the TextureView is attached to the window. Use an OnAttachStateListener to call setSurfaceTexture only after the view is attached to the window. Cherry-pick from https://us2-mirror-googleplex-android-review.googlesource.com/#/c/666312/1 Bug: 20071288 Change-Id: I8c443542db6f4a432a097326fdb49607baa55889
2015-04-01Fix crash when rotating video fragmentYorke Lee
Due to a recent framework change, https://googleplex-android-review.git.corp.google.com/#/c/659363/ TextureView will now crash if setSurfaceTexture is called before the TextureView is attached to the window. Use an OnAttachStateListener to call setSurfaceTexture only after the view is attached to the window. Change-Id: Ic61302fb81461a00ae9e61352a1798d6c8b61318
2015-03-26IMS-VT: Add support for video callsRekha Kumar
IMS-VT: Upgrade downgrade and hold resume video calls -Add support for upgrade downgrade video calls. -Add support for hold resume and call waiting IMS-VT: Fixed surface caching. Fixed surface caching. IMS-VT: Fixes InCallUI/Dialer crash when there is a VT call. -Fixes InCallUI/Dialer crash when UE is rotated. -Fixes InCallUI/Dialer crash when UE VoLTE call is upgraded to VT. Don't default to speaker phone for VT when speaker is disabled - The adb property persist.radio.ims.audio.output indicates whether speaker is disabled explicitly or not. - If the above property is set to 1, don't enable speaker phone by default in VT call. IMS-VT: Fix CVO, surface and resource related issues. - Send initial orientation to VT Service. - Detect if Activity is being destroyed due to confugration changes. - Close the camera when InCallUI is pushed to background. - Fix surface and VT service related issues when Fragment and Presenter gets destroyed. IMS-VT: Peer Resolution Feature Implementation Change display video size based on peer resolution values received from far end. IMS-VT: Answering calls and upgrade requests as VT_TX and VT_RX -Support for showing one way options for incoming upgrade request -Fix issue where incoming video popup stays on screen even after rejecting the request. -Fix issue where incoming video popup stays on even after it has been timed out by lower layers. - Answer with different calltypes support. Notify listeners of video quality changed event and display message on UI - Add methods to notify listeners of type VideoEventListener when video quality changes. - Display a notification on the UI when video quality changes. IMS-VT: Enable SIP based video multitasking. Enable SIP based video multitasking. IMS-VT: Call data usage feature - Add support for call data usage callback - Request for call data usage stats - Log call data usage stats when IMS layers send update Change-Id: I3f0dde0d82698085fa5d3f110720f10326eca768 IMS-VT: When TTY is ON, do not allow upgrade to VT call When TTY mode is ON, the user SHOULD NOT be allowed to upgrade a call from VOLTE to VT/VT-TX/VT-RX and an UI alert message will be displayed explaining upgrade to VT call cannot be initiated. IMS-VT: Add null check in call upgrade fail scenario Crash is observed if call is ended in the interval wherein handler is started to change state from REQUEST_FAILED to NO_REQUEST after an interval. Added null check to change state only when call exists Propagate call substate message and display a notification on the UI Ims: Reject upgrade request 1. If there is waiting call that is pending user action and 2. Before offering a waiting call IMS-VT: Provide Player State indication to user. Change to display "player started/stopped" toast message whenever video starts/stops flowing IMS-VT: Cleanup video views when not required - Hide video views when not required. Set display size as per current TextureView size - Using TextureView height and width to calculate the display size. - When ever there is change in display make sure that center the display. IMS-VT: Exit VT call full screen mode. If the call is no longer a VT call, then exit full screen mode Change-Id: Ibc4ad8f9a4c38e467820028cdc2c7e68d65fd93c CRs-Fixed: 760925 IMS-VT: Upgrade button fix -Show upgrade/downgrade button only when call is in ACTIVE or ONHOLD state IMS-VT: Show correct call types during video pause -In paused state, upgrade downgrade button does not list the calltypes dropdown box -Remove the paused bit to calculate call type during video paused state. IMS-VT: Move strings for video quality changed indication to resource files IMS-VT: Clean up the showCallSubstateChanged API - Make the code more readable. IMS-VT: Set audio route to Speaker if current route is not bluetooth or headset - We always set the audio route to speaker when we enter video mode. - That is not correct. We should check if headset or bluetooth is connected before defaulting to speaker. IMS-VT: Turn speaker on/off for video calls based on call state changes - Turn speaker on only when video call is active or dialing - Switch back to the previous audio mode when there are no more calls - Make the previous audio mode static so that information persists when the class is recreated (e.g. when UE is rotated or multitasking happens) IMS-VT: Use back camera instead of front camera for VT-TX Set back camera for below cases 1) VOLTE to VT-TX 2) VT to VT-TX 3) Waiting call over Vt-TX call. IMS-VT: Fix upgrade in call waiting scenarios -When one VoLTE call is active and another VoLTE call is on hold and upgrade button is hit, call ends. Fix this upgrade issue. IMS-VT: Enter video mode when the primary video call changes - We only enter video mode when we have any video state changes - Enter video mode should also be called when the video call changes. e.g. When we have a second call with the same video state, we don't enter video mode which is incorrect. This change fixes the issue Add null check for InCallActivity in setInCallAllowsOrientationChange - In some cases, this API is called when InCallActivity is null. This causes a null pointer exception. Fix is to add a null check. IMS-VT: Fix check for VOLTE call (AND to OR) when turning speaker on IMS-VT: Check if call is video before enabling speaker in updateAudioMode - Moved the video call check to the correct block where we are enabling speaker IMS-VT: Get call substate values correctly from the bit mask - We were getting the call substate incorrectly as an int. - Fixed that by getting it from the bit mask and using the possible multiple values to display the call substate message. IMS-VT: Keep the screen on during video calls. UI screens times out after some time. During video calls the screen must be kept on. Change-Id: Icaa8662210b2dd323b29f4a472869a9ed1e01d00 IMS-VT: Open front facing camera for VT calls. Open front facing camera for VT calls. IMS-VT: Show manage conference button for Video Call - We show the manage conference in a separate section for VOLTE Calls. - In the case of Video Call, the entire screen is occupied by the far end video. So we display manage conference in the overflow section of the call button fragment. IMS-VT: Fix camera preview freeze for CONF video calls. Fix camera preview freeze for CONF video calls. IMS-VT: Move persist.radio.ims.audio.output to frameworks Move persist.radio.ims.audio.output and related constants to TelephonyProperties and PhoneConstants so that these can be accessed from multiple git projects instead of redefining. IMS-VT: Multiple video call fixes/optimizations. -Current implementation clears primary call cache upon exiting video mode. This will remove video call provider interface as well, which will prevent further communication with the backend. Don't clear primary call cache upon exiting video mode. -Unregister call details listener when UI transitions into unready state -Send surface of incoming video to video call provider before opening camera. IMS: Cleanup all listener objects Clean all stale listener objects to avoid the memory leak. IMS: Fix speaker icon display issue in Call UI. In few devices, InCall UI can show upto five buttons in a row. Modify code to display at most five buttons in a row. Show overflow menu if number of buttons is more than five. IMS-VT: Show glowpad view with accept/reject for most video upgrade cases - Show the glowpad view with all options only when upgrading from Volte to VT - For all other cases, show the glowpad with accept/reject only Change-Id: I41ecbda40db7c3c69428fc4272f8bfbd258e2980
2015-03-23Fix for misaligned video view surfaceYorke Lee
* Stash the true height of mPrimaryCallCardContainer in a view tag so that its height is not misreported during the outgoing call animation * Move the onGlobalLayoutListener so that the callbacks occur after the surfaces have been inflated, to ensure the views are non-null. Bug: 19773495 Change-Id: Ib762285c595ec826c6da15296db66d830d9fe24e
2015-03-17Add VideoCallFragment back into InCallUIYorke Lee
Statically add VideoCallFragment into the view hierarchy so that video calls can be shown in the UI. Change-Id: I8afbaaa750371a4afe3946d268882f46f5ec7eb4
2015-03-16Merge "Don't crash when rotating during video call"Yorke Lee
2015-03-13Don't crash when rotating during video callYorke Lee
If mTextureView has not changed across recreation, don't set the texture and listeners. Change-Id: I704abf6c9a6197d51233567c4ff2bd1e19393a95
2015-03-10InCallUi basic video call fixesMatthieu Baglin
This patch resolves some issues in video call establishment on L MR1 InCallUi. Change-Id: Ib72894f7e81932200b09b9995d169ef1124fc5b5 Signed-off-by: Matthieu Baglin <matthieu.baglin@intel.com>
2014-08-25Setting SurfaceTexture buffer size for display and preview surfaces.Tyler Gunn
When setting a surface for the Camera, it is important to ensure the buffer size is set before the surface is created. To fix this: The Surface passed to the Video Telephony layer is not created until the buffer size is set. The display surface buffer size is set when created. Setting the preview buffer size is deferred until the camera dimensions are received from the video provider. Bug: 16012946 Change-Id: I2130c029133ae6e5d670188e8d269ee6ac8bd675
2014-07-29Various changes.Tyler Gunn
1. Add InCallCameraManager to track active camera and manage camera capabilities. 2. Use new camera manager in CallButtonPresenter instead of directly accessing camera. 3. Implemented new camera setup flow between incall and telephony. 4. Landscape video call support (actively rotating while video is running crashes InCall at the moment, but you can start it in portrait or landscape fine). Includes ensuring layout works properly with RTL locales. 5. Added progress spinner to CallCardFragment, useful to show when an upgrade to video is pending. Bug: 16012946 Change-Id: Iff33422eec3a92d8cbeb217f5be2f1c9c5f3e98d
2014-07-22InCall UI VT changesTyler Gunn
1. Adding CallVideoClientNotifier - used by InCallVideoClient to notify interested listeners of events related to call video clients. 2. Change InCallVideoClient to use CallVideoClientNotifier to notify listeners of incoming events. 3. Modify call details listener signature in InCallPresenter to include the call for which the details changed. 4. Changing VideoCallPresenter to subscribe to call details changes, so it will keep informed of changes to the video state of the call. Bug: 16012946 Change-Id: I47aa2a8e8c852bb7e4ea2e83fa4a30b2697266e6
2014-07-20Video call surfaces and changing to video UI on videoState change.Tyler Gunn
Bug: 16012946 Change-Id: I1e86b172d46d3e67eff210d9f56e03a2e6c93853