History log of /packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a1a9601840e50e18ff8ca4be9b888e592287577b 11-Sep-2012 Dianne Hackborn <hackbod@google.com> Don't crash phone app when running as non-primary user.

Rename PhoneApp to PhoneGlobals. Add new PhoneApp that only
instantiates PhoneGlobals when running as the primary user. Add
check in PhoneGlobals.getInstance() to immediately throw if called
when there are no globals for that process. Add new
PhoneGlobals.getInstanceIfPrimary() that doesn't throw;
OtaStartupReceiver uses to abort early if receiving a BOOT_COMPLETED
for a non-primary user.

All of the other files here are just due to the rename of PhoneApp
to PhoneGlobals.

Change-Id: Ic3999d956198ac836cb6a07fa3c77f36c1754ea3
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
91177a70c9024522c1d0d3ac570124998f09647a 30-Aug-2012 Dianne Hackborn <hackbod@google.com> Update to specify which user broadcasts should go to.

Change-Id: Ibc5c165be4bd57395a43d08b3024d2dad084a3ad
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
b0f85b4a78abead921c363f9c8e247d5bdd20c74 14-Jun-2012 Wink Saville <wink@google.com> Use telephony-common

Change-Id: I1710418850040fc20afff4795ee4a85027203fc9
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
f8a9fbe31969b4f97ea03d233684efc117888879 29-Mar-2012 Daisuke Miyakawa <dmiyakawa@google.com> Move TelephonyCapabilities from Phone to telephony

Must be after I0d4ca2f8e4d775004d146fe6f9c60165a94366a9 (framework)

- Use the class in framework and remove the original class.
- Add useShortDtmfTones() to PhoneUtils. It was originally in (old)
TelephonyCapabilities but it is more suitable to have it in the other
place.
- Remove now unused strings.

Bug: 6252254
Change-Id: Iee8964cd13f9a2fa9212b1655de0f49b04153ee5
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
08ad9a53367c93ab76dbc1d2c7a58681a6533cf8 15-Mar-2012 Daisuke Miyakawa <dmiyakawa@google.com> Fix obvious message leak.

Right now we're not removing the timeout message, so any kind of
outgoing call will reach the timeout. Though we won't show the
spinner thing itself, we emit mysterious log every time.

This change remove the unnecessary message when it becomes unnecessary.
It also delays the message until the broadcast being actually fired,
because the case is the only possible bottle neck in the sequence.
Other cases will be handled in UI thread so we won't show the spinner
anyway.

Change-Id: Ic58928b8cf256d080f2a8d9b3f56fa85a5b9e62d
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
0ab033df74e18e0775929422db5f4fce204ec22a 24-Feb-2012 Daisuke Miyakawa <dmiyakawa@google.com> Sort out OutgoingCallBroadcaster, again.

1. Remove Runnable classes and just cling to original straightfoward
implementation before I7bff3362cfcd31.
The work which AsyncTask does right now is found to be not a bottle-neck
at all. Creating AsyncTask and Runnable would just cause additional
overhead.

2. Use theme's window background instead of layout's background for
rendering black.

3. Use FrameLayout instead of RelativeLayout for the Activity.

Bug: 6059788
Change-Id: Idb367c691d20f87ed2eb18bdb887220782fa8f97
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
ac9a757e713579e7ae5728e22e884459682cbd50 02-Feb-2012 Daisuke Miyakawa <dmiyakawa@google.com> Make out-going broadcast show "wait" screen for a moment

This will fix the issue 5643104 "Outgoing call UX feels unresponsive
when the system is heavily loaded, and makes it easy to launch
unwanted multiple calls", while it may reduce the headache around
the issue 5690150 "With GoogleVoice dialpad screen shows Home screen
temporarily".

Because we've done every job for outgoing call broadcast on onCreate(),
user may have seen weird behavior just after sending a phone call
request from screens like dialpad.

With this change OutgoingCallBroadcaster will show the "black" screen
at first and launch AsyncTask for handling the Intent, which won't
block onCreate() anymore. If the task looks really slow, the Activity
then will show a spinner meaning "phone is being made. Wait".

TESTED:
- make usual phone calls without any 3rd party provider (GSM/CDMA)
- make usual phone calls with a 3rd party provider (GSM/CDMA)
- make SIP call.
- send CALL intent on tablet (without phone capability)

Bug: 5643104
Bug: 5690150
Change-Id: I7bff3362cfcd31e2af2ee974185bd14703b64b98
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
b967bf2d5ecbe57e3fe2d9d9389b203582b73fbf 02-Feb-2012 Daisuke Miyakawa <dmiyakawa@google.com> Use a new flag forcing foreground broadcasts.

Outgoing call broadcast will initiate in-call UI with handling
3rd party interception. All of those broadcast change is related to
how quickly in-call UI shows up, and thus should be treated with
foreground priority.

See also If1be33156dc22dcce318edbb5846b08df8e7bed5

Change-Id: I51a5cc5b5665c7a34d1b04b2e67ccb423f1c19b6
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
bd3132083f51f3e056134372720d73118cc5467a 01-Feb-2012 Daisuke Miyakawa <dmiyakawa@google.com> Add additional logs for exceptional cases.

This change will make OutgoingCallBroadcaster a bit more verbose when
- it detects emergency phone numbers
- it detects null or empty number

Those cases aren't usual while it looks bug 5914560 was caused in
one of those exceptional situations.

TESTED:
- outgoing call (usual number/emergent number)

Bug: 5914560
Change-Id: I07fe12e102a934658d8c97d68a13f7836e591ca7
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
50480073bf2394d5b065084f46b2223ab90fb7dc 24-Jan-2012 Daisuke Miyakawa <dmiyakawa@google.com> Use appropriate API for setting dialog icons

Bug: 5714244
Change-Id: Ifef815e7e9c871ae7226bac9b900817430a39304
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
b1545c869ff7fa76ce3c3256b23e1b2b4411f483 30-Nov-2011 Daisuke Miyakawa <dmiyakawa@google.com> Resume previous call origin if it looks a second call

3rd party app can intercept outgoing call and replace it with
another call initiated by the app, which makes the Phone app
forget call origin. We keep the call origin for very short term
and restore the previous info assuming the second call has
a same origin for users' perspective.

TESTED (with and without 3rd party app bypassing calls):
incoming calls
-> go back to calllog

outgoing calls
- make a phone call from dialpad -> go back to dialpad
- make a phone call from favorite -> go back to favorite
- make a phone call from calllog -> go to calllog
- make a phone call from call detail -> go to calllog
- make a phone call from People UI -> go to calllog
- make a phone call from dialpad and launch Phone UI
again during the phone call -> go to dialpad
- make a phone call from contact card (reached via
phone favorite) -> go to calllog
- make a phone call from dialpad or favorite, bail out the
in-call UI. Have the recipient hang up the call.
Then have an incoming call again. Hang up the second
phone call.
-> go to calllog
- make a phone call from search UI launched from dialpad
-> go to dialpad
- make a phone call from search UI launched from favorite
-> go to favorite

- make a phone call from dialpad and finish the call. Immediately
call again via People UI (to check the cache won't be used)
-> go to calllog

Bug: 5528034
Change-Id: Ia872c1fe9f5d00300377899271e8872bc9d8b90f
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
7ab901125c42d5fc5a18e085c4a03d641847d5cf 10-Nov-2011 David Brown <dab@google.com> am df2c68ff: am a42348fc: Use isPotentialLocalEmergencyNumber() to enforce ACTION_CALL restriction

* commit 'df2c68ff479d499b1b60a0f6ed24ab22f764cb9c':
Use isPotentialLocalEmergencyNumber() to enforce ACTION_CALL restriction
a42348fcc3a76ab0db9b710ee40042a73a0b9dac 07-Nov-2011 David Brown <dab@google.com> Use isPotentialLocalEmergencyNumber() to enforce ACTION_CALL restriction

The framework PhoneNumberUtils class now provides a way to distinguish
between (a) numbers that are definitely emergency numbers, and (b) numbers
that *might* result in an emergency call being dialed, but aren't
specifically emergency numbers themselves.

Given that, we now use the new isPotentialLocalEmergencyNumber() API when
enforcing the restriction that 3rd party apps should not be allowed to
make emergency calls using the ACTION_CALL intent. (This ensures that 3rd
party apps can't make emergency calls by passing in an "invalid" number
like "9111234" that isn't technically an emergency number but might still
result in an emergency call with some networks.)

Everywhere else in the app, though, we still use the original
isLocalEmergencyNumber() API, which now returns true only if the specified
number *exactly* matches a known emergency number. This ensures that the
in-call UI will only display the "emergency call" state for numbers that are
*definitely* emergency numbers. (See bug 5493790 for the full details.)

TESTED (on Prime-C):

- Call regular non-emergency numbers from the built-in dialer
==> calls succeed with no emergency-call specific behavior

- Call "911" from the built-in dialer
==> Call to 911 succeeds
==> In-call UI shows the "emergency call" state
==> We correctly disable "mute"
==> We correctly enter ECM

- Call "9111234567" from the built-in dialer
==> We allow the call to be placed
==> The call does not actually go through; you just hear a recorded
message from Verizon saying "the call could not be completed"
(although this behavior might be different on other networks)
==> The in-call UI does NOT show the "emergency call" state
==> We do not disable "mute"
==> We do not enter ECM

- use CallDialTest activity to fire off various ACTION_CALL intents
(as if launched from a 3rd party app):
"911" ==> doesn't allow the call to be placed (brings up dialer instead)
"9111234" ==> doesn't allow the call to be placed (brings up dialer instead)
"6502530000" ==> call succeeds

Note: This change depends on
Change-Id: Ic528cfcc555734cdaf4ca8a18a50199771ba49b1
in frameworks/base (which must be submitted first.)

Bug: 5493790
Change-Id: Ib949fea3c0ce6b341a90e617a03ba3f22c69018b
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
919b11dcec9c7a80121e6cb4b9e624f59da43d55 24-Oct-2011 Daisuke Miyakawa <dmiyakawa@google.com> Use call origin in SIP calls too

Bug: 5039627
Change-Id: I3b36bdd62ffb584f2087823e269619b06ecfbc71
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
6734941af0f8874ca584a363ef3a8febe41b397d 27-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Introduce CALL_ORIGIN

Phone app now accepts "com.android.phone.CALL_ORIGIN"
as an intent extra, which allows the app to remember where
the phone call comes from. Because InCallScreen may
receive multiple Intents and thus multiple origins, we
just remember the last one as active request.

Right now we just use temporary logic for handling the
call origin, introducing Contacts app's DialtactsActivity when
the origin requested.

See also I7b88b245e82e96e150937ee53029d397a28a9b2d

Bug: 5360106
Change-Id: I4d5f825f7d5109c6ff8c27b6e53a31ca9e6b832f
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
1ca2b2b333a7c22b728d648d3592ee064762dd00 14-Sep-2011 Shaopeng Jia <shaopengjia@google.com> Update code to use location aware isEmergencyNumber.

Bug: 5247602
Change-Id: Ibce4b29f7062117c89071f23f39019deb3969b13
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
a841177ae2676d3ad92f82f8d378bc4915f238c9 30-Aug-2011 David Brown <dab@google.com> Fix a bunch of STOPSHIP comments, mostly about PII logging.

TESTED:
- normal outgoing call sequence: confirmed no PII in logs
- normal incoming call sequence: no PII there either
- verified the ITelephony call() and dial() APIs still work, and don't
log any PII either. (Added new tests to the CallDialTest activity for
these.)
- confirmed no remaining STOPSHIPs anywhere under apps/Phone

Bug: 5231962
Change-Id: I995bc58791f553f1a4ad51276b4b31603b196635
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
7c8cb32060a685b2f20c1e0cf181fc392be840e0 06-May-2011 David Brown <dab@google.com> Misc OTASP cleanup

Some minor OTASP-related code and resource cleanup that I did while
tracking down bug 5092031:

- Cleaned up the useless "mDialer" field in OtaUtils.java. The OtaUtils
instance already has its own DTMFTwelveKeyDialer, so the one from the
InCallScreen is totally irrelevant.

- Removed a couple of useless ScrollViews in otacall_card

- Added android:id attributes to a bunch of view elements (for easier
debugging in hierarchyviewer), also renamed a couple of elements to be
more clear

- Fixed flood of updateScreen() calls while the OTASP UI is active.
(The various otaShow*() methods should *not* call requestUpdateScreen(),
since they themselves are part of the updateScreen() sequence!)

- Improved documentation in a bunch of places

TESTED:
- OTASP call on Crespo-S (succeeded)
- Also ran an OTASP call with the OtaShowListeningScreen resource
temporarly enabled, to simulate an OTASP call for the other carrier.
Confirmed that the DTMF keyboard showed up correctly and allowed you to
press "1".

Bug: 5092031

Change-Id: I86b6b80a340606aba6f4a3d4292193c027486913
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
8ffe7a03a21441fa6d1f3c96a82c68f4ee8900dd 27-Jul-2011 David Brown <dab@google.com> Fix outgoing calls for phone numbers with "keypad letters"

During the OutgoingCallBroadcaster sequence, we convert the phone number
from the CALL intent into an "actual number to dial" by stripping out
separators and converting keypad letters to digits.

Unfortunately, in change https://android-git.corp.google.com/g/112767 I
accidentally removed the code in CallController that *used* that string,
so we would just end up dialing the unsanitized number from the original
intent :-(

The fix is to have CallController.getInitialNumber() pay attention to that
value again. (It's passed as an extra, which I renamed to be
EXTRA_ACTUAL_NUMBER_TO_DIAL to be more clear. I also improved some
javadoc while I was in there, particularly startSipCallOptionHandler().)

TESTED: All the different kinds of outgoing calls:
- Raw number typed into the dialpad
- Normal PSTN number from contacts
- 1-800-FLOWERS from contacts
- SIP address
And also confirmed that 1-800-FLOWERS shows up correctly in the call log.

Bug: 5021243

Change-Id: I0b67f39e09b857e97f89852411a820ab049affb7
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
65454c803eb305c4740885ad4995a871b034a58a 22-Jun-2011 David Brown <dab@google.com> Use constants for URI schemes

Use SCHEME_* constants instead of hardcoding
"tel" / "sip" / "sms" / etc. everywhere.

Change-Id: I1858384909a54ae86a27a5f557a80ee185873927
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
58e4707b6cc021a663deae3e614364545ec9ee6a 17-May-2011 David Brown <dab@google.com> Fix ACTION_CALL_EMERGENCY code path through OutgoingCallBroadcaster

InCallScreen/CallController overhaul: One place in OutgoingCallBroadcaster
was still launching the InCallScreen with a CALL intent, which would crash
the phone app if you tried to dial 911 :-(
The fix is to use CallController.placeCall() instead.

TESTED (crespo):
- regular outgoing calls
- directly dial 911
- dial 911 via voice dialer

Also double-checked that nobody else is manually creating intents pointing
to InCallScreen.class, except for places that are already flagged with a
"TODO(InCallScreen redesign)" comment.

Bug: 4444071
Bug: 4194458

Change-Id: I518fbf71302564bfb31d1c821464961823f1ed8b
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
75e3711d82d0c98444f6c438437cad41d862fca6 20-Apr-2011 David Brown <dab@google.com> Introduce CallController (Step 1 of InCallScreen redesign)

This is the first step toward pulling "call control" out of the
InCallScreen, and leaving the InCallScreen responsible for only the
onscreen in-call UI.

Design doc: http://wiki/Main/InCallScreenRedesign

The CallController is a singleton object which acts as the interface to
the telephony layer for all user-initiated telephony functionality, like
making outgoing calls.

In particular, any functionality which needs to happen whether or not
the InCallScreen is currently visible belongs in the CallController,
*not* the InCallScreen.

This change introduces the CallController class, and moves the entire
outgoing call sequence (basically placeCall() and its helper methods)
from the InCallScreen to the CallController.

Also, this change adds a helper class called InCallUiState, which keeps
track of some high-level state of the in-call UI that needs to persist
beyond a single pause/resume cycle of the InCallScreen.

This enables us to handle failed calls much more cleanly than before:
If there's a failure in the placeCall() sequence, the CallController
stashes away a failure code value in the "pending call status code"
field of the InCallUiState structure. Then, when the InCallScreen comes
up, if that field contains an error code we do some UI-specific action
(like displaying a dialog) depending on the code. See the "Error /
diagnostic indications" section of InCallUiState.java for the full
details.

Other details:

- Added a new class called "Constants", which currently contains the
CallStatusCode enum, but which I'll eventually use for other app-wide
constants too (for example the various EXTRA_* and intent action
constants that are currently all over the place.)

- Removed references to Intent.ACTION_ANSWER (which has never actually
been used for anything)

- Cleaned up confusing use of EXTRA_NEW_CALL_INTENT in
OutgoingCallBroadcaster (bug 3325827)

- Finally bit the bullet and added an mApp field to InCallScreen (so we
no longer need PhoneApp.getInstance() calls all over the place)

This change is just the first step of the InCallScreen/CallController
overhaul. Basic calling works fine with this change, but some other
stuff still needs to be fixed:

- OTASP-related behavior: (1) Handle the PERFORM_CDMA_PROVISIONING
intent in the CallController, not the InCallScreen; (2) move the
functions of InCallScreen.checkIsOtaCall() over to the CallController.

- Implement the "emergency call from airplane mode" sequence inside the
CallController (and get rid of the EmergencyCallHandler activity)

- plus various other loose ends covered by TODO comments.

TESTED: "Basic telephony functionality" on Crespo:
- outgoing calls
- incoming calls
- failed outgoing calls (airplane mode, no service, etc.)
- bail out and return to InCallScreen while in-call
- basic telephony states (two lines in use, hold/unhold, etc.)

Bug: 4194458
Bug: 3325827

Change-Id: I0523ef182a53fc7f252940d0b0e2804661dc9247
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
726d56f6373cdc347dc51293f4539c31678f9add 01-Dec-2010 Chung-yih Wang <cywang@google.com> am 97c186b7: am 72dc01ec: Merge "Fix the phone number issue of Internet call." into gingerbread

* commit '97c186b796442f7ddac84e4cf54d9d7299ce53ba':
Fix the phone number issue of Internet call.
5a57f046c7acae9867e7e4700ceec9fb07eb0a78 16-Nov-2010 Chung-yih Wang <cywang@google.com> Fix the phone number issue of Internet call.

Since the number could be rewritten by 3rd party apps, we have to strip
out the unwanted characters in the number string.

bug: http://b/3195000
Change-Id: I097a869b1f52223d916d62d57c85f5c1b6d06a11
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
6c5cf46a2a31f0bffe9df36da8922971f7ee296b 27-Oct-2010 David Brown <dab@google.com> Handle CALL intent gracefully on non-voice-capable devices

The exact details:

- For tel: URIs, just demote the CALL to a DIAL and relaunch it. That
hands it over to the Contacts app, which will bring up a UI letting you
do something useful with the phone number (like "Add to contacts" if it
isn't a contact yet.) See https://android-git.corp.google.com/g/76050
for the Contacts change.

- For anything other than a tel: URI, since the Contacts app can't do
anything useful with those (yet) we just display a generic "Voice
calling not supported" dialog (using basically the same wording as the
dialog that currently comes up if you try making a SIP call on a device
that doesn't support SIP.)

- The above applies only to the CALL intent. The other call-related
intents (CALL_PRIVILEGED and CALL_EMERGENCY) are only used internally by
built-in apps, so they should never get used in the first place on a
non-voice-capable device. So if we *do* ever see these, we log a
warning and show the generic dialog.

- Removed the "@android:style/Theme.NoDisplay" them from
OutgoingCallBroadcaster so that the new dialog will get the correct
system-wide default theme. This was irrelevant all along since
OutgoingCallBroadcaster never brought up any UI anyway.

- Finally, since there should now be no way to ever reach the InCallScreen
on non-voice-capable devices, throw an exception if that ever happens
(to make sure we notice.) There's a STOPSHIP comment to turn that into
just a warning before we ship.

TESTED on Stingray:

- Confirmed CALL and DIAL behavior using the CallDialTest activity from
change https://android-git.corp.google.com/g/75710 :

(1) tel: intent
==> CALL and DIAL both bring up the dialog from the
Contacts app with the options "Add to contacts" and "Close".

(2) sip: intent:
==> CALL brings up a generic "Voice calling not supported"
dialog from the phone app. DIAL throws an
ActivityNotFoundException just like on regular phones (since
the dialer has never handled sip: URIs.)

(3) blank intent (with no data)
==> CALL throws ActivityNotFoundException. DIAL is absorbed by
the contacts app but does nothing (since "bring up an empty
dialer" is meaningless on a non-voice-capable device.

- Also confirmed correct behavior of the generic "Voice calling not
supported" dialog:
- tap OK button
- tap outside the dialog
- press BACK
- press HOME
All of these successfully dismiss the dialog.

- Also tested a bunch of scenarios on Stingray to confirm that we don't ever
try to create the InCallScreen:
- regular boot
- manually killing and restarting the phone app
- after a CALL intent
- during an OTASP call

Bug: 3116625
Change-Id: I10d490c89e881572efb3e39b50c7b47338a7b5f5
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
6323823dec8d1fde89c7450e57a9ffe733a0b053 12-Oct-2010 Wink Saville <wink@google.com> Remove some PII.

Change-Id: I760cc7d59d7e210d429559d605ec5e4c1cb79122
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
08cd080c56979c22092ee611a416adb86618f868 28-Sep-2010 David Brown <dab@google.com> Minor debugging cleanup

Fix a misleading debug log message in OutgoingCallBroadcaster, add some
extra CallerInfo logging (disabled by default) in PhoneUtils.

Change-Id: I64d884038fcee94e9706298375b0568a0a4b7f33
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
1e5cdee4e88ac385e0049876d192d5659a71e4a6 30-Sep-2010 Chung-yih Wang <cywang@google.com> Don't send the NEW_OUTOGING_CALL broadcast intents for SIP calls.

bug: http://b/issue?id=3049355
Change-Id: Ie4b9e9a5804ab3d00906c161b65b8ef0ae8d1f0d
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
f2adde87c7c1e6d28b0bacd859d06ad9c8d92434 07-Sep-2010 Chung-yih Wang <cywang@google.com> Add 'make default outgoing sip phone' checkbox in the sip phone

+rename variables to make it more readable.
+make sure we call finish() once only.
+remove useless code in OutgoingCallReceiver.

Change-Id: I533c3d5708ae2b442b55fe123bd2128510845a7c
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
2587d9c6437b680911e252efecc73788e876de76 04-Sep-2010 Chung-yih Wang <cywang@google.com> Fix the sip call option.

Instead of calling the InCallScreen activity in OutgoingCallReceiver,
we will have it in the SipCallOptionHandler when the phone is
selected.

Change-Id: Iddfcdbd614e83791e14ddaae9ae2fd45fa4e2e5c
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
8343169cc89621d46dce86449f5ee1ff5d3a4919 11-Aug-2010 John Wang <johnwang@google.com> Enable CallManager to handle SIP call.

Using CallManager to handle SIP call

1. Register SIP phone in SipBroadcastReceiver

2. Answer SIP incoming call

3. Reject SIP incoming call

4. Make SIP outgoing call

5. hangup SIP outgoing call

6. Add SIP call while there is foreground call

7. Answer SIP call while there is foreground call

8. Swap SIP call and background call

Change-Id: I2fc1f88e0fc100da45eb497469d69c784f44d06a
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
7291a106eb69b365de60a9452c5fc31828e2db8e 11-Nov-2009 David Brown <dab@google.com> Fix an obscure scenario where a single CALL request would cause two outgoing call attempts.

Background: OutgoingCallBroadcaster is an invisible activity which receives
the CALL intent (from the dialer, contacts, etc.) and translates it into a
special broadcast called NEW_OUTGOING_CALL, which ultimately launches the
in-call UI.

Unfortunately if an orientation change happened at the exact right moment, the
ActivityManager would destroy and recreate the OutgoingCallBroadcaster, which
resulted in a *second* separate NEW_OUTGOING_CALL broadcast, which resulted in
two separate CALL intents coming in to the InCallScreen. In some phone
states, that 2nd call would fail, causing an error dialog to come up saying
"Call not sent". See bug 2202413 for the full analysis.

There are two parts of the fix:

(1) Fix OutgoingCallBroadcaster to gracefully handle the situation where it
gets killed and re-created, i.e. when icicle != null in onCreate().
In that case we just do nothing, since the NEW_OUTGOING_CALL broadcast was
already sent the first time that onCreate() ran.

(2) Set android:configChanges="orientation|keyboardHidden" in the manifest for
the OutgoingCallBroadcaster activity. This prevents the ActivityManager
from killing and restarting us in the first place.

Note that either part by itself actually fixes this bug (and I did test them
separately), but they're both technically correct, so this change contains
both.

BUG=2202413 ('call not sent' prompt displayed when we add call in landscape mode)

TESTED:
Both GSM and CDMA:
- Making an outgoing call from contacts
- Making an outgoing call from the dialer
- Making an outgoing call from the call log
- Making an outgoing call from the emergency dialer
- Making a 2nd outgoing call while on a call
CDMA only:
- Sending an empty flash (pressing DIAL in the dialer without any
digits, while a call is already in progress)
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
6b0efb615a5b1a65984192384c88965fa7dd06a0 05-Nov-2009 David Brown <dab@google.com> Minor logging cleanup/tweaks to help debug bug 2202413.
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
4b7ce809b620710090c638c12afb070fb25c037a 28-Oct-2009 David Brown <dab@google.com> FIX 2158367: Nuke obsolete DialtactsActivity under apps/Phone

Nuke the obsolete DialtactsActivity class from the phone app.

Now that those obsolete tests no longer reference it (thanks Xia!) it's
safe to remove it.

(The tests are under
vendor/google/tests/Phone/src/com/android/phonetests/functional/telephony/;
bug 2106531 covers fixing them at some point.)

TESTED: did a clean build.
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
008791ca2a9a1406c2a9f7b39c794104d151b898 09-Oct-2009 Paul Berman <paul.berman@motorola.com> Add ability to send empty flash to network for CDMA

Currently the TwelveKeyDialer does not allow the user to press the green
call button if the dial text is empty. However, in CDMA when we place a
3-way call in some network infrastructures, you need to send an empty
Flash command to the network before adding the call. The user is accustomed to
pressing the call button in order to do this. Therefore here we make the
changes in the Phone app required to handle that keypress and send the blank
flash.

Bug: 2179060
Change-Id: I1ebcdeaee602043d16480338ed35468e7edc9550
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
e118d10e688f3f98579253bc64de3c9422104350 25-Sep-2009 Dianne Hackborn <hackbod@google.com> Change outgoing call broadcast to avoid animation problems.

Previously the broadcast was sent and the activity finished, causing us to
animate to whatever was behind. Now we send it and do our final work
in a broadcast finish receiver, so we can wait on finishing the activity
until that is called.

Change-Id: I0d3f6f266555d2d58c1a7beacd0dc6610e325dde
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
325cc2ced6f1ff5fb1708abfcc5e9c73ac0cd962 22-Sep-2009 David Brown <dab@google.com> Misc Phone app cleanup:

- Naming: Clean up the various "request UI update from some other thread"
APIs to all be named like "requestSomeKindOfUiUpdate()".

Also got rid of the way-too-generic postNewMessageDelay() method,
replaced it with specific methods for the 2 things that the OtaUtils
code actually needs to do.

- Added comments for one unclear case in OutgoingCallBroadcaster

- Remove no longer used IncomingCallDialWidget, and its assets. (It's now
in the framework as com.android.internal.widget.RotarySelector.)

- Added better javadoc comment for CallNotifier
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
d94cc5e209bf871e4b6d5e84bcf6bd4e38d8ac65 01-Sep-2009 Nicolas Catania <niko@google.com> Modified the CALL's extras to provide the application's package name.

The name of the provider is passed using the new GATEWAY_PROVIDER_PACKAGE extra.

Made the gateway number extra a URI and renamed to GATEWAY_PROVIDER_URI to be
more generic and support VOIP.

Renamed copyPhoneProviderExtras to checkAndCopyPhoneProviderExtras
since the copy does not happen if some info is missing.
Added new helper method to detect if an intent has the required
phone provider extras.

Bug: 1984556
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
e9d36b8a17aadd2271db030fc13d0fef01ded7c2 03-Sep-2009 Nicolas Catania <niko@google.com> Intercept emergency number and pop up the framework's dialer.

Bug: 1464685
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
7a2ee085993bc9cae01bf9daa993b1551ed64a7b 25-Aug-2009 Nicolas Catania <niko@google.com> Added a new extra for the provider's number.

Added a util method in PhoneUtils to copy the
provider's extras from one intent to another.

Bug: 1984555
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
5398ca30f57b928c2dd9bf175c5e083726279494 18-Aug-2009 Nicolas Catania <niko@google.com> New extras for the provider's badge.

Defined a new extra to carry the parcelable RemoteViews instance
that represents the network provider's badge.

The any badge set in an ACTION_CALL intent is broadcasted and passed to
the InCallScreen activity which renders it (separate CL).

Any broadcast observer can override/delete/add a badge.

Issue: 1984556 Google Voice Lite: Show additional UI element when a call is made via Google Voice
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
bd6ef6be5bbece60afee7f1ef0a6bba732298dac 15-May-2009 David Brown <dab@google.com> findbugs fixit: Clean up a few more (fairly minor) findbugs complaints.
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
b16363f5fc191b769e88c364243e34b92eb22688 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
a412e78a7bba553a66503370b4c618db83528916 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java
abc47110c17fa8e8cb6161bc045e87f31eeb7a1c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/packages/apps/Phone/src/com/android/phone/OutgoingCallBroadcaster.java