You can now use android:testOnly="true" to not allow your .apk to be installed
as a normal app. The only way to do so is with the pm command and giving the
-t option, which sets a new INSTALL_ALLOW_TEST flag when installing.
I also used this to clean up the install API... actually, mostly to hide
it, since it is not accessible to apps so shouldn't be in the SDK. We
will be doing some more work on it, so this will prevent adding yet
another backwards-compatibility-for-no-reason version.
Merge commit '3e3439d5ba0cf5eda060c4991219c32af917fc5b'
* commit '3e3439d5ba0cf5eda060c4991219c32af917fc5b':
Fixes#1847219. Add a new API to load fonts from arbitrary files: Typeface.createFromFile(String/File).
Merge commit '851a54143c15a1c33361efae2db3f7f45059b472'
* commit '851a54143c15a1c33361efae2db3f7f45059b472':
Implement targetSdkVersion and maxSdkVersion, plus version code names.
This adds new attributes for specifying a targetSdkVersion and maxSdkVersion.
There is a new ApplicationInfo flag that is set if the application has set
its targetSdkVersion to the current platform or later. Also you can now
use a string for minSdkVersion and targetSdkVerion, to indicate you are
building against a development tree instead of an official platform.
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.
Added new tone types for CDMA IS-95 specific tones.
Automatic selection between IS-95, CEPT and JAPAN version base on operator
country code for call supervisory tones.
Also improved tone generator capabilities:
- Each tone segment can now generate its own set of frequencies
- A tone does not have to be a succession of alternating ON/OFF segments
- The sequence repetition does not have to start from first segment
Temporary fix until audio routing is refactored in Eclair release:
- centralized and synchronized all audio routing control in AudioService.setRouting()
- deprecated AudioManager.setRouting() and AudioManager.getRouting() methods
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.
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.
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.
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