History log of /packages/apps/InCallUI/src/com/android/incallui/CallList.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
7fff6a25f65e0949c8e2682d6470cf065e76a63f 21-Sep-2013 Santos Cordon <santoscordon@google.com> Add generic error code dialogs for failed calls.

This change listens for disconnected calls and if the disconnection
cause matches a set of predefined causes, we show a dialog to the user.

New dialog messages:
- You can\'t make outgoing calls while call barring is on.
- All calls are restricted by access control.
- Emergency calls are restricted by access control.
- Normal calls are restricted by access control.
- Outgoing calls are restricted by FDN.

Several changes were necessary to support this:
1) Dialog code (InCallActivity.java)
2) Notifications for a new disconnect (CallList.java)
- previously we sent a large update for ondisconnect, now we just
send the notice for that particular call. InCallPresenter was
written so that the same thing that used to happen still happens.
3) Check if we need to show a disconnect dialog when the UI comes up.
- I found that FDN disconnection happens so quickly that the
disconnect came before the UI was up, so this was necessary.
(InCallPresenter.setActivity())
4) CallCard should be initialized with disconnecting/disconnecting calls.
- Call Card presenter intializes itself when it starts up using live
calls, but as with the FDN case above, a disconnected call should be
used if no live calls exist. (CallList.getFirstCall())
5) If a dialog is up while an incoming call comes up, dismiss it
automatically so that users can see incoming UI.
- (InCallPresenter.startOrFinishUi())
6) Keep the UI up as long as there is a dialog for the incoming call.
- Previously, UI would come down once all calls were shut down but
in the case of present dialogs, we want it to stay up.
(InCallActivity.finish())
- When the dialog is dismissed, check if we want to tear down UI.
(InCallActivity.onDialogDismissed())
7) Only tear down UI once we are in the NO_CALL state.
- We used to tear down when the activity was null (closed) and the
service was disconnected. This is problematic because a call that
immediately disconnects (like FDN errors) would shut down the service
before the UI had a chance to come up. We added a check to the
conditional for the state NO_CALL before shutting down.
(InCallPresenter.attemptCleanup()).

bug: 10680210
Change-Id: I1fd33dd53dc0eec5a02b7a940cfd018cec3d20c0
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
672b16d0620d033e10fab30ccd70f5dd23e823b7 19-Sep-2013 Santos Cordon <santoscordon@google.com> Add "retrying" text for CDMA redial calls.

listening for new REDIALING state.

bug:10824223
Change-Id: I2b6f2f74713197902c93deca203f4f136732f7a2
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
ecabb6923e6587e0f0ca98cc895be7d99e694015 19-Sep-2013 Christine Chen <christinech@google.com> Adds DISCONNECTING state support.

When user ends a call locally, we first set the call state to
DISCONNECTING and show "Hanging up" as the status. We then show the
"Call ended" status when the telephony layer comes back with the
DISCONNECTED state for the call.

Bug: 10808537
Change-Id: Iad5eda6ee34e2f04a861977ac1a2453a52081d27
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
046386ed5ae615c8d83bb5a9eccc15e5f79b61cc 18-Sep-2013 Christine Chen <christinech@google.com> Moves some TODO(klp) to TODO

Bug: 10605909
Change-Id: I6c961494f5470e6e96dd50ccec49bbc8c5862285
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
14dbc3f0ca3a7998c9c5d28aba637487724f529f 14-Sep-2013 Santos Cordon <santoscordon@google.com> Fix UI lag when calling a contact with a photo.

Related fixes unrelated to latency problem:
a. Update StatusBarNotifier with new changes to CallerInfoCache.
b. Outgoing JANK fix in notifier needed to know if the activity
was previously started, not just if it was finished. (b/10734874)
c. Consolidate places where we use the Intent.

Several improvements to speed up startUp time from most egregious to
least:
1. In InCallPresenter, statusBarNotifier wasn't unlistening to
incoming call changes which kept orphaned instances still listening and
calling into contactInfoCache. ContactInfoCache was subsequently calling
into many notifiers which did heavy image parcelling work.
- Clear incomingCallListeners on tear down.
2. StatusBarNotifier was getting called directly from InCallPresenter &
onIncomingCall() callbacks. onIncomingCall callback was unnecessary and
caused extra work.
- Fix is to stop listening to incoming calls. Status bar notifier gets
called directly by InCallPresenter in startAndFinish() so listening
to incoming was redundant.
3. Make ContactInfoCache listeners list a Set to avoid duplicate
entries and reduce callback execution.

bug:10712670
bug:10734874

Change-Id: Ic8d50b1d9ce336ffe3a5191abe1c9db32365eee6
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
e0b102c5caa81f2717da1ac951a45699c7f319be 10-Sep-2013 Santos Cordon <santoscordon@google.com> Make sure onDisconnect also notifies single-call listener.

onDisconnect was not notifying listeners interested in a single call.
In this case, it wasn't notifying the answer presenter.

bug: 10678095
Change-Id: I81a7205eb886e136184c5754b0caebd68ac86031
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
7791690df4406bd51e3d3b0c256a4d6664951141 28-Aug-2013 Chiao Cheng <chiaocheng@google.com> Merge "Major fixes for in call to work with reverse number lookup." into klp-dev
8b6c8d0dbfba6eabe3d835f8cdcec8a13e253d0c 23-Aug-2013 Chiao Cheng <chiaocheng@google.com> Major fixes for in call to work with reverse number lookup.

- Separated caller info data into CallIdentification and switch callbacks to use
it where call state is un-necessary.
- Changed mCallList.update() method to be onIncoming().
- Catch all exceptions from service methods so errors do not vanish.
- Fixed bind failure cases which led to DeadObjectException.
- Changed local contact lookup to only occur for incoming calls.
- Fixed CallCardPresenter to start contact search upon isntantiation instead of
waiting for next call update.
- Convert ContactInfoCache to singleton to avoid race condition where it's not
initialized.
- Handle cases where primary call may be null when we find a contact.
- Fixed race conditions in CallButtonPresenter where audio mode is being set
before ui is ready.
- Fixed race condition in AnswerPresenter where state change was being called
before ui is ready.
- Changes to CallCardPresenter to support lookup for conference calls.

Bug: 10413515
Bug: 10390984

Change-Id: I9fc4f2f35e8f5aad33c301b3c5c93132634cb63c
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
ea83891eb10811d5020cc5fdaf34b711012dab32 28-Aug-2013 Santos Cordon <santoscordon@google.com> Adding different timeouts for CALL_ENDED screen.

Different call disconnections require different timeouts for the call
end screen. This change adds them as they existed before the split.

0ms for incoming rejected/missed calls
200ms for locally ended calls (user hits disconnect)
2000ms for normally ended calls (terminated by other end)
5000ms for everything else (errors, etc).

bug: 10414373
Change-Id: Ie9624bd3af5f6d4f58010360701c31efafcf1fb2
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
1a7f2bcab2d2023f2ee4cfb0bc57bc265b5aab87 21-Aug-2013 Chiao Cheng <chiaocheng@google.com> Protect all logging statements.

- Rename global logger so it can be a drop in replacement for framework log
class.
- Remove imports of android.util.Log

Bug: 10411948
Change-Id: I377625263b16c4f9408c79d5c533a1810fa6cde7
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
3c5581a67ba89fd96fc19e64f6c4780d0a58f640 20-Aug-2013 Santos Cordon <santoscordon@google.com> Support connecting and disconnecting from Phone app.

Phone app now connects/disconnects from the UI when there are no active
calls but UI did not previously support being disconnected. This change
adds the following functionality to support dis/reconnection:

- CallCommandClient now supports setting new ICallCommandService
instances.
- CallCommandClient now checks if mCommandService is null before
executing a method.
- CallHandlerService performs more careful ordered cleanup with
destroyed including removing pending messages and clearing any
existing calls from the call list.
- InCallActivity now performs tearDown of the presenters with onDestroy
instead of finish() to reduce NPE instances.
- InCallActivity not notifies InCallPresenter when is finishes, and not
just when it starts.
- InCallPresenter tears itself down after two things happen: the UI is
destroyed and the service is disconnected.
- InCallPresenter now issues a full-screen restart of the UI if the
UI was previously hidden (except for new outgoing calls). This allows
the UI to come back to the foreground if it was in the foreground when
the app went down.

The above changes also now protect against the phone app crashing or the
incall UI crashing.

bug: 10363682
Change-Id: I9b785f906f29015827e8e53e64cd5f5c72cd7981
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
1df52df7a0248814fbd4575103059a8b427f5d9a 15-Aug-2013 Santos Cordon <santoscordon@google.com> Add logic support for manage conference screen. (Part 2 of 4)

Changes:
- Add conference call resource photo
- Move logic to determine the name/numbers to show in the Call card
from CallCardFragment to CallCardPresenter.
- CallCardPresenter now tells CallCardFragment if the primary call is
a conference call.
- Updated the primary/secondary call order do that Active Calls are
primary instead of Disconnected calls when both exist.
- Cleaned up some excessive logging.
- The CallCard code uses a whitelist to know which callcard to show.
The change in services/Telephony to add CONFERENCED state is what
causes the new child calls to now show since that is not added to
the whitelist in this CL (by design).

bug: 10334739
Change-Id: Iaeab3f8bc9bda7693fa4a27bb8d3fe5de4dc9dfc
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
4bbe4c6900dfe3584f674161dbe15e248d5adbe7 13-Aug-2013 Santos Cordon <santoscordon@google.com> Add Simplifying layer between Contact Info search and CallCardProvider.

I will be getting contact info on notifications for the next CL so this
creates a simpler layer for interacting with the contact data async
requester.

CHANGES:
- Moved the code which does the requesting from CallCardPresenter to
ContactInfoCache.
- ContactInfo Cache defines new listening interface and new simpler
object for transmitting the return data: ContactInfoEntry.
- Updated CallCardPresenter to use the new simpler interface.
- Updated some logging entries.
- Simplified Ui interface inside for CallCardPresenter.

Change-Id: Ic802c4e53cdf17fcd37c70deb6da61a78b9d8993
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
9de3d7c5188c02cabf03799f87d494ee7dc702cb 09-Aug-2013 Santos Cordon <santoscordon@google.com> Singletons are hard, lets go chopping...them out of the code.

After this change, there remains only one singleton (InCallPresenter).
The whole system needs to be reworked in a better manner in terms of
build up and tear down.

Change-Id: I393ec648526bc28a3ae709004aed6d4627670549
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
930ea81045240d6b690663f94c4c86ea045229d1 08-Aug-2013 Santos Cordon <santoscordon@google.com> Reduce timeout for showing "CALL ENDED" strings

Change-Id: Iea244033f77835a395fbf639defe73aa09559026
(cherry picked from commit 5e36f26c23c400aa17470e5bb91b1d694a53b648)
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
a12f2589f424e26c63c8ee5b6fad89e30b69d7fb 07-Aug-2013 Santos Cordon <santoscordon@google.com> Add UI to show when the Call disconnects.

When the call disconnects, we need to show UI for a short time before
existing the UI.

Change-Id: Iee648b8c54ee4b5ea09cfaec508e1bf8fb8f1643
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
e7be13fb0556e62b07bc271b130412d82d7f7521 07-Aug-2013 Santos Cordon <santoscordon@google.com> Supports for outgoing calls starting up the UI.

- Added the OUTGOING InCallState
- Added support for OUTGOING into InCallState, InCallPresenter, and
StatusBarNotifier.

Change-Id: I49d5a56a4394d05e948b16a82f23e3eb925fd0a0
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
10196fd2f7cc922693e2a7c6c932725a52157943 07-Aug-2013 Christine Chen <christinech@google.com> Adds support for text messages

Change-Id: Ibdb279a7dff0db710bcc1d6a313b486f6816ea65
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
efd4282ec4221ec5eefd4155a4ad915adcedca70 05-Aug-2013 Santos Cordon <santoscordon@google.com> Notifications in Phone (part 1)

- Added StatusBarNotification class to handle notifications
- StatusBarNotification has tons of copied comments from
NotificationMgr.java. Also has minimal code to make the notification
pop up (without call-specific data).
- Moved the UI start-up code from InCallPresenter to
StatusBarNotification. Incoming phone calls need to display an alert
above immersive (fullscreen) foreground activities and the way to do
that is through notifications. The old phone app did the same
thing...finally bringing over that functionality.

Change-Id: I3324503e0d7bb1de00d8e7fab72d4b40519491dd
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
9f22c7496af167f2eada26aa998364d4cf03a619 05-Aug-2013 Santos Cordon <santoscordon@google.com> Adding a central logging class.

Change-Id: I24f68d5ebcfed2740f9645736c35edf17efb4769
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
671b221ccadea34fb9327ef5342b26419eb5ca99 05-Aug-2013 Santos Cordon <santoscordon@google.com> Improve InCall State management

CL Contains the following changes:
- InCallPresenter now manages an overall in-call state
- Other presenters now listen to in-call state changes instead of
getting updates from CallList directly.
- Changes AnswerPresenter to a static fragment instead of dynamically
loading it. It makes code easier and more aligned with other fragments
used in the class.
- Presenters now save the appropriate call and use callId() for commands
sent to the telephony layer.
- Extra logging in CallList
- cleaned up the startup sequence in InCallActivity and moved everything
to onCreate instead of onCreate & onResume

Change-Id: I4ce4182eefcc134bfa16c33be8fe4aefc041f563
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
4d5c70b96ed0b49d737a7a60d02488681f023450 03-Aug-2013 Santos Cordon <santoscordon@google.com> Fixing incoming call sequence, adding InCallPresenter

Moved handling of AnswerWidget from AnswerPresenter and into the new
InCallPresenter class.

InCallPresenter now also manages a high-level in-call UI state to be
expanded in subsequent CLs.

Change-Id: Ia4fee84db68f7eaedea307b25329dadb8cf754e5
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
150a5c58c67f230c8fd7293b180bbf50aa761480 01-Aug-2013 Santos Cordon <santoscordon@google.com> Adding multi-call support.

Before this change, the UI came up when we were notified that a new call
came in, but we did not actually look at the call state, etc. This
seemingly worked while we only supported single calls but did not scale.

This change does two main things:
a) Plugs in CallList into the presenters so that they can perform their
logic based on the actual state of the calls (necessary for multi-call
support)
b) Adds Secondary CallInfo UI to the Call Card so that we can display
information foreground and background calls.

As a result of (a) from above, a lot of changes you see will be to
Presenters, which now take their cues from CallList and update their
Ui's accordingly. A problem with this approach is that the presenters
(callcard/buttons/answer-widget) perform their changes independently.
A subsequent change will consolidate interactions with CallList to a
Presenter-Manager class and away from the presenters.

Change-Id: I89d1926fa1eef6f10d897d2ce360f666c8f341f8
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
a012c22dfbfedffe2e751f9b1ab776baa325a26f 31-Jul-2013 Santos Cordon <santoscordon@google.com> Adding simple number data to callcard

This CL allows the number to be displayed in the CallCard.

Previous interaction:
CallHandlerService->CallList CallCardFragment (isolated, no data)

New interaction:
CallHandlerService->MainHandler->CallList->CallCardPresenter->CallCardFragment

1) CallHandlerService.MainHandler: executes remote method calls on the
main thread.
2) CallList: Added support for listeners.
3) CallCardPresenter: Presenter layer for fragment. Listens to CallList
4) CallCardFragment: Gets real data from presenter, displays phone #.

Change-Id: I6de3a9da15b69d44826c3226701eed6a1b86239c
/packages/apps/InCallUI/src/com/android/incallui/CallList.java
96b8ba57ac2399336478ffa7a2ccc9423bda0a52 29-Jul-2013 Santos Cordon <santoscordon@google.com> Adding a CallList class to manage Calls from CallHandlerService.

Change-Id: Ic6a7c88721a881654fb8afa174291415539b586e
/packages/apps/InCallUI/src/com/android/incallui/CallList.java