History log of /packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5cba7d9f89df5092d3ae5095acd0bea96b5aa174 07-Oct-2011 David Brown <dab@google.com> (Re)enable layout transition animations on the in-call screen

Explicitly fade-in and fade-out a couple of in-call UI elements:
- the call state label that briefly shows "Dialing"
- the in-call DTMF dialpad
to make state transitions look smoother.

Earlier in ICS we did this using android:animateLayoutChanges="true" on
these views' parent containers, but that had some undesirable side effects
(see bug 5315523.) Now, we just manually fade in/out the specific
elements we want to animate, and keep the code simple by using a
convenient utility class from Chet (see his blog post
http://graphics-geek.blogspot.com/2011/09/old-views-dont-die-they-just-fade-away.html.)

TESTED:
Call state label:
- visible instantly at the start of a call
- visible instantly when "Call ended" state starts
- fades out smoothly after "Dialing" state ends
DTMF dialpad:
- nice crossfade with the regular CallCard
- No unexpected fading when *starting* a call, even if the dialpad was
up when the previous call ended
- Bang as fast as you can on dialpad button: always ends up in a sane
state with either dialpad or CallCard visible (but not both, or neither)

Note there are a couple of other state transitions we'd like to improve as
well, but those are GSM-specific ("Manage conference" and the "two lines
in use" state) so they can wait till MR1.

Bug: 5315523

Change-Id: I52d060d7ca66ac936a6daffb297bf0e8d80f6848
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
4ba332e62c4d54b2623ccdc59fafd46ecba08cf0 20-Jul-2011 David Brown <dab@google.com> Clean up dead code that originally supported non-prox-sensor devices

In previous Android releases, the in-call UI provided special support for
devices with no proximity sensor. The main differences were:

- The entire in-call UI had to be driven by hard buttons rather than
onscreen touchable UI

- All in-call controls that didn't have dedicated hard buttons were
menu-based rather than touchscreen-based

- The DTMF dialpad was contained in a "SlidingDrawer" widget that you
had to drag up from the bottom of the screen

- A special "touch lock overlay" would come up after 6 seconds and cover
the DTMF dialpad to avoid false touches

The code to implement this behavior has been unused (and untested) since
the froyo release: Google hasn't built software for any non-prox-sensor
devices since the G1 and myTouch, and any OEMs shipping non-prox-sensor
devices are probably using a completely custom in-call UI anyway (or
perhaps a customized version of the Cupcake-era phone app.)

Given that, it's not worth the extra complexity and clutter to keep these
features in the code base. So this change removes all code and resources
in the phone app that were only there to support non-prox-sensor devices.

The gory details:

- Entirely remove all Menu-related code from the in-call UI:
- The classes InCallMenu, InCallMenuView, and InCallMenuItemView
- Menu item handling in InCallScreen.onClick()
- Special handling of the Menu key itself

- Remove all code and resources for the "SlidingDrawer" that was used to
access the DTMF dialpad

- Remove all code / resources / animations for the "touch lock" overlay

- Rename non_drawer_dialpad.xml to dtmf_twelve_key_dialer_view.xml to be
less confusing (since we don't use a "drawer" anywhere any more)

- Remove the onscreen hint that said "Press Menu for call options" in a
couple of states

- Simplify the layout in call_card.xml: we don't need that top-level
RelativeLayout any more since the "menu hint" is gone

- Remove the config resources that allowed you to disable the normal
onscreen touch UI

- Remove a bunch of no-longer-needed string resources and ids

TESTED:
- Basic phone states (incoming / outgoing; 1 or 2 lines in use;
conference calls)
- Onscreen DTMF dialpad
- In-call screen prox sensor behavior
- In-call screen timeout
- Press Menu button (verify nothing happens)

Change-Id: I6ad5fd6df9bdef89e4defc7add7ade52d30d6335
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
ec3df8df214bb26f5648a8681afe22736ee36c06 26-Feb-2011 Jeff Brown <jeffbrown@google.com> Delete dead code.

We are adding a new method to MovementMethod that would break this code.
But since it is dead, we can just delete it. Hurrah!

Change-Id: I59ee1e9768b8a2b55da1faf2cd6349c0f0723056
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
7ede0c06e06bdb40aabccb52efab21cb85464904 26-Aug-2010 Hung-ying Tyan <tyanh@google.com> resolved conflicts for merge of ab661d0e to master

Change-Id: I547a1927fdd7d5277d2c4055ded6288711f240e6
fa08be2879b66dc61a8e0b5a85dfdd7ef942570b 25-Aug-2010 Hung-ying Tyan <tyanh@google.com> Make Phone app use CallManager for sending DTMF

Change-Id: I1e562f13a847cbf0c02dabb5046fd0aa3fe5b79d
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
c58406cd7ed20632fcb2e2e794a27299d4321733 22-May-2010 Wink Saville <wink@google.com> Change all uses of PhoneApp.getInstance().phone to PhoneApp.getPhone().

Change-Id: Ic4301b722d9a191b73f1ecc77052eb9bc6bdd06b
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
51eaa15edd6953b961a502bd517bcdec59d15d13 17-May-2010 Martin Hibdon <mah@android.com> Cleanup CDMA versus GSM behaviors in DTMF dialer

Add a new class called TelephonyCapabilities which is where we
can consolidate code that says "if (CDMA)" or "if (GSM)".
This is intended to answer questions like "does this
device support OTA provisioning?", so that the CDMA and
GSM knowlege does not have to be spinkled throughout
the Phone App. Ultimately, these questions should
be actually answered by the telephone layer.

Remove differences in behavior between GSM and CDMA phones
in the DTMFTwelveKeyDialer. There were many cases where the
code branched depending on whether the device was CDMA or
GSM, but then ultimately did the same thing. The only
actual behavior difference between CDMA and GSM was whether
to use short or long DTMF tones, this policy question is
now answered by the TelephonyCapabilties.

Also, get rid of unneccessary behavioral differences
in the InCallScreen handlePostOnDialChars. On CDMA devices,
the pause dialog gives the option to cancel, but this is
not available on GSM devices. This functionality should
not have anything to do with GSM versus CDMA, so now this option
is available regardless of phone type.

Change-Id: Ie3a7e2974b06674935079c4defcbabe6d2d4864c
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
a8de03f8104ac78874a50ebccf14d1d50b34b016 20-Apr-2010 David Brown <dab@google.com> Fix NullPointerException in DTMFTwelveKeyDialer.clearInCallScreenReference()

Currently, if you call DTMFTwelveKeyDialer.clearInCallScreenReference()
*and* the dialpad is currently open, we crash.

The fix is to have DTMFTwelveKeyDialer.onDialerClose() gracefully handle
being called even after mInCallScreen has been nulled out.

(Fortunately this almost never happens in normal usage, since
clearInCallScreenReference() is only ever called from the InCallScreen's
onDestroy() method. And in normal usage, we never destroy the InCallScreen
since we dismiss it using moveTaskToBack() rather than finish().
But it *is* still possible for the InCallScreen to get destroyed in rare
cases, like under extreme memory pressure.)

Bug: 2603748
Change-Id: I52467f4188c57ce0cca1a8bf5d57f02a61572390
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
2f22a9001166458ef4b04f6142b6d6a480af1c9d 18-Feb-2010 David Brown <dab@google.com> Fix 2432289: passion#c: no DTMF feedback during activation

Local playback of DTMF tones would work fine during a normal call, but not
during the OTA call. This was because the OtaUtils class was creating its
own "DTMFTwelveKeyDialer" instance, but never properly initializing it.

This bug has always been there, but we never noticed this on Sholes,
because local DTMF tones are played automatically by the Sholes radio.
(So on Sholes that DTMFTwelveKeyDialer instance didn't actually *need* to
make any sound.)

The fix is to correctly initialize the DTMFTwelveKeyDialer instance that
we create: we call startDialerSession() on it from initOtaInCallScreen(),
and call stopDialerSession() from cleanOtaScreen().

It's still pretty confusing how we have two separate DTMFTwelveKeyDialer
instances around, but we're very close to eclair code freeze so I'm
keeping this change as minimally invasive as possibile. (I added a TODO
comment about eventually cleaning this up, though.)

Tested: On PassionC, local tones are now audible during the OTA call.
(They're pretty faint unless you turn the speaker on, but I think that's
normal, or possibly due to bug 2447744.)

Bug: 2432289
DrNo: hiroshi
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
1e8a3579f8e49fd1f1a078d6be6864a6a8bac306 03-Oct-2009 David Brown <dab@google.com> Reduce Phone App logging verbosity

- Update PhoneUtils.dumpCallState() to use a (much) more compact format
- Turn down verbosity of some other stuff that's not needed any more
- STOPSHIP cleanup: Remove a runtime exception that should just be a Log.e()

TESTED=GSM,CDMA.
BUG=2163789
DRNO=timsullivan
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
79b9f6e30e8402b103f1ec3ed9dda1fcad2b1cd5 22-Sep-2009 Tammo Spalink <tammo@google.com> Replace Phone.getPhoneName() calls with getPhoneType().

The latter is numeric, and hence allows some compiler protection
against typos.

Addresses issue:
http://buganizer/issue?id=1905415

Change-Id: If46c709fd7bfb817a2801d0200eac0ad8cf819e0
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
5aadc2633b13d6676598dc0954be25c108d05fcd 16-Sep-2009 David Brown <dab@google.com> Update in-call DTMF Dialpad for "full touch" devices.

Here's a UI overhaul of the in-call DTMF dialpad for devices that use the
new-style in-call UI with onscreen touchable buttons.

These devices now have a smaller dialpad that fits above the main cluster
of onscreen buttons, and pops in and out when you press the "Dialpad"
button. There's no SlidingDrawer at all.

(The old-style dialpad and "sliding drawer" are now used *only* on devices
like Dream and Sapphire that don't have onscreen UI controls at all.)

Also, integrated a whole bunch of new assets from Jeff, so *all* the
dialpads (even including the emergency dialer) have the new squared-off
button backgrounds and new one-line-high labels.

Also:
- Removed a few more unused resources
- Added a "dialpadVisible" indication to InCallControlState,
which now controls the label of the "Hide/Show Dialpad" UI element
- Make sure the dialpad goes away when we Hold or Unhold

TESTED: all the possible "dialpads" shown by the Phone app:
- in-call dialpad in the SlidingDrawer, used for Dream/Sapphire
- new-style in-call dialpad for "onscreen touch" devices
- in-call dialpad used during an OTA call
- the dialpad in the EmergencyDialer
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
8df5c508da2c836b841ee24120fa7c5cc92df387 16-Sep-2009 David Brown <dab@google.com> Clean up "dialer drawer" usage in the InCallScreen.

Stop having the InCallScreen and OtaUtils directly manipulate the
SlidingDrawer widget that contains the DTMF dialpad. Instead, have the
DTMFTwelveKeyDialer provide an abstract wrapper around it. Also, the
DTMFTwelveKeyDialer now finds the SlidingDrawer widget itself, rather than
having it passed in to the constructor.

This way the rest of the phone app doesn't have to know the
SlidingDrawer's resource ID, or care whether or not it even exists.
(This is nice, given that I'm about to remove it on some platforms.)

TESTED: Ran the full DTMF Dialpad test suite:
- Type DTMF digits on the onscreen dialpad:
- tones get sent correctly
- digits get appended to the digits display
- Type DTMF digits on the hard keyboard while dialpad is up
- tones get sent correctly
- digits get appended to the digits display
- Type DTMF digits on the hard keyboard while dialpad is hidden
- tones get sent correctly
- digits get appended to the digits display correctly even though
you can't see it. (They're there if you open the keypad.)
- Type DTMF digits on the hard keyboard before *ever* bringing up the
dialpad
- tones get sent correctly
- digits get appended to the digits display correctly even though
you can't see it. (They're there if you open the keypad.)
Ran these on:
- A GSM device
- A CDMA device
- A CDMA device during the OTA call (but note there's no
onscreen "digits" display)
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
dfa83d531cdb88513f09e913424b7a16628b37d3 04-Sep-2009 David Brown <dab@google.com> More DTMFTwelveKeyDialer and landscape-mode cleanup.

In this change:

- Nuked landscape versions of both dtmf_dialer_display.xml and
dtmf_twelve_key_dialer.xml. (Note this eliminates any possible way for
the InCallScreen to NOT have a valid "dtmfDialerField" EditText widget.)

- Also nuked the *portrait* version of dtmf_dialer_display.xml since that
was just an empty <merge>.

- Nuke the EditText widget that was used only in landscape mode to display
the DTMF digits you had dialed, and a bunch of animation code that was
used to fade it in and out

- Removed DTMFTwelveKeyDialer's CallerInfoAsyncQuery.OnQueryCompleteListener
implementation, which is totally unnecessary and probably came from a
copy/paste error sometime in 2008

- Make sure the DTMFTwelveKeyDialer can tolerate mDialerContainer being
null (like on devices which don't use a SlidingDrawer), and the
mDialpadDigits EditText widget being null (like in OTA mode where
there's no onscreen "digits" display.)

- Nuked the ConfigurationHelper class, which is no longer needed since the
in-call UI is now Portrait-only.

- No need for DTMFTwelveKeyDialer to set the FLAG_IGNORE_CHEEK_PRESSES
window flag; the InCallScreen already does it.

TESTED:
- Type DTMF digits on the onscreen dialpad:
- tones get sent correctly
- digits get appended to the digits display
- Type DTMF digits on the hard keyboard while dialpad is up
- tones get sent correctly
- digits get appended to the digits display
- Type DTMF digits on the hard keyboard while dialpad is hidden
- tones get sent correctly
- digits get appended to the digits display correctly even though
you can't see it. (They're there if you open the keypad.)
- Type DTMF digits on the hard keyboard before *ever* bringing up the
dialpad
- tones get sent correctly
- digits get appended to the digits display correctly even though
you can't see it. (They're there if you open the keypad.)

Tested this on:
- A GSM device (all tests worked)
- A CDMA device (all tests worked)
- A CDMA device during the OTA call (all tests worked, but note
there's no onscreen "digits" display)
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
b0e69ce949d21f3301a305aa07d03e7ca832d733 07-Sep-2009 Eric Laurent <elaurent@google.com> Fix issue 1992233: DTMF tones on Sholes is really long.

Do not use a delayed message to define the DTMF tone duration. Use the duration parameter in ToneGenerator.startTone() instead. This garanties that the actual tone duration is independent from the filling level of the audio buffers when the tone starts.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
c8f1376d0d710a27390feb46ab810c2eae2c45f8 06-Sep-2009 Peng Zhu <w46254@motorola.com> DTMF dialerViewer null protection

There seenms to be a timing that could cause the dialsView to be null
when DTMFTwelveKeyDialer is created. This fix adds a null checking for
dialerView.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
986d2f46bd9572b563b89627fa60a9ea0853a91f 01-Sep-2009 Jim Miller <jaggies@google.com> Re-skin OTA provisioning to match SetupWizard. Wrap phone activation screen in a ScrollView since space is tight (not currently used but may be a problem with some translations). Fix 'Try Again' button to return to ActivatePhone state.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
921814d9a5a90d4826d781dc70986ef82a786ad1 03-Aug-2009 Paul Berman <paul.berman@motorola.com> Fix double playback of DTMF tones in call

On some dual-processor devices, both the AP and BP may playback DTMF tones,
causing double tone playback to be heard. Therefore, add a configuration
to allow devices to configure local (AP) tone playback to be
on/off. Configured ON by default (especially for devices where this
doesn't apply).
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
1066df0a541fb7b6a31fe2bea8a5b2e4e3e29f1a 07-Aug-2009 David Brown <dab@google.com> Clean up usage of startDialerSession() / stopDialerSession().

Don't call mDialer.startDialerSession() from onCreate, since that causes
us to keep a ToneGenerator instance around forever. (That's bad style;
you're supposed to create a ToneGenerator only when you need it, and
release its resources when you're done.)

Instead, start the dialer session in onResume(), and stop it in onPause().
Also get rid of some obsolete code that tied the dialer session to the
sliding drawer.

TESTED: local DTMF tone playback while in-call, in both portrait and landscape.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
cd0189299f484dcbd51400b994daf585923e9e8d 30-Jul-2009 David Krause <david.krause@motorola.com> dynamic callsetting for umts, cdma and world phone
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
99e0909905733fbc88300bdc4f475b1f6056388e 28-Jul-2009 Zhu Kuanting <frank.zhu@motorola.com> Make sure DTMF tones from pause-wait strings stop playing
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
aa23e1c3c758bad23d8b6709147cc1ff7cd1e43c 17-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 1795088 Improve audio routing code

Initial commit for review.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
0b78bb2224ddc1991ba2b9f31087010109b90b14 15-Jul-2009 Paul Berman <paul.berman@motorola.com> Fix DTMF long tone issue

There is an issue where opening the slide on Sholes and attempting to send
long DTMF tones midcall will not properly play the tone on the local nor
the remote side correctly.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
56a783bb160a377a5edb6617ca5bfbe9927ef7de 11-Jul-2009 jsh <jsh@google.com> Two additional parameters for sendBurstDtmf.

ON length and OFF length.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
80fd5ab27e6a7df77e6e74e819f1a422f0f3fda8 30-Jun-2009 Peng Zhu <w46254@motorola.com> CDMA DTMF tone fix

Sending CDMA DTMF during a call is causing a phone crash, this
resolves some logic errors in stop/start DTMF tone and
cancel/start tone timer.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
d533a71d64507e33d78dc65aa2521eacb5f8bb25 25-Jun-2009 Wink Saville <wink@google.com> CDMA DTMF application changes.

Also add network_message for change 5340.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
404edc94de563aef5fd5ba48be9114a970cb93bb 18-May-2009 Wink Saville <wink@google.com> Teleca 2b changes.
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.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/DTMFTwelveKeyDialer.java
4472ce7a7e8568b4bb66098c4e4a2e71099167ac 25-Mar-2009 David Brown <> Automated import from //branches/donutburger/...@141035,141035
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
796c70c99bc39295bf685061056f06ab8949c742 25-Mar-2009 David Brown <> Automated import from //branches/donutburger/...@140614,140614
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.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/DTMFTwelveKeyDialer.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/DTMFTwelveKeyDialer.java
c563f5594dc6b2ffc0c3bf74ac03108bb168abd6 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
0fd72beba9fbbdbdbb516ce3ea0eb707818ab748 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
62f98540ff39eb68eea5e393d5a2ac61e412c313 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
0918cc33174eebee7ae13449a76a2fe48f84d6dc 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
bb1e6add51a1d0c4ed2ee63fd314503e8d62cdd8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java
abc47110c17fa8e8cb6161bc045e87f31eeb7a1c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/packages/apps/Phone/src/com/android/phone/DTMFTwelveKeyDialer.java