This change amends the doRestore() / onRestore() interface to backup agents to
provide the integer android:versionCode of the app that stored the backup set.
This should help agents figure out how to handle whatever historical data set
they're handed at restore time.
This is to fix bug http://b/issue?id=1931983
Instead of changing the keyboard button from search to carriage return,
I have changed it from search to 'Go' which I find more useful since
it indicates that the user can now go to that URL.
In addition to the signatures of each participating application, we now also
store the versionCode of each backed-up package, plus the OS version running on
the device that contributed the backup set. We also refuse to process a backup
from a later OS revision to an earlier one, or from a later app version to an
earlier.
LocalTransport has been modified as well to be more resilient to changes in the
system's use of metadata pseudopackages.
These are all variations of needing to validate ranges on editing operations
coming from the IME, to account for the underlying text changing (usually being
deleted) asynchronously with the IME.
* changes:
Helper API cleanup. Allows multiple helpers to function, because they'll always go in the same order, and this lets us not have to write headers to keep them paired.
They were only static because of a now removed restriction that
only activity contexts could instantiate SearchManager.
This only changes hidden APIs, but all users of the changed methods
must be updated to use them non-statically before this is submitted.
Since https://android-git.corp.google.com/g/3880
all activities create a SearchManager object, to handle
saving and restoring the search dialog. This broke
ActivityUnitTestCase, since ApplicationContext.getSearchManager()
threw an exception in non-activity contexts.
This change removes the activity context check from
getSearchManager(). Since SearchManager is now just a thin
wrapper for SearchManagerService, there shouldn't be anything
activity-specific in it.
Fixes http://b/issue?id=1926254
It doesn't make much sense to ellipsize the text entered by the user, so we
just ellipsize the hint. This avoids introducing a new XML attribute/Java API
just for the particular case of ellipsizing the hint.
The check for allowing the start of an activity was broken, it was
comparing the process of that activity's application vs. the current
instrumentation target package name. Okay it was utterly insane.
Now this check is that the target activity will be running in the
same process as the instrumentation, which is really what we want.
This is a monotonically increasing integer. Wraps to 0 at
Integer.MAX_INT, and at boot.
Current implementation returns the number of AT commands handled since
boot. This is a good indicator for spammy headset/handsfree units that
can keep the device awake by polling for cellular status updates. As a
rule of thumb, each AT command prevents the CPU from sleeping for 500 ms