461 Commits

Author SHA1 Message Date
Deepanshu Gupta
85f53c3335 Fix style warnings in RenderSessionImpl [DO NOT MERGE]
Change-Id: I9d3cb23e4ea692f737a3e3d6c18cc8de18b66a3c
(cherry-picked from commit 22de7c4c3d44e51aef6937e1b39540703ad01f5c)
2014-05-07 18:09:46 -07:00
Deepanshu Gupta
0f209967bf Add view cookies for action bar menus. [DO NOT MERGE]
The change adds the view cookies for the menus rendered in the action
bar. This enables the IDE to map the menu to the relevant XML Tag in the
menu xml and show the highlighting accordingly.

The change also contains a bugfix where a method wasn't renamed
properly.

Change-Id: Idcfc263a8ebe0a4f25afa3a1eb085fa628fd03ca
(cherry-picked from commit 094fd8ecb6f4b666be6c9e7332679bce28fdc3ca)
2014-05-07 18:09:46 -07:00
Deepanshu Gupta
f7e5794990 Overflow menu popup for Action Bar in Layoutlib [DO NOT MERGE]
In addition to the cherrypicked changes, appropriate changes due to
changes to com.android.internal.widget.ActionBarView are made.

The icon used in the Action Bar may not always be the right one due to
the above resolution.

Change-Id: Ib7cc314079099c010f7d53849e204db36c410357
(cherry-picked from commit 56759be8960ea1b5dc8b6de1810a84e2f10e2058)
2014-05-07 18:09:39 -07:00
Deepanshu Gupta
43b15371f9 Action bar rendering in layoutlib [DO NOT MERGE]
This also makes a couple of changes to the framework:
1. ShareActionProvider - Use edit mode to execute activity chooser code.
2. ActionBarImpl - add a new constructor for use by layoutlib.

This also relies on some changes to the plugin to pass the correct params.

Change-Id: Ia30fef816afd91ec1e439734d56b59b1323bfee2
(cherry-picked from fe38489f6734fefd0a216e9cfe12f8f978ff371f)
2014-05-06 14:02:48 -07:00
Deepanshu Gupta
770e40f839 Fix theme/style resolution in Layoutlib [DO NOT MERGE]
Change-Id: Icfb91e566666408802dadc0e2070991151b16b9d
(cherry picked from commit 76dccb7f436565136ff5e15b1ca57530940f5642)
2014-05-06 14:02:47 -07:00
Deepanshu Gupta
8766538846 Fix visitFieldInsn in layoutlib_create. [DO NOT MERGE]
The bug caused some classes to be missed when computing the dependencies
of the existing classes.

This change includes the new mock_android.jar compiled from the mock
sources again.

Change-Id: I7285ff67e016ce5d73a8550501f49acc73cfadfa
(cherry-picked from 6136af326e64037184a7a2a3ae60c399f04d631f)
2014-05-06 14:02:47 -07:00
Deepanshu Gupta
d915dcac36 Layoutlib tests now check methods return value [DO NOT MERGE]
The change is a cherry-pick from klp-dev.

The change also fixes the errors found by fixing the tests.

Change-Id: I87cef323c4eaee4e9f60475f01156b276593fa50
(cherry-picked from commit 2bd65db15fa6a265ccc4023161611088bc791b4e)
2014-05-06 14:02:47 -07:00
Deepanshu Gupta
877ae53586 Set default text style in layoutlib as NORMAL [DO NOT MERGE]
If a style doesn't specify text style (normal/bold/italic/bold-italic)
then default to normal instead of throwing an error.

Bug: http://b.android.com/61358
Change-Id: I0138c73807a5ff6e4d938a99ece3044333110aa1
(cherry-picked from bcbeaf83ca75e4a819377938fdf3ec1e07fa30a7)
2014-05-06 14:02:46 -07:00
Deepanshu Gupta
669792b303 Fix sans-serif-thin and sans-serif-light fonts in layoutlib. [DO NOT MERGE]
For these font families, text was always rendered as italic. This
changeset fixes the issue.

Bug: http://b.android.com/57221
Change-Id: Ic8a299bd1e555f5bb914cd3d2fe72917ec7f471a
(cherry-picked from 5be65fda15c6f66067da3cc623811427e9d541e4)
2014-05-06 14:02:46 -07:00
Deepanshu Gupta
cda89ca025 Fix a bug in Nine Patch library. [DO NOT MERGE]
The nine patches were not drawn correctly if they were not positioned at
the top left corner of the canvas.

Bug: http://b.android.com/29959
Change-Id: Icfed522ea07322a3ee9f3955067d3da26c4b0b5b
(cherry-picked from 5bb3414d148f1309dade9333fe9b89c8d1c2f308)
2014-05-06 14:02:46 -07:00
Deepanshu Gupta
a2b34c96f1 Optimize layout rendering in layoutlib [DO NOT MERGE]
The height of a layout should be zero if it is assigned a layout_weight.
This way, the layout is measured only once and prevents spurious errors.

Bug: https://code.google.com/p/android/issues/detail?id=58398
Change-Id: If49a7480e5eb82cb86780e00f2f5b65ee053fc2a
(cherry-picked from 5712b5fc3fec0dc376e84f660f2fe0d1102c0cbb)
2014-05-06 14:02:45 -07:00
Deepanshu Gupta
e183855c1e Add methods for Time_Delegate [DO NOT MERGE]
Bug: http://b.android.com/65359
Change-Id: I7c2d09286d6bcd9899444aaa5a4a5a342e39d923
(cherry-picked from 02cde9ceeb4c052ee273a5d809816dfd355ebb56)
2014-05-06 14:02:45 -07:00
Deepanshu Gupta
e5a2347bc6 Fix NPE in layoutlib. [DO NOT MERGE]
Change-Id: I36623304d83b344ea078044001577b8005a63c02
(cherry picked from commit 689c0dfe72a57c0555560012cbc6806375e7d4b7)
2014-05-06 14:02:45 -07:00
Deepanshu Gupta
30505abeb6 Fix text size in Fake Action Bar. [DO NOT MERGE]
The density multiplier was being applied twice to the title text in
the fake action bar.

Bug: 11436018
Change-Id: Id74c11037cb43d01f6cd79126623c84edfc37aaf
(cherry-picked from 083d1562e00631630b5594462ce4a867a3508d8d)
2014-05-06 14:02:44 -07:00
Deepanshu Gupta
5a7b3b65b6 Remove references to non-std Java classes. [DO NOT MERGE]
Do not add the non-standard Java classes. Updates the references to all
non-standard classes to new classes in
com.android.tools.layoulib.create package. This also treats
java.lang.AutoCloseable which is part of Java 7 similarly so that we can
still run on Java 6.

This also adapts the cherrypick for this branch by updating references
to the non-standard Java classes present in this branch. This also
includes the following change that includes some changes that the
original cherrypick missed.
Change-Id: I76c87c74ee088778b37d1a7a7d531e0fde5c758f
commit: 1ed75bde09275c9f2bd1f81830e381ea864ac7f5

Change-Id: Iac5b272652e2780c9bb72d19f415d150948ca589
(cherry picked from 80c668f2a076e91d887dbf77776cd503ff88b0b4)
2014-05-06 13:55:56 -07:00
Deepanshu Gupta
4b5da86d04 Fix DatePicker and Calendar widget in layoutlib. [DO NOT MERGE]
Issue: https://code.google.com/p/android/issues/detail?id=59732

Change-Id: I281b3fdad88c591281a3645592c84f3e2cb61d09
(cherry picked from commit 6335590aa8997944cc7fb358a315dbb9b789f87f)
2014-05-05 18:42:28 -07:00
Deepanshu Gupta
5c166c9c04 Layoutlib: Update the wifi icon in the status bar. [DO NOT MERGE]
Issue: https://code.google.com/p/android/issues/detail?id=60993

Change-Id: Ia43ed40b42c79f67dcd5809b827d4fecbc823c25
(cherry picked from commit 11ee746dc5e77f4f33aac45ac9e344444223012d)
2014-05-05 18:33:08 -07:00
Deepanshu Gupta
2d82586b96 Fix CalendarView to show the right labels. [DO NOT MERGE]
Change-Id: I95431f1054678d4192bd1621c1f69b29268f55e9
(cherry picked from commit 44bcd64e5b9fd211dd56b0598693a0559f65dc1a)
2014-05-05 18:32:04 -07:00
Deepanshu Gupta
64dc038012 Fix layoutlib [DO NOT MERGE]
Fix a NPE.

The cherry-pick differs slightly from the original to remove changes not
relevant to the current branch.

Bug: 11140701
Change-Id: Id92fc5359acf6dde1bcdbc781aaf637fdb6eecbf
(cherry-picked from 87be67f91719234cbd381ff0242b5efc8b6aa257)
2014-05-05 18:23:15 -07:00
Deepanshu Gupta
a59c27dd66 Fix ClassCastException when rendering ListView [DO NOT MERGE]
Bug: b.android.com/59300
Change-Id: Ia350adb3308daa8170bff755302760790163c811
(cherry picked from commit 7b5d54f05be61a7ab40021644a91c466e2897627)
2014-05-05 18:21:41 -07:00
Deepanshu Gupta
8a39c3afb2 Add orientation to configuration for layoutlib. [DO NOT MERGE]
Update the configuration with the device orientation before rendering.

Change-Id: Icd40901204fd13f90b18353e53a15e25e5b2176c
(cherry picked from commit d4875e19f5b7c69226783b0a6590831466159f84)
2014-05-05 18:17:13 -07:00
Xavier Ducrohet
135b5ba524 Layoutlib: Read and close XML files as soon as possible. do not merge.
Because passing an InputStream to KXML does not close the
stream after the file has been parsed, the files are staying
locked on windows until the gc and finalizers are run.

This change preload the XML files and close their stream,
and then pass the content in a stream to the parser.

(cherry picked from commit c48b0b940d632b9862ff6aa32665e37fe9e50845)

Change-Id: I1b225454c166026c1aab6290c55ac8279e8862d5
2012-10-18 15:48:10 -07:00
Xavier Ducrohet
434cd38f96 Update layoutlib for jb mr1. do not merge.
Status bar displayed on all devices.
Update logic for displaying nav bar to whether or not
device has soft button.

Update navigation buttons to new look.
Remove battery and signal from navigation bar.

(cherry picked from commit 891b703f7b1e0e396d16477cc66a286da7161b49)

Change-Id: Id7cc9ad4255d2c4d2e6461a565dfe2cc17e12e75
2012-10-18 11:15:39 -07:00
Xavier Ducrohet
54a18ef7ad Replace LruCache implementation for layoutlib. do not merge.
The android version depends on a custom version of LinkedHashMap
which is not present on desktop VMs. This new implementation is done
in a way that minimizes the difference between the two.

Also some minor fixes.

(cherry picked from commit 01b6c755dbcf24e71192dc44757e2eea2a426091)

Change-Id: Idc7bca820e472e281a3024a5b610fd55606cf428
2012-07-10 12:51:30 -07:00
Xavier Ducrohet
4d7f301f94 Disable debug output in SDK layoutlib.
Bug: 6697442

Change-Id: I9741761342ea220c158aa124089430b0db80bf7e
2012-06-19 18:02:21 -07:00
Dianne Hackborn
bb47cf66ec Fix build.
Change-Id: I41415fed99d98406bc033289428bde59475c2917
2012-06-04 10:51:17 -07:00
Dianne Hackborn
6ae8d18218 Fix (mostly) issue #5109947: Race condition between retrieving a...
...content provider and updating its oom adj

This introduces the concept of an "unstable" reference on a content
provider.  When holding such a reference (and no normal stable ref),
the content provider dying will not cause the client process to be
killed.

This is used in ContentResolver.query(), .openAssetFileDescriptor(),
and .openTypedAssetFileDescriptor() to first access the provider
with an unstable reference, and if at the point of calling into the
provider we find it is dead then acquiring a new stable reference
and doing the operation again.  Thus if the provider process dies
at any point until we get the result back, our own process will not
be killed and we can safely retry the operation.

Arguably there is still the potential for a race -- if somehow the
provider is killed way late by the OOM killer after the query or
open has returned -- but this should now be *extremely* unlikely.
We also continue to have the issue with the other calls, but these
are much less critical, and the same model can't be used there (we
wouldn't want to execute two insert operations for example).

The implementation of this required some significant changes to the
underlying plumbing of content providers, now keeping track of the
two different reference counts, and managing them appropriately.  To
facilitate this, the activity manager now has a formal connection
object for a client reference on a content provider, which hands to
the application when opening the provider.

These changes have allowed a lot of the code to be cleaned up and
subtle issues closed.  For example, when a process is crashing, we
now have a much better idea of the state of content provider clients
(olding a stable ref, unstable ref, or waiting for it to launch), so
that we can correctly handle each of these.

The client side code is also a fair amount cleaner, though in the
future there is more than should be done.  In particular, the two
ProviderClientRecord and ProviderRefCount classes should be combined
into one, part of which is exposed to the ContentResolver internal
API as a reference on a content provider with methods for updating
reference counts and such.  Some day we'll do that.

Change-Id: I87b10d1b67573ab899e09ca428f1b556fd669c8c
2012-05-29 13:33:09 -07:00
Dianne Hackborn
4286d6d115 Fix build.
Change-Id: I53263d509559c70100cd78ad49f225f0dafd8891
2012-05-13 16:03:39 -07:00
Dianne Hackborn
85afd1b6f8 Implement new window cropping.
The window manager now performs the crop internally, evaluating
it every animation from, to be able to update it along with
the surface position.

Change-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32
2012-05-13 13:31:06 -07:00
Michael Jurka
421dceb0a4 Merge "Making transition out of recents look better" into jb-dev 2012-05-10 10:35:19 -07:00
Michael Jurka
21385cd83d Making transition out of recents look better
- Fading out recents first, then scaling up app
thumbnail
- Fade Recents out over 130ms
- Delay the window animation for 200ms first,
then animate for 200ms (previously we didn't delay
and then animated for 300ms)

Bug: 6390075

Change-Id: Ia8c753bf7ee03d2acef6eb2772b28d88fe10a682
2012-05-09 20:25:28 -07:00
Dianne Hackborn
652b6d1e59 Add infrastructure for accessing "unstable" content providers.
We have an API and some stuff that purports to this, but no real
implementation yet.

Change-Id: I93555440014a50fdf79fa3f65318d90fb82265b4
2012-05-09 18:18:40 -07:00
Xavier Ducrohet
f18c68b83f Add missing native method to Canvas_Delegate.
Change-Id: I86288c942004e5489eacc43ba5e112cf56f94487
2012-05-08 17:14:18 -07:00
Jeff Brown
a7771df369 Move CancellationSignal to android.os package.
Bug: 6427830
Change-Id: I39451bb1e1d4a8d976ed1c671234f0c8c61658dd
2012-05-07 20:06:46 -07:00
Dianne Hackborn
5c58de3a52 Add system insets to windows.
This will be used to determine which parts of a window a completely
hidden by system UI elements (status bar, nav bar, system bar) so
that they can be clipped out from rendering.

Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
2012-04-30 12:11:43 -07:00
Dianne Hackborn
79c6346100 Merge "When a window is first shown only draw once while animating." into jb-dev 2012-04-27 17:42:48 -07:00
Jeff Brown
96ff709fe2 Work around build break in layoutlib.
Bug: 6413563
Change-Id: Ia7101fba87f3784fd8159c75e4289f642913d099
2012-04-27 17:18:06 -07:00
Dianne Hackborn
12d3a94397 When a window is first shown only draw once while animating.
On some hardware allocating a new graphics buffer is quite
expensive, which blocks updates to the UI.  This can cause
glitches when performing window animations.

To reduce these glitches, the view hierarchy will now only
allow itself to be drawn once if its window is being shown
while the window manager is animating, not resuming draws
until it is told that the animation is done.

Change-Id: Ie15192f6fddbd0931b022a72c76ddd55ca266d84
2012-04-27 15:21:44 -07:00
Xavier Ducrohet
cb092e2b7f Fix Paint_Delegate with missing native method.
Change-Id: I39638dcb323fdd1ec3cb58dcad05757145d09026
2012-04-23 17:41:37 -07:00
Dianne Hackborn
68c33ca7ce Add new API to find smallest/largest screen size.
Change-Id: I790801fceaf84ee2e3b1c9d32828285ad3231d0e
2012-04-19 14:55:13 -07:00
Dianne Hackborn
eabfb3a36e Add new scale-up window manager animation.
Like zoom thumbnail, but without the thumbnail.

Change-Id: I9486dd204398b87c9e70ff0d05d03f4a22449cd6
2012-04-16 17:32:50 -07:00
Jeff Brown
ac14351e16 Move some APIs from window manager to input manager.
Simplified input injection API down to just one call.

Removed all input state reading API.  It was only used by the
window manager policy and required a permission that applications
could not obtain.  READ_INPUT_STATE is now unused and deprecated.

Change-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00
2012-04-05 19:33:11 -07:00
Dianne Hackborn
5459c43b83 Merge "Clean up status bar, system bar, navigation bar management." 2012-04-05 11:47:02 -07:00
Dianne Hackborn
f87d19621d Clean up status bar, system bar, navigation bar management.
The status bar and navigation bar are two completely separate
elements, with their own semantics.  The system bar now classifies
itself as a navigation bar, since that is really how it behaves.

This required rewriting the HDMI resizing code, so that it is
all done by PhoneWindowManager since that is what is responsible
for the size of the navigation bar (and thus now system bar).  This
actually gets rid of a fair amount of code, and means we can also
do the same thing for a pure navigation bar.

Likewise the system bar now has the navigation bar ability to be
hidden when requested by system UI flags.  To get the behavior
we want on Xoom, we only allow the nav bar to be hidden when it
will help provide a better aspect ratio for showing widescreen
videos.

Finally the nav/system bar now animates when hidden and shown.

Change-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a
2012-04-04 16:00:45 -07:00
Amith Yamasani
ec4a50428d Embed layout padding in nine patch images
- Added a new custom PNG chunk that carries the layout padding ints.
- Extract the padding ticks from .9.png images and store in the chunk.
- Load the padding information at runtime into Bitmap and NinePatchDrawable.

- The new chunk is ordered first so that it doesn't cause a problem in older
  versions of the platform.

Bug: 6087201

Change-Id: I5de46167a1d44b3ec21065b0c165e594b1dc8399
2012-04-04 12:05:59 -07:00
Xavier Ducrohet
fbd0509f47 Merge "Add Delegate for ViewRootImpl#isInTouchMode to prevent IPC call in Eclipse." 2012-03-23 16:29:50 -07:00
Xavier Ducrohet
22f700a1b8 Add Delegate for ViewRootImpl#isInTouchMode to prevent IPC call in Eclipse.
Also fix some new/removed method from BitmapFactory.

Change-Id: I606bd8bee6ff1e2c6c9472b4672175bfdaff45de
2012-03-23 16:07:23 -07:00
Dianne Hackborn
8078d8c8a2 Add new thumbnail animation.
Use it for recent tasks switching.

Not perfect yet by far, but something.

Also fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D

Change-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2
2012-03-23 14:13:13 -07:00
Xavier Ducrohet
5d701eddcf LayoutLib: Properly support attr ns when used in styles.
Change-Id: I885864588928589d7c9a34b94339917c5be47fa5
2012-03-16 15:14:02 -07:00
Xavier Ducrohet
a421f6c0ba Fix sdk layout rendering in JB.
Since JB, com.android.internal.R does not contain all the resources,
instead only the ones that are accessed through Java.
This means we need to dynamically generate IDs for resources that are
private and only accessed from other XML resources. This is done
through the DynamicIdMap class.

Also add a PolicyManager and a PowerManager since those are now
needed by ViewRootImpl?!?

Change-Id: If2ae8ad79502fa084d852664a44aefd46e01aec6
2012-03-15 16:23:51 -07:00