summaryrefslogtreecommitdiff
path: root/InCallUI/src/com/android/incallui/InCallActivity.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
2017-01-06Merge "Display incoming call when phone account selection dialog shows" am: ↵Wenlu Wu
fdf68fbd0b am: 2f06e83ade am: f6a3e26644 am: 8012f1a83f Change-Id: Ife7419f7c86aafe4a2a6a3656e257383b1f0c079
2016-12-26Display incoming call when phone account selection dialog showsWenlu Wu
CallCardFragment is not created if there is an incoming call when phone account selection dialog shows, which results in incoming call not being shown. Fix issue by dismissing dialog and showing CallCardFragment in that case. Bug: 33893516 Change-Id: Icd7a729da974717945275cc5cec93da20864fde3
2016-04-29Add LatencyReport for every callSailesh Nepal
[This is a manual cherry pick from ub-contactsdialer-b-dev.] This CL tracks latency for all incoming and outgoing calls. We now measure the following latency values: - time for a connection service to add a call to telecom. - time for telecom to process a call - time for the dialer app to launch and have a call added to it by telecom. - time for dialer to check if a call should be blocked. - time to show a notification about the call (incoming only) - time it took to show the InCallUI (only if HUN wasn't displayed) Change-Id: I08685d312cbaefc564feb4119350da71df9b9e6c
2016-02-24Merge "Let InCallActivity handle resize config change." into nyc-devQi Wang
2016-02-23Let InCallActivity handle resize config change.Qi Wang
Bug: 26862821,27250655 Change-Id: I1b5c35846f1a2d2dedaf2df9abf1f522270b1638
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-22Remove Lollipop support for InCallUISailesh Nepal
This CL removes support for running dialer on Android L MR1. The change allows us to switch from the system SDK to the public SDK. This is useful for the following reasons: - makes it easier to switch to gradle - makes it easier to migrate GoogleDialer to google3 - reduces maintenance overhead for unused code Currently there's no plan to release Dialer on Lollipop. If or when we decide to support Lollipop we can consider switching back to the system SDK and restoring the comapatiblity code. Bug: 26676586 Change-Id: Idac9e6e19f1d21c9261c1b0d0ff3e3ca4aab980b
2016-02-18Fix end-call FAB position when dial pad is shown on device rotate.Tyler Gunn
Move the "onDialpadVisibilityChange()" listener call so that it takes place regardless if the dialpad is animated on show-hide. That listener triggers "updateFabPosition()" in callCardFragment, which repositions the fab. Bug: 27170964 Change-Id: I56588695c633205f4ebaac6d9685f543b9e09293
2015-12-11Backporting references to android.telecom.Call.DetailsBrandon Maxwell
In L, Call.Details.CAPABILITY_* constants were found in android.telecom.PhoneCapabilities, it has been verified that the constant values match as needed. In L, Call.Details.getExtras had all the information that was moved to Call.Details.getIntentExtras in M Added android.telecom.Call.Details compat class Change-Id: I16d25173382575f351762e0e5b71775f1046fdd0
2015-12-08Ignore check for phone accounts when making call from pre-MSIM device.Nancy Chen
Since Lollipop and before we don't have phone accounts, we can't check if we have a valid phone account before making a call, so ignore this check. Bug: 25776171 Change-Id: If4266029cadaf95bcd7a52dd49f4d27db9eda964
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: I1735d05ab9b76074350e7aa8deae4f35ab71c56d
2015-12-06Fix NPE when getting fragment manager[A
Bug: 22324713 Change-Id: I196ff7fbc2b6e4bf06899e3c397c3f098030f952
2015-12-06Show dialpad button for VT calls, cleanup dialpad on rotation.Tyler Gunn
1. Show the dialpad button for VT calls (this was easy). 2. In testing I realized there were some other dialpad scenarios that did not work properly: - The dialpad visibility state was not properly restored after rotation. - The auto-fullscreen code could hide the call card when the dialpad was showing, resulting in an inability to hide the dialpad. - In landscape it was possible to tap between the call card and the dialpad and cause the call card to be hidden. - If user goes to background in fullscreen mode and then opens dialer and chooses to show the dialpad, the app is still in fullscreen and it is not possible to hide the dialpad. 3. Noticed an issue related to the fact mIsFullScreen in InCallPresenter is static, and after rotation you're always defaulting to not fullscreen. Fixed by clearing fullscreen state on rotation to match actuality. Bug: 21296950 Change-Id: I2c7a666a50e2284b1d22db43c443b34109cff9b1
2015-12-06IMS-VT: Fix null pointer exceptionRekha Kumar
mOrientationEventListener is replaced by mInCallOrientationEventListener. Removed some usage left out as part of merge conflict/change propagation. Bug: 21893478 Change-Id: I7b9d9e804745df199da9562f4d05e533dd4999c2
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 presentation of "held" banner in landscape mode, plus more!Tyler Gunn
1. Removed landscape video_call_views.xml file; it was identical to the portrait version but missing some recent changes. This corrected an issue I observed with the preview surface not rotating properly. 2. Changed layout of landscape call_card_fragment so that the secondary call info box is a banner along the bottom of the screen and the call card adjusts to fit above it. The trick is to put that view before the primary call card in the relative layout and mark the primary call card to "layout_above" the secondary call info. 3. Fixed issue observed when transitioning from portrait to landscape where the secondary call card OnPreDrawListener would keep firing. Changed the way the OnPreDrawListener is removed per Yorke. 4. Corrected issue where the preview surface would not change to a landscape orientation when the device is rotated. Ensured when starting up the VideoCallPresenter to adjust the orientation of the surface. Bug: 21076775 Change-Id: Ia86215814602523882cc47d19a2cf2ab08eec5ea
2015-11-13Use separate AnswerFragment for TalkbackTa-wei Yen
+ Split AnswerFragment into GlowpadAnswerFragment and AccessibleAnswerFragment, with the refactored AnswerFragment as base class. + InCallActivity will select GlowpadAnswerFragment and AccessibleAnswerFragment base on if any touch exploration accessibility service is active. + Removed AnswerListener from GlowPadWrapper, as it is only implemented in one class and made the code more complex. + Changed answer icon's color into green. Bug:24101341 Change-Id: Ida2b07986d64d6442ff87a2258180846a092942e
2015-11-09Log screen view events in InCallUIYorke Lee
Bug: 23164804 Change-Id: Icd7e8414ce15ab286946f7fe03aecba49ee67bb4
2015-10-21Fixed highlighter stuck on dialpad while in call.Ta-wei Yen
+ InCallActivity.showDialpadFragment() now returns a boolean to indicate if changes are actually made. Bug: 18930766 Change-Id: Ib00859a58b289f988606e6427b1d874a69231fbb
2015-09-25Use TransactionSafeActivityJay Shrauner
Remove custom visibility tracking. Bug:24294419 Change-Id: I601c9a1c14db7c53d5c7b4a0acbb41b553e10e96
2015-09-14Fix IllegalStateException in onBackPressedJay Shrauner
Check to make sure the activity is still visible before doing anything. Bug:24049732 Change-Id: I64442c9283b46ecee5972fd217fb790564671167
2015-08-13Rename Telecomm to TelecomJay Shrauner
Bug: Change-Id: Iaed2bbe86370bba7d896cef525086aa51e654b64
2015-08-06Catch RuntimeException when calling setExcludeFromRecentsYorke Lee
Bug: 22924782 Change-Id: I1da931b805658376fb9db418210662273d9c1db8
2015-06-26Don't hide InCallActivity from recentsYorke Lee
Show InCallActivity in recents (only during an active call) Bug: 17411752 Change-Id: I2c69c517f7278df78454bf69fce93880bc00997a
2015-06-19Fix two animations when using Connection.setInitializedYorke Lee
STATE_NEW has no meaning within InCallUI and can confuse the internal logic. Treat it as STATE_CONNECTING for purposes of state tracking. Also, track whether the activity is visible rather than whether it is the foreground activity (by tracking onStart/onStop vs onResume/onPause). This fixes some unexpected UI transitions when a dialog (e.g. wifi-calling dialog) shows up over the InCallUI. Bug: 19217176 Change-Id: Ifa5953e27aa4ed777ed8798c628df1bdc96ed1eb
2015-06-18Fix for InCallUI finishing too quickly to display error dialogYorke Lee
Increase the delay before disconnecting the call for DisconnectCause.ERROR, so that the user has time to acknowledge the error. To avoid regressing on b/20956721, keep track of any calls that are pending a disconnect. If the user has explicitly dismissed the error dialog, disconnect the call immediately to avoid blocking the UI any further. Bug: 21436856 Change-Id: I339cdbf1ba99fda5b1f5c8c31f722c97b64f487f
2015-06-01Merge "Disable OrientationEventListener when activity backgrounded" into mnc-devYorke Lee
2015-06-01Disable OrientationEventListener when activity backgroundedYorke Lee
Bug: 21439982 Change-Id: I8cc014ffd272b6a4fa19030eeaeef87f3ffd5d82
2015-05-28Add extras to Connections/Calls. (3/3)Santos Cordon
Two major changes: 1) Add the notion of extras to a Connection. These extras will be parceled through to InCallService as Call.getExtras() 2) The previously existing Call.getExtras() has been renamed to getIntentExtras(). This name better describes the fact that these particular extras are from the original CALL or INCOMING_CALL intents. Change-Id: I85358827905abe3fd93b6b901dd78c86bb7d653c
2015-05-18Remove reliance on getDefaultDisplay() to determine screen rotation.Tyler Gunn
Replaced the calls to getWindowManager().getDefaultDisplay() with code to determine the screen rotation angle based on the angle ranges. Bug: 21208380 Change-Id: Ie91d38f9c0b4227bb2148a193c00339b5d8f4ce6
2015-05-08Merge "Fix NPE when hitting back in InCallActivity" into mnc-devYorke Lee
2015-05-08Fix NPE when hitting back in InCallActivityYorke Lee
Bug: 20921372 Change-Id: I25969a56eb293f20e3dfeaccf6f929177da00e85
2015-05-06Fix issue where fast 180 degree landscape rotation is not detected.Tyler Gunn
- Cleaned up imports in InCallActivity. - Added new OrientationEventListener to listen for orientation changes to the device. This listener returns the current device rotation in degrees. Use the windowManager to get the current display rotation (e.g. in coarse 90 degree, 180, etc). - This solves the problem - can now detect rotation from landscape to landscape. Bug: 20727115 Change-Id: Icfad2b26083bb8236e9f4fe5580e3828cdef11b8
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-10Merge commit '8bef461' into merge_workPrerepa Viswanadham
Change-Id: I4cfea114e24c0b0671e99118316ad839dafbe400
2015-04-06Handle recreating SelectPhoneAccountDialogFragmentJay Shrauner
Bug:20064573 Change-Id: I089c2b890d88747c7914432e8f0229137c960856
2015-03-31Fix NPE if InCallActivity is finished before call card is displayedYorke Lee
Bug: 20001311 Change-Id: I8c6994062065da55d6e37652d9a6c8e5985c5f7a
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-25Fix NPE in showDialpadFragmentJay Shrauner
Check for null ProximitySensor Bug:19931065 Change-Id: I33b72552260f4b670457ea0ba6e30e5b4819f636
2015-03-25Dynamically add/remove CallCardFragmentYorke Lee
Only show the CallCardFragment when it is needed: 1) Incoming calls 2) After completion of circular reveal Also make Calls class public so that it can be mocked with Mockito Change-Id: Ife7ed38bde25daf5a9fd0329ade5e794fa1bff65
2015-03-13Dynamically add AnswerFragmentYorke Lee
AnswerPresenter is a little tricky because it is in charge of responding to incoming calls, so we want it to be alive and getting onIncomingCall callbacks, but we don't want to create an instance of AnswerFragment, which it is dependent on. Move some dependencies around so that AnswerPresenter is created by InCallPresenter instead. It registers for callbacks via InCallPresenter instead of directly to CallList, and shows/hides the AnswerFragment via InCallActivity. Change-Id: I7026150988bf3cda762dda8a319f48e1af132361
2015-03-09Standardize naming of methods and fix a typoYorke Lee
Change-Id: I9b294ab9f483bb5e7af149ff6054cd8cd667adca
2015-03-09Improve InCallUI fragment managementYorke Lee
* Load some fragments on demand * ConferenceManagerFragment * DialpadFragment * Remove ConferenceManagerFragment from incall_screen.xml so that it is no longer loaded statically * Add helper methods to InCallActivity to facilitate dynamically loading fragments * Fix some bugs with fragment visibility and activity recreation Change-Id: I475e2302fae415817f06da209dd6484c89467480
2015-03-05Merge "Remove CircularRevealActivity"Yorke Lee
2015-03-04Remove CircularRevealActivityYorke Lee
Replace CircularRevealActivity with a fragment that is tied to the lifecycle of InCallActivity so that InCallActivity is the only activity that is involved in the outgoing call process. Simplify some of the intent creation logic that is used to launch InCallActivity since we no longer need some of the flags that were currently provided via various method overloads in InCallPresenter.getAnimationIntent and getInCallIntent. To further simplify this CL, a very rudimentary approach is taken to track the state where we are starting up the UI but haven't received a call from Telecom yet. This is done by a boolean flag set on the InCallPresenter: mBoundAndWaitingForOutgoingCall. Further changes will build upon and improve this. Also set most elements inside primary_call_info.xml to visibility: GONE by default to fix some animation jank where a empty but not GONE view would continue to take up space. Change-Id: Ic70857685680af6868d4b2153d942d73eef3ca56
2015-03-02Merge "Don't hide dialpad when disconnecting"Yorke Lee
2015-02-27Don't hide dialpad when disconnectingYorke Lee
This was originally needed because the dialpad was full screen and would obscure the call status when ending the call. This is no longer true with the L dialer and the dialpad sliding animation when the call is ended looks weird. Change-Id: Id78c2bef3470066b9e8e86bce0c6f431df5adde2
2015-02-27Update some comments in InCallActivityYorke Lee
Change-Id: I9fce3fbd1fa51a6a0489de2d97691fc8e4aa143c
2014-12-19Merge "Show error dialog and end call for service not supported error" into ↵Yorke Lee
lmp-mr1-dev
2014-12-18Show error dialog and end call for service not supported errorYorke Lee
Add another condition for which InCallActivity is launched so that it can disconnect the call and show the error dialog. Slight refactor of code that checks if a call has valid accounts so that it can be shared. Bug: 18781230 Change-Id: I83a9c4ee30f2a80168f3244f4929f70aa46b9d83
2014-12-17Merge "Revert "Allow back to be pressed while in incoming call screen"" into ↵Yorke Lee
lmp-mr1-dev
2014-12-15Revert "Allow back to be pressed while in incoming call screen"Yorke Lee
This reverts commit bd9ccd501ebd83508dfe52121e0f4827cc6e1fa3. Bug: 18742942 Change-Id: I8016ddae8addb56b4d6350748628fec351e6531a
2014-12-10No InCall UI visible after hiding conference manager.Tyler Gunn
- The hide of the conference manager fragment and subsequent show of the call card was being done inconsistently in a few places. - Added a new method to hide/show the conference manager fragment and the call card at the same time and replaced all references with this new unified method. Bug: 18699503 Change-Id: Ia6b80bdc29198627b1c46de72da432dc9523dc5e
2014-12-05Merge "Improve outgoing call UI responsiveness" into lmp-mr1-devYorke Lee
2014-12-04Merge "Fixing manage conference accessibility issues." into lmp-mr1-devTyler Gunn
2014-12-04Improve outgoing call UI responsivenessYorke Lee
* Start InCallUI immediately once Telecom binds * This CL is a bandaid for improving outgoing call responsiveness in the MR1 timeframe. Refactoring InCallActivity into dynamically added fragments and modifying its lifecycle with respect to the call list is too risky. * Add a lightweight activity (CircularRevealAnimationActivity) that is used to display the circular reveal animation while the significantly heavier InCallActivity is starting up * Inside InCallServiceImpl.bind, start the reveal animation once bind is called to avoid being blocked by any synchronous work in Telecom. * Refactor CallCardFragment.animateForNewOutgoingCall to conditionally display the reveal animation, depending on whether or not it was already displayed by the CircularRevealAnimationActivity. * Refactor the calculation of theme colors in InCallPresenter so that the CircularRevealAnimationActivity can use those colors as well. * Remove PENDING_OUTGOING from the list of call states that bring up InCallUI. Bug: 18373617 Bug: 18611753 Change-Id: I44c593373864ffc0ba9edebb88887177112d8b27
2014-12-04Fixing manage conference accessibility issues.Tyler Gunn
1. The "Manage Conference" button would be announced twice when it received focus. Moved content description to the parent FrameLayout that acts as the button and made it focusable to ensure that the description is read only a single time. 2. When tapping "Manage Conference" button there was no audible feedback that the manage conference screen was opened. Set focus to the list of conference participants so that this list is announced when the manage conference screen opens. 3. It was possible to change focus from the list of participants in the manage conference screen to the call card buttons and other elements behind the manage conference screen. Fixed by explicitly setting the call card fragment visibility to GONE when the conference manager is shown. Bug: 18440532 Change-Id: I0ce4f74ccb98c5cefd6c6e75eb8ef9310bd6d7fb
2014-12-02Add some more logging in InCallActivity and InCallPresenterYorke Lee
Bug: 18589036 Change-Id: Idac704fab2f31ecc908c1fe9ffe854dda0d2c34f
2014-11-12Merge "Allow saving of presenter state during activity recreation" into ↵Yorke Lee
lmp-mr1-dev
2014-11-10String resource edits for InCallUINancy Chen
Adjust strings in InCallUI per ewong@'s edits. Bug: 17446974 Change-Id: Ic11f8de792e714c8d48b009ae75cb214fb2ba6ce
2014-11-10Allow saving of presenter state during activity recreationYorke Lee
Also correctly save state of CallButtonPresenter so that mute/unmute logic persists across activity destruction. Bug: 18270222 Change-Id: I56abd69aa04bfc63f2ffab0f35d551f03df75867
2014-11-06Merge "Make setting and unsetting InCallPresenter.mInCallActivity more ↵Yorke Lee
robust" into lmp-mr1-dev
2014-11-04Make setting and unsetting InCallPresenter.mInCallActivity more robustYorke Lee
It is not likely because InCallActivity is single instance, but protect against InCallPresenter.setActivity(null) being called by a second instance of InCallActivity while the first is still active. Also minimize the time InCallPresenter spends on the state where mInCallActivity is not null but it is also finishing. Bug: 18150786 Change-Id: I51ea5765cbc72cd9d0144d3f6bb6f64a7c8f17cf
2014-11-03Remove provider icon from InCallUI.Nancy Chen
Because we are now using the SIM color to designate which SIM is being used in the InCallUI, we are removing the icon from the primary and secondary call info fields. Bug: 18204058 Change-Id: Ibc0b74ce2a104e7aa506a2d200c0e1b9997df7d5
2014-10-31Merge "In Multi-SIM cases use the color of the SIM icon for InCallUI." into ↵Nancy Chen
lmp-mr1-dev
2014-10-31Merge "Revert "Call InCallPresenter.setActivity(null) in onPause"" into ↵Yorke Lee
lmp-mr1-dev
2014-10-31Revert "Call InCallPresenter.setActivity(null) in onPause"Yorke Lee
This reverts commit 29669fa9974ee7189bb89793d4b6fd13b5672fcb. Change-Id: I20a7201e4715023cc8b02177bbac337f8e8a96c1
2014-10-31Merge "Call InCallPresenter.setActivity(null) in onPause" into lmp-mr1-devYorke Lee
2014-10-31Call InCallPresenter.setActivity(null) in onPauseYorke Lee
Minimize the time InCallPresenter spends on the state where mInCallActivity is not null but it is also finishing. Bug: 18150786 Change-Id: Ibf432625180e40c79220bbc1562565033d1e2618
2014-10-30Fix skipped frames in circular reveal animationYorke Lee
If FLAG_DISMISS_KEYGUARD was requested while in the middle of the outgoing call animation, the resulting window update led to a relayout/ view traversal in the middle of the animation that would cause skipped frames. To fix this, cache the current state of whether or not the keyguard has been dismissed, to prevent unnecessary changes to the window state. Also request for the keyguard to be dismissed in onCreate if we know that this is an outgoing call to prevent the unnecessary relayout later in the outgoing call flow. Bug: 18004737 Change-Id: I057a695ee513befbb410bfe1328d1aae45595896
2014-10-29In Multi-SIM cases use the color of the SIM icon for InCallUI.Nancy Chen
Set the color of the InCallUI to be the color of the SIM icon. In the single SIM case, the background should be the default background. * Added id to all call button backgrounds for color change * Initialize color onResume for InCallActivity * CallCardFragment/CallButtonFragment/DialpadFragment update their colors * Added InCallUIMaterialColorMapUtils to extract color Bug: 17971273 Change-Id: Ia247b153b57ffc8a5277d521c433ab0be6696cf6
2014-10-23am f826a8f1: Merge "InCallUI should report to Telecom when user sets default ↵Nancy Chen
account via dialog" into lmp-sprout-dev * commit 'f826a8f12d2e32aa19f906eb424a5fcdb8840205': InCallUI should report to Telecom when user sets default account via dialog
2014-10-22InCallUI should report to Telecom when user sets default account via dialogNancy Chen
Modify the phoneAccountSelected method to support the option to set the selected phone account as the default for outgoing phone calls. Refactor InCallUI to support this feature. Bug: 18078232 Change-Id: I4d90a58c896f036020cc7e3ea63b0493976042a4
2014-10-10Allow back to be pressed while in incoming call screenYorke Lee
Bug: 10692603 Change-Id: Id7ad95ec069f0f6a28183d0eb010ce4fa8758b52
2014-10-08Generalize select account dialog for usage anywhere in dialer (1/2)Nancy Chen
Currently the select account dialog is specific to InCallUI, but there are other places in the dialer app that will need the user to select an account (e.g. MMI pin) so we want to reuse this dialog. + Move dialog to ContactsCommon + Add a listener to the SelectPhoneAccountDialogFragment class Bug: 17917937 Change-Id: I872dba36f0f53737398861ff5376cc07f0e11c7b
2014-09-19Display error dialog if no accounts are available to call from.Nancy Chen
Immediately disconnect call if no accounts are passed from Telecom to select from and no account is preset. Bug: 17486242 Change-Id: Ia2e3f78a75783f6c838c0ed38fc68d8eb96cf7af
2014-09-17Replace get*PhoneAccounts* public API methods with new method (3/3)Nancy Chen
Hide getCallCapablePhoneAccounts and getPhoneAccountsSupportingScheme because a third party app should not be able to see all phone accounts registered. Also pass available phone accounts for the user to select from through Telecom to InCallUI so InCallUI will not be calling the Telecom API directly to get these accounts. Bug: 17510811 Change-Id: Ia0398ec35cc576b946a85a10f6f58a74fcd5191b
2014-09-16Update InCallUi to use telecomm DisconnectCause.Andrew Lee
- Remove conversion of messages for dialogs and failures. This is now done by Telephony. + Replace telephony DisconnectCause with telecomm DisconnectCause. Bug: 17329632 Id: I8677eb2cda008bd91f852c1de96174dfe42f735f Change-Id: I9e170537845a67ff9b14a38f5f3425de82648ab5
2014-09-12Renaming Telecomm to Telecom.Tyler Gunn
- Changing package from android.telecomm to android.telecom - Changing package from com.android.telecomm to com.android.server.telecomm. - Renaming TelecommManager to TelecomManager. Bug: 17364651 Change-Id: Ie5ae18f51baa5da2eb9793785ad0c9d83b6343d1
2014-09-02Add supported URI scheme to PhoneAccounts. (4/4)Tyler Gunn
Modify SelectPhoneAccountDialogFragment to filter the PhoneAccounts to only those which can support the URI scheme of the call. Bug: 17140110 Change-Id: Iccf69fd7360ae05264cec0c19cc82ec34d3137ee
2014-08-27Restyle conference call manager screen.Andrew Lee
+ Swap out/in new assets for end/split icons in the manager screen, and the splash screen in the InCall screen. - Removed unused conference call manager code, including things like chronometer and the "done" button. + Replaced custom action bar in conferece call manager with standard action bar. + Added contact image (does not open quick contact) in the list of calls in the conference call manager. This is done with a lookup using the contact photo manager, and required adding the lookup key to the ContactCacheEntry. + Handled a missing Call.State case in CallCardFragment for calls with state CONFERENCED which caused crashes. + Misc style changes on conference call manager: colors, sizes, paddings. + Adjusted elevations so dialpad covers manager/secondary buttons. + Added ripple to manager/secondary buttons. Bug: 15862303 Change-Id: Iab9b6421d5a1ea69cd951a459d46c065f9456a8f
2014-08-22Move "manage conference calls" button above photo.Andrew Lee
- Remove it from the CallButtonFragment. This meant that related logic was removed from CallButtonFragment/Presenter, and similar logic was added to the CallCardFragment/Presenter. - Delete old groups icons. (new ones added in ContactsCommon) - Delete the extra_button_row logic. + Replace extra_button_row with a dedicated "manage conference calls" button, and added to call card content layouts. + Style the new button to be similar to the secondary call info. Bug: 15862303 Change-Id: I2b4e1a3a30422c7d5e9c01479f13291a785d85f3
2014-08-20Circle reveal for account selection dialog and check for valid account.Nancy Chen
Touch animation reveal should happen from where the user touches the screen. This change deals only with the account selection dialog case (and should be the last one). Also if phoneAccountSelected in TelecommAdapter is called with an empty accountHandle, log an error. Bug: 17124195 Change-Id: I381ec7e377ee3be981c4e8b63b5253d75561b6bf
2014-08-19Move hold "bar" to the bottom of the screen.Andrew Lee
+ Adjust FAB positioning scenarios; scale in and out instead of translating when showing/hiding. + Translate FAB depending on whether secondary call info is shown. Bug: 16399233 Bug: 15862303 Change-Id: Ibbf89f717a38f2ed6d4d995544e290da4d4d7462
2014-08-16Merge "Position/size adjustments to the floating action button." into lmp-devAndrew Lee
2014-08-15Position/size adjustments to the floating action button.Andrew Lee
+ Use new theme color for dialpad tints. + Translate FAB higher and make it 128% scaled in InCallUI. + Add methods so that dialpad is shown/hidden, FAB transitions to/from its normal position and normal scale. + Translate button in/out when enabled/disabled. Bug: 16399233 Change-Id: Ia8f56f494a89927c25657a75cfcca147c34c6c98
2014-08-15Merge "Do not show error for a canceled call." into lmp-devSantos Cordon
2014-08-15Do not show error for a canceled call.Santos Cordon
Bug: 17067923 Change-Id: I89bcd3fd743da544957bc2af59126edf5a44548b
2014-08-15Fix NPE in InCallUIYorke Lee
If there is no call for some reason, just ignore the touch point. Bug: 17065151 Change-Id: Ib208e08465cf8247d3fded6df323c66ccf7778d8
2014-08-13Reveal InCallUI starting from the user's touch pointNancy Chen
InCallUI expanding circle should start where the UI made the call. Bug: 16396523 Change-Id: I1c7775fcbe684a51376f5a1b744bdd06f26e7bbf
2014-08-12Merge "Correcting dialpad animations in landscape (2/3)." into lmp-devTyler Gunn
2014-08-12Correcting dialpad animations in landscape (2/3).Tyler Gunn
1. Fixed slide in/out animations for RTL locales. Bug: 16463723 Change-Id: I526efec7795c891cbb4fa27776bb8be7d26ac114
2014-08-12Improvements to InCall UI view inflation performance.Tyler Gunn
1. Flattened the view hierarchy to remove a few layers of nested frames. Removed call_card.xml since it was essentially just nested frames. 2. Deferring inflation of the dialpad until it is actually needed. Bug: 16594582 Change-Id: I34a03dc3d95431bd0ba1d784a64ae3929f240d46
2014-08-05Set correct interpolator for dialpad animationYorke Lee
Bug: 16659277 Change-Id: Ia8c61220b9278105a59894d326f55fcd309eb5db
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-25Add more disconnect causes 4/4Santos Cordon
Bug: 15692074 Change-Id: Ib94c33fac8450b70e53dbe12d71f41777e9e140c
2014-07-17Bring up dialog when an account is not set for the phone callNancy Chen
If an account default is not set, the incall ui will display a dialog to allow the user to select an account for that particular call. Bug: 16243703 Change-Id: Ic97c50d1116dd11ef900c4d20c6439683ed60e06
2014-07-14Implement new In-Call Service interfaceIhab Awad
Change-Id: Ic1eb6fc98e7f030885596c9c40f0ed4f0e34e28b (cherry picked from commit c90543e6ef64b16b4c1bb240494152bc513f1e36)