This introduces a new class in the base platform for performing a clean
shutdown (which was copied from the classes in the policies). It
includes new features to send a shutdown broadcast for applications
to do cleanup, and ot have the activity manager pause the current
activity before proceeding with the shutdown. These facilities are
also use to write at the most recent stat files for sync, battery
and user activity.
Previously, there was no generic contact icon in the framework.
ContactsProvider needs to have a generic contact icon to use
for contacts that don't have photos. Since there are multiple
packages (MyFaves, GoogleSubscribedFeedsProvider) that use
ContactsProvider.java directly, adding the icon in the
ContactsProvider package is not an option.
The icon is a copy of
packages/apps/Contacts/res/drawable-finger/ic_contact_picture.png
The previous implementation used a database for storing all of its state, which could cause
a significant amount of IO activity as its tables were updated through the stages of a sync.
This new implementation replaces that in-memory data structures, with hand-written code
for writing them to persistent storage.
There are now 4 files associated with this class, holding various pieces of its state that
should be consistent. These are everything from a main XML file of account information that
must always be retained, to a binary file of per-day statistics that can be thrown away at
any time. Writes of these files as scheduled at various times based on their importance of
the frequency at which they change.
Because the database no longer exists, there needs to be a new explicit interface for
interacting with the sync manager database. This is provided by new APIs on IContentService,
with a hidden method on ContentResolver to retrieve the IContentService so that various
system entities can use it. Other changes in other projects are required to update to the
new API.
The goal here is to have as little an impact on the code and functionality outside of
SyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.
Merge commit '854c8c78c1bce214f6479772d94147070ec6764f'
* commit '854c8c78c1bce214f6479772d94147070ec6764f':
make AutoCompleteTextView take the alternate anchor view into account when computing the max available space on screen.
Merge commit '275555c8eb3fb5df6e7320873b88b77cdde85a9e'
* commit '275555c8eb3fb5df6e7320873b88b77cdde85a9e':
location: Add support for location providers outside of the system process.
Also added new permissions android.permission.INSTALL_LOCATION_PROVIDER
and android.permission.INSTALL_LOCATION_COLLECTOR to the public API.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '9a81736176f507489f262344b6e3d55bbe53be7c'
* commit '9a81736176f507489f262344b6e3d55bbe53be7c':
Add the ability to specify the onClick handler with XML. The new android:onClick attribute defines the name of the method in the Activity to invoke when the button is clicked. The method has to be public and get one View parameter.
Fixes conflicting attr IDs due to donut-to-master automerge.
As a side effect, it fixes the "Field android.R.attr.contentAuthority
has changed value from 16843373 to 16843374" error introduced by change
804.
Background:
I submitted two changes to donut that add new public attributes:
https://android-git.corp.google.com/g/Gerrit#change,795https://android-git.corp.google.com/g/Gerrit#change,796
This was fine in donut (though still waiting for build server to
finish), but when auto-merged to master it caused a new build breakage.
This was on top of existing breakage due to
https://android-git.corp.google.com/g/Gerrit#change,804
The problem is that there are now multiple attribute definitions with
identical IDs, as you can see at the bottom of:
https://android-git.corp.google.com/w/?p=platform/frameworks/base.git;a=blob;f=core/res/res/values/public.xml;h=becc90ef05481321c60301176b91ca7b4553a6d7;hb=master
This did not cause an automerge failure, since my new attributes were
in the "platform 4" section, whereas the new attributes in master were
in the "platform 5" section. It seems like the temporary solution
would be to change the resource IDs in "platform 5" to come after the
ones in "platform 4". But the next time someone adds an attribute in
"platform 4", we will have the same problem. Any ideas?
If this attribute is provided and true, the searchable activity will be
included in any global lists of search targets.
This is needed to support third-party suggestion providers in
global search. See http://b/issue?id=1819651
This lets the searchable activity specify the number of
characters needed to trigger suggestions. Before, this was
hard-coded at 0. This caused unnecessary querying of the
suggestion provider in cases where the provider does not
return suggestions for empty or short queries.
Merge commit '98e333f551a4bf2ebb50bb97a2a56b14bfdcd74b'
* commit '98e333f551a4bf2ebb50bb97a2a56b14bfdcd74b':
Fix back key and ime behavior for search dialog.
Merge commit '6fcddb05eee19edfd3063b9eefbdb0de0dbd4f4f'
* commit '6fcddb05eee19edfd3063b9eefbdb0de0dbd4f4f':
Display the app icon to the left of the search field for search within apps.
Merge commit '04ab1c767199bc674a7b7424fdd0d527c32252ac'
* commit '04ab1c767199bc674a7b7424fdd0d527c32252ac':
Add a grey line to the top of the search plate image so it doesn't
The attribute is not yet public.
Also adds a SearchManager method for listing all
searchables that can be included in global search.
This is the framework part of http://b/issue?id=1819651
This lets the searchable activity specify the number of
characters needed to trigger suggestions. Before, this was
hard-coded at 0. This caused unnecessary querying of the
suggestion provider in cases where the provider does not
return suggestions for empty or short queries.
The attribute is not yet public, pending API council approval.
The back key now dismisses the soft keyboard, and then the dialog.
The soft keyboard behavior is improved by having ACTV do the following when 'mDropdownAlwaysShowing' is true:
- touching outside of the drop down doesn't dismiss it
- touching the text field ensures the imei is brought in front of the drop down