This is the framework part, moving classes around so the framework
no longer needs to link to android-common. Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
Change recommendAppInstallLocation api
add code to parse new attribute.
Define flags in PackageInfo
Add new settings attributes for enabling setting and value for install location
Some tests
The policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.
If the user enables setting SET_INSTALL_LOCATION(which will always
be set to false in final release builds) and sets a prefered location, we try
to honour it.
Most of these are file moves; a couple notable exceptions are the changes due to the move, and fixing up test code:
- database/DatabaseCursorTest.java
- database/DatabaseStatementTest.java
- net/UriTest.java
along with the tests
Make test code not only check the validity of VCardParser but also check
the validity of the data insertion part of ContactStruct class, using
MockContentResolver/MockContentProvider. With these tests, we are now really sure
vCard side appropriately sends vCard data into the resolver.
Fix ContactStruct so that it properly handles ORG property and TITLE property,
though it still does not see Group information. There's no vCard found which
uses Group and ORG and TITLE in convolted orders...
e.g. Current implementation misinterprets the following case, but we're not sure
whether any exporter emits data in this kind of complicated form...
group2.ORG:ComparyA
group1.ORG:CompanyB
group1.TITLE:TitleForA
group2.TITLE:TitleForB
Expected: CompanyA + TitleForA, CompanyB + TitleForB
Actual: CompanyA + TitleForB, CompanyB + TitleForA
Also change the parser part a little, so that some component can be reused via
the other part of vCard code.
Added several additional files for the tests, which ensures that
- ORG/TITLE properties are handled as we expect.
- PREF is appropriately handled and passed to the resolver as "IS_PRIMARY" flag.
-- We discarded the code which ensures that "IS_PRIMARY" is added to only one
field in each type, after the local discussion (the duplication or no primary
state should be handled by the resolver).
Internal Issue number: 2160039
Move VCard code from android/syncml/pim to android/pim since the code is not
related to SyncML at all; Previous code was misplaced, I suppose.
Reorganize "Builder" structure:
Create VCardBuilderBase.java as a base class for "Builder" classes.
Separate VCardDataBuilder to several components.
Now, VCardBuilder is able to accept EntryHandlers (interface) which handle each VCard entry.
Add EntriCommitter and ProgressShower as ones of EntryHandler implementations.
Stop using VNode/PropertyNode in the actual importing path. Instead, VCard importer directly
creates ContactStruct object.
PropertyNode is still used in test codes, since it does not drop any kind of information
while ContactStruct does.
All codes are made hidden (with package.html) like the files in syncml directory;
These files are only for Contacts app.
Issue
- due to internal issue 1975498, any performance test cannot be conducted.
Next todos
- Add tests for ContactStruct.
- remove android/syncml directory.
- Rename several methods; old names are based on V??? structure, which does not make sense in the current code.
- Use ContentProviderOperation instead of relying on beginTransaction()/endTransaction().
- Use ContactsContact in Eclair
Related internal issues
- 1784580, 1728351
Fixes http://b/issue?id=1905863
This is needed to address two security issues with global search:
http://b/issue?id=1871088 (Apps can read content providers through GlobalSearch)
http://b/issue?id=1819627 (Apps can use GlobalSearch to launch arbirtrary intents)
This also fixes http://b/issue?id=1693153 (SearchManager.OnDismissListener
never gets called)
To fix the security issues, GlobalSearch also needs to require
a non-app permission to access its content provider and launch intents.
commit 012b56fc607cf243cf4b29cb2a5f172bcbe0aecd
Author: Robert Greenwalt <robdroid@android.com>
Date: Wed Apr 22 14:31:26 2009 -0700
Additional fixes and tests for density.
commit 91fdc8e187551ae69e0029a4325fb3ad38fe411b
Author: Robert Greenwalt <robdroid@android.com>
Date: Tue Apr 14 14:39:00 2009 -0700
Fix runtime resource selection logic.
Fix isBetterThan so that o or this may be supperior at any stage.
Used to only handle this-better or tie at each stage, biasing against o.
Also allows reset of unit test to succeed. Fixes bug 1709202.