Commit Graph

2275 Commits

Author SHA1 Message Date
Scott Main
4c359b76f9 docs: fix a bunch of links from javadocs to api guides
and add some attributes to Spinner and Switch

Change-Id: If015ad000c1a36e19904c132e98ebff1ceaf718b
2012-07-24 17:50:48 -07:00
Adam Powell
1ab2edbcff Merge "Fix bug in parsing attributes for MediaRouteButton" into jb-dev 2012-07-09 14:13:54 -07:00
Scott Main
fd516987de docs: misc bugs from external tracker
Change-Id: I02d0d82c220401ac3a1ca180e8331a0f6dcd9e50
2012-07-03 18:08:19 -07:00
Mike Cleron
98fd6405ae Merge "Fix NPEs when using the APIs a little oddly." into jb-dev 2012-06-28 14:18:48 -07:00
Daniel Sandler
c08dea2aa4 Fix NPEs when using the APIs a little oddly.
This should help developers use some of the features of
Style via subclassing rather than duplicating functionality.

Bug: 6716608
Change-Id: I048e8221c8046e9779e08e6e262ac3fb37b01cb3
2012-06-28 08:35:24 -07:00
Adam Powell
74d762a3ee Fix bug in parsing attributes for MediaRouteButton
Change-Id: Ib61506f7b09b1e043f3f21d2fd46281fbced00f4
2012-06-27 16:19:45 -07:00
Dianne Hackborn
1927ae8a56 Fix issue #6717667: expanded notification actions don't work on the lock screen
FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS was a mistake.

Instead, and the infrastructure for the status bar to take care
of closing and hiding things itself when you press these buttons,
just like it does for the main Intent of the notification.

Bug: 6717667
Change-Id: I1b22186e0cedc05f46a1a3ec78053a72afaf61b1
2012-06-25 14:28:48 -07:00
Adam Powell
f3b653a21c Update route count properly when MediaRouteButton detects
grouped/ungrouped events

Change-Id: I1b00678cc3b548f347c51c3fcbfce18ecc8fbabe
2012-06-22 19:22:38 -07:00
Scott Main
9be0105fbc docs: fix several links
Change-Id: I89d9fd64dc22c90680bb05415cc966c255165af9
2012-06-22 12:35:08 -07:00
Adam Powell
3cd4624448 Merge "Avoid memory leak by only registering callback while attached to window." into jb-dev 2012-06-22 10:44:27 -07:00
Jack Palevich
101c449152 Avoid memory leak by only registering callback while attached to window.
Bug: 6710307
Change-Id: Idf57251e6feb48ec3e75e797144ff800fa874cc8
2012-06-22 16:06:57 +08:00
Adam Powell
f7e0a328c9 Allow ungrouping media routes when a group is the only alternate route
Fix a MediaRouteButton bug where group item counts weren't taken into
account when deciding whether to toggle between two available groups
or show the chooser dialog.

Change-Id: I6400ffd4cfe80c8072c5be360264b8ca91d71c41
2012-06-21 15:29:40 -07:00
Daniel Sandler
790024bfe6 Merge "Unhide new methods on RemoteViews and Notification." into jb-dev 2012-06-21 06:04:43 -07:00
Daniel Sandler
064f9907c9 Unhide new methods on RemoteViews and Notification.
Change-Id: I0cbc270d9d7e9e728482c3b10650a32589636c9d
2012-06-21 00:15:01 -04:00
Dianne Hackborn
b6ce1f311c Merge "Fix issue #6675499: java.lang.RuntimeException: Unable to start..." into jb-dev 2012-06-20 12:06:14 -07:00
Adam Powell
849df0b5a7 Add an XML attribute for controlling which route types a
MediaRouteButton in a layout will alter.

Change-Id: I897a68188fa87e4c2dbc88794117a3ef87ffaab0
2012-06-19 17:47:48 -07:00
Adam Powell
eba1b70d7a Permit MediaRouteButton to select system routes in toggle mode.
Bug 6694917

Change-Id: I82e68aee196c72f349e7638717b727ef3f23e9b5
2012-06-19 15:58:38 -07:00
Dianne Hackborn
acdfbcca6f Fix issue #6675499: java.lang.RuntimeException: Unable to start...
...activity ComponentInfo{com.google.android.gm/
com.google.android.gm.ui.MailActivityGmail}: java.lang.NullPointerException

There were a number of places in FragmentManagerImpl where we were
not dealing with mAdded being null.  In the original implementation,
mAdded would almost always be null if mActive is null.  As we have
added features, this has become a less strong guarantee (and it actually
was never completely guaranteed), but there are a lot of places where
we would check for mActive being non-null and assume this meant
mAdded is non-null.

Fix these to correctly check for mAdded.

Bug: 6675499
Change-Id: I2a6a801d8bc89550fc73e12c9c3f8bb0ad6c7fa4
2012-06-19 15:07:05 -07:00
Jim Miller
45308b1b3b Fix 6667238: allow market apps to support ACTION_ASSIST
This change allows market apps and 3rd parties to supply an activity
that responds to ACTION_ASSIST (e.g. market apps).

It also adds a test app to respond to the ASSIST intent and force
the intent disambiguation dialog to appear.

Change-Id: I5a78863c6a9546d18c66275187d178f6a1c9ee17
2012-06-19 15:00:13 -07:00
Nicolas Falliere
9530e3a22d Added or fixed doctrings for required permissions.
Bug: 6591338
Change-Id: Ia2092f9994854701b5fa1425c371817367ae07ec
2012-06-18 17:22:34 -07:00
Adam Powell
39d5c61725 Make MediaRouter UI more robust around route count changes
Improve the API around ActionProvider visibility overriding. Allow the
application to notify whatever is hosting the ActionProvider that
visibility has changed in a way that is friendly to alternate support
library-style reimplementations of MenuItem.

Allow MediaRouter.Callback implementations to add or remove themselves
or other Callbacks during dispatch of callback events.

Make MediaRouteActionProvider track the visibility of corresponding
menu items more accurately.

Change-Id: Ic7ddb6a87c3637904750d2661e4a9fa323b09ea0
2012-06-16 14:49:13 -07:00
Adam Powell
130b4572d1 ActionProvider API update
* Add ActionProvider#overridesItemVisibility and isVisible.
  These methods allow an ActionProvider to override the
  visibility of a MenuItem that it is bound to. If a MenuItem
  has been explicitly hidden by the application, it will not
  be visible.

* Change MediaRouteActionProvider to not require a MediaRouter
  callback, to avoid extra lifecycle management headaches.

Change-Id: I606fa98b3a6a3e60a953dd024274f9bf9c67acdd
2012-06-15 20:19:29 -07:00
Adam Powell
90b9f84c43 Merge "API updates for MediaRouter" into jb-dev 2012-06-14 17:51:27 -07:00
Adam Powell
0d03c042f9 API updates for MediaRouter
* Accept a Context when fetching the names of routes and
  categories. This lets string resources resolve at time of access
  with the correct configuration. The older versions remain available
  that will use the static resources from the application. (There are
  enough cases where applications will populate this from external
  data that requiring it each time even when it was not initialized
  from a resource doesn't seem reasonable.)

* Remove the ability for apps to programmatically select non-user
  routes.

* Make MediaRouter.Callback an abstract class instead of an interface.
  This will make further extensions easier to keep compatible in the
  future.

Change-Id: If981c511dfbdfaf41ef0d1cfe4a377fc14bb5600
2012-06-14 16:16:31 -07:00
Jeff Brown
9e197141f8 Merge "Add new ASSIST key and map it to the global assist intent." into jb-dev 2012-06-14 11:28:52 -07:00
Jeff Brown
de7a8ead24 Add new ASSIST key and map it to the global assist intent.
Moved some duplicate code from SearchPanelView and LockScreen
over to SearchManager to avoid creating yet another copy of it
in PhoneWindowManager.

Bug: 6594275
Change-Id: Ib4ebcd6817639d17548952ab2ce7cb876c05777c
2012-06-14 04:16:26 -07:00
Daniel Sandler
4365d066e8 Merge "Remove line3 in big notification unless there's text to show." into jb-dev 2012-06-13 18:00:56 -07:00
Adam Powell
70e11e50ee MediaRouter dialog
Add the dialog behavior for MediaRouteActionProvider/MediaRouteButton.

Still TODO:

* Switch audio icon based on source; speaker/bt/user

* Rig up volume slider

* Rig up item icons

* Rig up group button for groupable categories

* Make grouping work

Change-Id: I3f992516b184d5ae940ddb7bbb7f94ff58914589
2012-06-13 11:42:10 -07:00
Daniel Sandler
916ad91c38 Remove line3 in big notification unless there's text to show.
If you have no subText or summaryText in a big template, but
you *do* have a number, the overflow bar (below the big text
or inbox or whatever) would have shown; now it does not.

Bug: 6657006
Change-Id: Ib2af2712da3a98227bd8d697560893adbdc427e9
2012-06-13 12:17:07 -04:00
Daniel Sandler
7d2e8960d0 Merge ""Two actions ought to be enough for anybody."" into jb-dev 2012-06-13 07:07:02 -07:00
Daniel Sandler
602ad1c978 "Two actions ought to be enough for anybody."
Bug: 6650170
Change-Id: I5ee6990a8e556f9ee1fbfb0989db33f75b07f4ea
2012-06-12 16:06:27 -04:00
Adam Powell
b35c445f34 MediaRouter work
Fix a bug where MediaRouter would crash on creation

Add click listener for app-supplied extended settings on the route
selection dialog.

Change-Id: I2991db1720b5c574148e250526984592f4dc3c44
2012-06-12 11:26:39 -07:00
Dianne Hackborn
b58b8f832d Rework media router to be per-context with global process state.
Change-Id: Ic1cb6f13e691d22783bcdafae85b7c75aec0a66f
2012-06-11 15:41:08 -07:00
Adam Powell
d0d2cda9d4 Further work on MediaRouter
Remove volume control and tracking. This will be handled by extensions
to existing audio and media APIs for now.

Tweak/refine other aspects of the API. Pass the router to callbacks for
easier future-proofing. Add group/ungroup callback methods.

Change-Id: Ib69e76e5f46280a9002b545bcf4cbc7b839844ee
2012-06-11 13:17:44 -07:00
Daniel Sandler
619738c9e7 Various notification template cleanups.
Bug: 6597693 // hide line3 in InboxStyle
Bug: 6593691 // vertical centering inconsistencies
Bug: 6592116 // no left action gutter in BigPicture
Bug: 6622757 // missing subtext in BigText expanded
Change-Id: I941af99d0a905b6e0aa6fb74ad4eff29c17d9fc2
2012-06-08 11:41:37 -04:00
Adam Powell
690ffb4e1f More fun with MediaRouter
Add action provider, button, and styles. Extend ActionProvider to
allow for getting references to MenuItem instances.

Implement toggle mode for the MediaRouteButton/ActionProvider. Dialog
selection yet to come.

Change-Id: Ibe3188570f503bbf8dd00cf154663435656a7171
2012-06-05 19:15:57 -07:00
Dianne Hackborn
ee76efb74b Fix issue #6584942 IllegalStateException: Failure saving state...
...active SuggestFragment{419494f0} has cleared index: -1

There were issues when the same fragment was removed and then
added again before completely finishing the remove (such as due
to a running animation).

Two fixes:

- Now when you call FragmentTransaction.replace() and are replacing
  a fragment with the same fragment, this becomes a no-op, to avoid
  visual artifacts in the transition and bad states.
- When we are moving the fragment state up and it is currently
  animating away to the INITIALIZED state, we could end up making
  the fragment inactive as part of the cleanup.  In this case it
  shouldn't be made inactive; we just need to initialize it but
  keep it active since we are going to continue to use it.

Bug: 6584942
Change-Id: I8bfd73f2d8ef8f67b541b3e2525dfa5db6c3bfa5
2012-06-05 10:52:38 -07:00
Daniel Sandler
7a394abb54 Merge "Unused API should be hidden." into jb-dev 2012-06-04 10:49:53 -07:00
Daniel Sandler
a90513d5f4 Unused API should be hidden.
Change-Id: Ifed4d06e620c990ccecc1ee1aaf3adedbdc7c2da
2012-06-04 02:11:17 -04:00
Dianne Hackborn
84375876fc Work on issue #6579997: Mariner entrance animation
Add a new variation of ActivityOptions that allows you to
supply custom animation resources and get a callback when the
animation starts.

Use this in SearchPanelView to determine when to start hiding
the search panel instead of having a fixed delay.

Fix some issues in the activity manager where we would cancel
the options in cases where we should actually keep them to give
to the window manager for a transition.  (Basically when the
activity being started is not actually ending up launched, but
just results in a shift in the activity stack.)

Note that this is not quite what the design calls for -- the
entire search UI is waiting and then disappearing when the
animation starts, instead of the ring first disappearing while
waiting for the time to fade out the circle.

Change-Id: Iee9a404ba530908d73cdbd4a9d0d2907ac03428f
2012-06-01 19:13:55 -07:00
Dianne Hackborn
a93c2c117d Extend process observer to be usable for media routing.
It now has a new callback to report changes in the "importance"
of processes.  Rewrote the dispatching code to be a bit more
efficient now that we are sending more reports.

Change-Id: Ie865cfd286455819f04e8c14e9b6fd54d028f8f2
2012-05-31 18:58:34 -07:00
Dianne Hackborn
388d4801d5 Merge "Working on issue #6561352: java.lang.RuntimeException: Unable to start..." into jb-dev 2012-05-30 18:11:23 -07:00
Dianne Hackborn
61af8a8ef7 Working on issue #6561352: java.lang.RuntimeException: Unable to start...
...activity ComponentInfo{com.google.android.googlequicksearchbox
/com.google.android.googlequicksearchbox.SearchActivity}

Add check for a situation where we are saving the state of a
fragment with a -1 index, and fail early in that case with more
debug information.

Change-Id: I03a928dde521fa06664d0036dd9f90eef3247afc
2012-05-30 16:38:30 -07:00
Daniel Sandler
c5d2050961 Merge "Visual tweaks to notifications." into jb-dev 2012-05-30 12:55:00 -07:00
Daniel Sandler
6387d2f6da Visual tweaks to notifications.
- Smaller right_icons
  - Higher-contrast text colors
  - Dividers between actions
  - Dividers above actions and overflows
  - Consistent 8dp gutter on left of content
  - BigTextStyle should not show line3 unless there is a subtext.
  - Collapse summary ("overflow") text into line3. This is a
    little wild because now the contentText, subText, and
    summaryText all share this spot, but the various
    variables all have different times when they're
    expressed so you have greater control over what shows
    where in the 1U and the expanded form.
  - Do not show contentText in BigText's line3. If you have
    subtext or summarytext, show that; otherwise suppress
    line3 entirely.

Bug: 6558134 // line3
Bug: 6508804 // other visuals
Change-Id: Ib79e818a332d17000e9a8fce333eff8f8cf043aa
2012-05-30 15:28:22 -04:00
Dianne Hackborn
5f48fca218 Fix issue #6579824: Email crash observed after updating...
...device from JRN59D to JRN60

Deal correctly with multiprocess content providers that need to
be loaded into a secondary process; wasn't correctly detecting the
case where the IContentProvider returned by the activity manager
is null.  (installProvider used to be given the direct IContentProvider,
now it gets the ContentProviderHolder and much check whether the
provider inside is null.)

Change-Id: I888622e275a459031ab849952941f39cf9c02ee0
2012-05-30 11:06:31 -07:00
Christopher Tate
aefe4aa4d4 Merge "Prevent construction/use of invalid restore session proxies" into jb-dev 2012-05-29 15:52:24 -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
Christopher Tate
f5491fc1b6 Prevent construction/use of invalid restore session proxies
Possible (rare) null return was not being handled.  Fixes
bug 6554812.

Change-Id: I470e916f2156ff7ed2947d6ce21ef2816fc7f97d
2012-05-25 14:14:49 -07:00
Jean-Michel Trivi
37fde0aca0 Unhide KeyguardManager locked and secure state getters
Unhide the following methods:
  android.app.KeyguardManager.isKeyguardLocked()
  android.app.KeyguardManager.isKeyguardSecure()

Fix some javadoc typos

Change-Id: Iedcd9f6a5261b7a3b47431edff013f629e1dc45d
2012-05-24 18:09:44 -07:00