Commit Graph

2563 Commits

Author SHA1 Message Date
Gilles Debunne
3e804a615d Merge "Removed TextAlign in TextView" 2012-02-28 15:32:04 -08:00
Svetoslav Ganov
69db4df487 am 0c96daa5: am 0c7ffac4: am a2b41b43: NumberPicker showing IME when its input field gains focus.
* commit '0c96daa5d5a1ef778ad1ef4619ef1fa4c30519c6':
  NumberPicker showing IME when its input field  gains focus.
2012-02-28 10:41:42 -08:00
Svetoslav Ganov
0c7ffac4ca am a2b41b43: NumberPicker showing IME when its input field gains focus.
* commit 'a2b41b438d45570867e4682c0caaf93ace5e712e':
  NumberPicker showing IME when its input field  gains focus.
2012-02-28 10:35:43 -08:00
Svetoslav Ganov
a2b41b438d NumberPicker showing IME when its input field gains focus.
1. The NumberPicker was showing the IME if the input field
   gets focus and hiding it when the the arrows are pressed.
   The leads to a nasty behavior when the input is the first
   focusable and the uses presser an arrow button. In such
   a case the IME shows and hides on every arrow press pushing
   the window content up and down - this looks pretty ugly.
   Now the IME is show on double tap of the input field.

2. The NumberPicker input now by default has an IME action
   done, hence after editing it the IME goes away.

3. The NumberPicker input now clears focus when it gets
   IME action done, so the last picker in a sequence
   does not show selection which is focus driven.

4. NumberPicker was incorrectly detecting double tap to
   begin edit and it was possble to start edit on singe tap
   if the user has double tapped before to start an edit.
   Now double tap detection is using the double tap timeout
   correctly.

bug:6071977

Change-Id: I0ff5a491064e51663b3abec675d839d0a65b986a
2012-02-27 17:32:54 -08:00
Gilles Debunne
528e6dda42 Merge "Selection highlight made possible with no editor" 2012-02-27 15:30:57 -08:00
Gilles Debunne
0ca95700b1 Merge "Fix for NPE on long press to start a selection on text." 2012-02-27 15:30:37 -08:00
Gilles Debunne
e7769bc76d Fix for NPE when dragging on TextView
Bug 6076166

Change-Id: I52b1e2edc451f0601b71af50e6056dcbe69add43
2012-02-27 15:26:17 -08:00
Gilles Debunne
7e07adbcd3 Fix for NPE on long press to start a selection on text.
Bug 6075849

Change-Id: Ie07bd2adfecc0820995b9c8a75cd4de6dd9891e1
2012-02-27 15:03:52 -08:00
Gilles Debunne
83051b8c75 Selection highlight made possible with no editor
Bug 6065081

Selecting text programatically is possible (like when a link is highlighted
by LinkMovementMethod) even when the text is not editable.

Also removed the textCanBeSelected text is highlight computation which prevented
links from being highlighted (legacy problem, not reported).
Now that they work, we can see that the highlight is not removed when the text
loses focus. Will be addressed in a different CL.

Change-Id: I673f435966686234b4c0b0a97bcc65abd01169ff
2012-02-27 14:54:58 -08:00
Adam Powell
d020ebff2c Merge "Fix bug 6065890 - Correct callback sequence for action bar tab switching" 2012-02-24 19:50:11 -08:00
Adam Powell
c4e57e23f9 Fix bug 6065890 - Correct callback sequence for action bar tab switching
Keep the callback behavior consistent when action bar tabs collapse
into a spinner.

Change-Id: Ia82e55d816a92b7ec746e1d25486bc9d2c0778f4
2012-02-24 19:25:43 -08:00
Dianne Hackborn
5265466e8a Merge "New development permissions." 2012-02-24 18:40:37 -08:00
Gilles Debunne
5cd164c5cf Merge "Fix NPE on Activity start in TextView" 2012-02-24 17:42:03 -08:00
Gilles Debunne
c1e79b45a2 Fix NPE on Activity start in TextView
Bug 6065279

The selection can be created programatically, and mEditor may be null
when it happens.

Make sure mEditor is created to display the selection highlight.

Change-Id: Idd66a5fd4ad327f9b390b539574e6878c794ba4a
2012-02-24 17:40:22 -08:00
Gilles Debunne
9f809c2fd1 Merge "Fix crash on long press in TextView" 2012-02-24 17:04:10 -08:00
Gilles Debunne
f14634e491 Fix crash on long press in TextView
Bug 6058792

Glitch in mEditor handling

Change-Id: I9b68796d5038c20d190ba5fbdaff1608b36aaee6
2012-02-24 17:01:59 -08:00
Adam Powell
b98a81f86a Add support for optional titles in action modes
Optional titles will only be displayed in the CAB if they entirely fit
instead of ellipsizing.

Fixes bug 5821883

Change-Id: I0cfd6d4fd34a4fa9f520499d577706da30606811
2012-02-24 16:59:03 -08:00
Dianne Hackborn
e639da7baa New development permissions.
These are permissions that an application can request, but won't
normally be granted.  To have the permission granted, the user
must explicitly do so through a new "adb shell pm grant" command.

I put these permissions in the "development tools" permission
group.  Looking at the stuff there, I think all of the permissions
we already had in that group should be turned to development
permissions; I don't think any of them are protecting public APIs,
and they are really not things normal applications should use.

The support this, the protectionLevel of a permission has been
modified to consist of a base protection type with additional
flags.  The signatureOrSystem permission has thus been converted
to a signature base type with a new "system" flag; you can use
"system" and/or "dangerous" flags with signature permissions as
desired.

The permissions UI has been updated to understand these new types
of permissions and know when to display them.  Along with doing
that, it also now shows you which permissions are new when updating
an existing application.

This also starts laying the ground-work for "optional" permissions
(which development permissions are a certain specialized form of).
Completing that work requires some more features in the package
manager to understand generic optional permissions (having a
facility to not apply them when installing), along with the
appropriate UI for the app and user to manage those permissions.

Change-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5
2012-02-23 16:39:15 -08:00
Adam Powell
29382d9d9d Bug 6058721 - optimize changing checked states in AbsListView
Instead of treating a checked state change as a full data set change,
simply modify the checked or activated state of on-screen views.
Any resulting layout changes will be serviced as appropriate.

Change-Id: Ia846de16bbc54f0729608259aa4b530da9404245
2012-02-23 11:04:38 -08:00
Jean-Baptiste Queru
812c623563 am ad3102d0: am f3d94b44: am a91b052e: am fc24982a: Merge "Call onTimeChanged when AM/PM changed."
* commit 'ad3102d06bc6060f739e0803d0e45dec8020703b':
  Call onTimeChanged when AM/PM changed.
2012-02-23 08:35:03 -08:00
Romain Guy
1eec6804d2 Merge "Reduce logs" 2012-02-22 14:36:28 -08:00
Romain Guy
9c10ab03cd Reduce logs
Change-Id: I2768972ec62f4d3ad800a4d7a4c44307a2fa0105
2012-02-22 14:34:58 -08:00
Gilles Debunne
5ca6f9e56f Merge "EditText-specific data extracted from TextView" 2012-02-22 14:30:43 -08:00
Gilles Debunne
978a8ff842 Removed TextAlign in TextView
This value is not assigned anymore.

Change-Id: Ic86a38acb870994ebe77a817b61aa618813e3788
2012-02-22 14:29:20 -08:00
Gilles Debunne
60e2186c35 EditText-specific data extracted from TextView
All edit-specific data has been moved to an EditData inner class in TextView.

The instance of this class is created as soon as one of its fields is set to
a non-default value. Regular TextViews (buttons, checkboxes...) should never
have to instantiate the Editor, thus reducing their memory footprint.

Note: this is a debug version. The getEditor() method is here to track
possible problems and should be removed in the final version. Indentation
will be fixed then.

Next step is to extract more methods and classes into Editor and create a
dedicated class for it. mMovement may also be Editor specific.

Change-Id: Ic241953a2fb73213180f300c3609a9e6799aa884
2012-02-22 14:24:56 -08:00
Gilles Debunne
36a5822484 Merge "Added bottom padding in textview's focused rectangle" 2012-02-22 14:18:17 -08:00
Adam Powell
aebd28f729 Fix bug 6048643 - verify ListView layoutparams while tracking stable IDs
Account for adapters that don't inflate item views using the ListView as
a parent.

Unify how AbsListView and subclasses generate layoutparams.

Change-Id: I963a5fcb4d98b721210a4d92d0db307f56acdf59
2012-02-22 12:04:12 -08:00
Gilles Debunne
322044abe4 Added bottom padding in textview's focused rectangle
Bug 6017386

Focused rect in used in ViewRoot when a new view takes focus.
TextView bringPointIntoView defines an other rectangle as text is typed.

Make sure the latter is included in the former to avoid the jump when one
starts typing text.

Change-Id: I0177adc046c77a5fd9c1423c0069d5b9798dc0b9
2012-02-22 12:01:42 -08:00
satok
d404fe1105 Refactor sentence level spell checking APIs
Support sentence level spell checking APIs: Step 1

Change-Id: I31c0b88e7885f33a0694ab60b8f2dbceeffe42f1
2012-02-22 15:35:46 +09:00
Jean-Baptiste Queru
a91b052e16 am fc24982a: Merge "Call onTimeChanged when AM/PM changed."
* commit 'fc24982a44d2b2b678fe5aa212b2e709d10e6413':
  Call onTimeChanged when AM/PM changed.
2012-02-21 12:28:38 -08:00
Adam Powell
539ee8716b Add transient state tracking to Views
Transient state is temporary bookkeeping that Views need to perform
that the app should not need to be aware of. Examples include text
selection regions and animation state.

Transient state is a problem for AdapterViews like ListView that do
view recycling. Unless the app takes responsibility for tracking and
restoring transient state as if it were a part of the adapter's data
set, it cannot correctly recycle views. Selections disappear when an
EditText is scrolled out of sight and animations seem to play on the
wrong views.

Views can now flag themselves as having transient state. (As the name
implies, this should be a temporary condition.) If a ViewGroup
contains a child with transient state, that ViewGroup also has
transient state.

AbsListView's recycler now tracks views with transient state
separately. Views with transient state will be retained, and until a
data set change occurs the same view will be reused for that position
instead of calling the adapter's getView() method.

The API to set and check transient state is currently hidden.

Change-Id: Idfd8eaac2c548337686d8d9f98fda4c64be5b8a0
2012-02-17 16:40:24 -08:00
Romain Guy
6917e6550d Merge "Record possible clip rejects when recording display lists" 2012-02-17 15:18:14 -08:00
Romain Guy
33f6beb10f Record possible clip rejects when recording display lists
This optimization allows us to quickly skip operations that lie
entirely outside of the known bounds of a display list. Because
of ViewGroup.setClipChildren, we must keep the operations recorded
in the display list. setClipChildren(false) is however a very
uncommon operation and we will therefore often benefit from this
new optimization.

Change-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad
2012-02-17 13:10:00 -08:00
Philip Milne
580d079101 Merge "Fix remaining issue with bug #5904777" 2012-02-17 10:06:47 -08:00
Jeff Brown
50eb3b9bf9 Merge "Encapsulate the ViewRootImpl's handler." 2012-02-16 19:43:43 -08:00
Philip Milne
6216e87fe8 Fix remaining issue with bug #5904777
LEFT alignment in an RTL environment had the wrong 'gravity'.

This was due to a modelling error in GridLayout which is fixed in this CL.

Also apply some very minor simplifications and refactorings following the
addition of RTL support.

Change-Id: I153bc06d3c22dcb9954e4cbdfa89625823239b89
2012-02-16 17:23:31 -08:00
Fabrice Di Meglio
6d3d5057b4 Improve textDirection APIs
Change-Id: I8bff30f5adb0ab4077145d83ac4a716e04f289ac
2012-02-16 16:42:20 -08:00
Fabrice Di Meglio
2367706473 Merge "Add View.onResolvePadding() as a public API" 2012-02-16 14:36:28 -08:00
Jeff Brown
a175a5b7ea Encapsulate the ViewRootImpl's handler.
This change makes it much easier to make sense of the messages that
get posted to the ViewRootImpl's handler by encapsulating their point
of dispatch within the ViewRootImpl itself.

As part of this change, the View.AttachInfo now carries a reference
to the ViewRootImpl itself, which simplifies some code that used
to try to find the ViewRootImpl by getting the root view's parent.

In principle, it might have been nice to hide the ViewRootImpl from
the View hierarchy but in practice the two were coupled in many ways.

Change-Id: I51ebccdf5f8c8c505cd6f17cdf594174d041dc54
2012-02-15 19:32:16 -08:00
Romain Guy
8963822068 Merge "Prevent AutoCompleteTextView from opening a popup when it shouldn't Bug #5553515" 2012-02-15 18:36:55 -08:00
Romain Guy
c27cc01f6a Prevent AutoCompleteTextView from opening a popup when it shouldn't
Bug #5553515

The People app is forcing ACTV to show the IME which had the side effect
of showing the drop down popup. ACTV was unfortunately not ready to show
the drop down if the filtering resulted in no results. Doing so was putting
ACTV in a weird state that in turn caused a window to be leaked and really
bad behavior to occur in the lower graphics levels.

Change-Id: I2ff146d5ae4e4a28edf6ea17039c9f8fdb710e4f
2012-02-15 18:34:37 -08:00
Fabrice Di Meglio
ccb1562e90 Add View.onResolvePadding() as a public API
- following a comment from Dianne on this CL:

Change-Id: Ifa11d6ac423f205d0684297d25885eac1a89f279
https://android-git.corp.google.com/g/#/c/123009/1
2012-02-15 15:52:19 -08:00
Gilles Debunne
5e78d9bea5 Invalidate display list on alpha change
Bug 5945886

Change-Id: Ibab3ad2c9e526c038672699b571de154dfc8d17c
2012-02-14 17:46:43 -08:00
Gilles Debunne
626c316975 Display list invalidated on hint text change
Bug 5993119

Change-Id: I750e73cb5c26e2aaa2a88a80cf35c4d471c30403
2012-02-14 15:46:43 -08:00
SeongJae Park
f821ce7522 Call onTimeChanged when AM/PM changed.
Commit for issue http://code.google.com/p/android/issues/detail?id=24388

[Problem]
TimePicker doesn't call handler's onTimeChanged when AM/PM changed on
ICS althou it does on Gingerbread.

[Solution]
Call onTimeChanged as like as Hour/Minutes does.

Change-Id: I9911c351874168001b69c186f012836fc51285f5
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
2012-02-14 08:40:13 -08:00
Gilles Debunne
07ba2a2131 Minor typo fixes
Change-Id: I8cd9500cc50b7a484bf387e6a6a0c9b4ffb175a4
2012-02-13 18:13:44 -08:00
Philip Milne
d7dd89095f New hooks to allow layouts to improve their performance by doing more caching
This change allows layouts to be notified of changes to LayoutParameters that have occurred
between layout operations.

If an assignment is made to the fields of LayoutParams instances that are already in use,
cachced data may become inconsistent with the new values. For complex layouts, like
GridLayout, in which the layout parameters define the structure of the layout, caching
could have caused  ArrayOutOfBoundsException to be raised without this change. This case is
rare in normal code as initialisation is typically performed once. Its nevertheless possible
and much more likely in environments like design tools where layout parametrs may be being
edited on the fly.

Prevent errors as follows (belt and braces):

1. Change javadoc to request that changes to the fields of LayoutParams be accompanied with
a call to View.setLayoutParams(). (This calls requestLayout() which was what the previous
javadoc advised.) Provide a (for now, private) hook for layouts with caches to receive notification
of such calls so they can invalidate any relevant internal state.

2. For GridLayout, we cannot clone layout parameters as traditional Java grids do without retaining
two complete copies because of the public getLayoutParameters() method on View. Retaining two
copies is wasteful on constrainted devices. Instead, we keep just one copy and compute a hashCode
for the critical fields of a GridLayout's layoutParams. The hashChode is checked it prior to all
layout operations; clearing the cache and logging a warning when changes are detected, so that
developers can fix their code to provide the call to setLayoutParams() as above.

Change-Id: I819ea65ec0ab82202e2f94fd5cd3ae2723c1a9a0
2012-02-13 16:55:57 -08:00
Fabrice Di Meglio
47d248eb43 Fix bug #5904777 GridLayout should be RTL aware
- update also DEBUG mode for taking care about RTL
- one minor issue remaining: left alignment is not properly honored in RTL

Change-Id: I9a4c8413cb1189a032649472016994642418637b
2012-02-13 13:52:47 -08:00
Gilles Debunne
c067717c1e Merge "Invalidate text display list when text properties change." 2012-02-08 10:27:46 -08:00
Fabrice Di Meglio
132bda1cff Fix bug #5979311 Change TextView to not clip top/bottom text
Change-Id: I40a2ef40e540f20a9f626ab2e4e6e39fd062c9fe
2012-02-07 17:31:38 -08:00