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.
Author: Christopher Tate <ctate@google.com>
Date: Mon May 4 16:38:11 2009 -0700
IBackupService now passes ParcelFileDescriptors rather than int fds
The outlines of backup state file / data file handling are now in place as well
in the BackupManagerService.
Author: Christopher Tate <ctate@google.com>
Date: Thu Apr 30 12:40:19 2009 -0700
Hide the backup stuff for now
Also adjust based on comments:
+ changed service intent string to conform to usage guidelines
+ only publish the IBackupService binder when invoked with the right
intent action
+ docs tweaks
Merge commit '636274185ed5ee75faf6ef4d84bbb7d5b0371248'
* commit '636274185ed5ee75faf6ef4d84bbb7d5b0371248':
Fixes 1830181. Tapping disabled items in a ListView would cause the framework to take a code path that wasn't resetting the mMotionCorrection variable if it had been previously set. This would force ListView to apply a scroll to its children even though it was unnecessary. This simple fix prevents the issue by resetting mMotionCorrection appropriately.
* changes:
Fixes 1830181. Tapping disabled items in a ListView would cause the framework to take a code path that wasn't resetting the mMotionCorrection variable if it had been previously set. This would force ListView to apply a scroll to its children even though it was unnecessary. This simple fix prevents the issue by resetting mMotionCorrection appropriately.
Merge commit '724561cc20e259888986cbb0be2fdab4d142d869'
* commit '724561cc20e259888986cbb0be2fdab4d142d869':
Fixes external #2575 (http://code.google.com/p/android/issues/detail?id=2575). HorizontalScrollView was comparing the measured height of its child to its width.
Merge commit '7ff943673e48a912eb7cc5add08e206c2c25d68e'
* commit '7ff943673e48a912eb7cc5add08e206c2c25d68e':
Debug: Add setPropertiesOn(), and @hide it for now
Merge commit '6a1ae64f7735a3817713a223096bf8034f78a620'
* commit '6a1ae64f7735a3817713a223096bf8034f78a620':
Fix another HTML formatting in android.os.AsyncTask
Merge commit '7db486058cf4fce4be04e13d1ec6b7cf404d3e38'
* commit '7db486058cf4fce4be04e13d1ec6b7cf404d3e38':
Config: Add ConfigBuildFlags, and change it based on TARGET_BUILD_TYPE
Merge commit '854c8c78c1bce214f6479772d94147070ec6764f'
* commit '854c8c78c1bce214f6479772d94147070ec6764f':
make AutoCompleteTextView take the alternate anchor view into account when computing the max available space on screen.
Copy 3.xml to 4.xml, and patch 4.xml to deal with the fact that
Config.DEBUG's value is no longer actually fixed. We don't want
to modify 3.xml directly, because it's the official cupcake API.
Update current.xml to reflect the differences between 3.xml and 4.xml
and to reflect the new deprecation states.
The deprecated fields should be @hidden if possible before the
next API release, but it can't be done yet because there are
SDK-linked platform apps that use some of the deprecated fields.
Signed-off-by: Dave Bort <dbort@android.com>
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.
Merge commit 'e5c4725666da25138193bed83831b66b9c0b2c45'
* commit 'e5c4725666da25138193bed83831b66b9c0b2c45':
pass original ptrs to JNI release functions (instead of += index to them)
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.