151 Commits

Author SHA1 Message Date
Brad Fitzpatrick
1877d0158b Add "call" method on ContentProvider.
This permits implementing interfaces which are faster than using
remote Cursors.  It then uses it for Settings & SettingProvider, which
together account for ~50% of total ContentProvider event loop stalls
across Froyo dogfooders.

For fetching Settings this looks like it should reduce average
Settings lookup from 10 ms to 0.4 ms on Sholes, once the
SettingsProvider serves most gets from in-memory cache.  Currently it
brings the Sholes average down from 10ms to 2.5 ms while still using
SQLite queries on each get.
2010-03-05 12:08:39 -08:00
Paul Westbrook
69120a73d0 Bug 2306842
Since MockAccountManager was passing null to the AccountManager
constructor, unit tests where the AccountManager attempts to call
the AccountManagerService were crashing.

Now the getAccountsByTypeAndFeatures and blockingGetAuthToken
(which are the calls that the Gmail unit tests call) call a small
stub

At some point, all of the other AccountManager calls should be stubbed
out
2010-02-26 18:24:29 -08:00
Doug Zongker
0375fa12c7 fix error in javadoc
The "@link LargeTest" is broken since it doesn't know where that class is.

Change-Id: Ie15e40bac8a1965427e351926b2208775e79cb13
2010-02-23 12:36:06 -08:00
Brett Chabot
88e03a9736 Add ability to run tests restricted to given annotation.
And ability to exclude tests with given annotation.

Also fix class cast compile warning in emma output method.

Bug 2239240

Change-Id: I56273a51a8c58a690680bdb612615fab69e6e13f
2010-02-22 18:08:35 -08:00
Brett Chabot
08d13c3cbb Fix code coverage output message when running tests in non-raw mode.
Bug 2082804
2010-02-20 18:38:30 -08:00
Brett Chabot
e70f61b116 Retry test-runner tests move.
This time change the frameworks makefile so it only includes test-runner/src
in the public API.
2010-02-20 17:29:05 -08:00
Suchi Amalapurapu
8946dd3355 Move package from internal to external and vice versa. 2010-02-19 14:20:54 -08:00
Suchi Amalapurapu
642b7c0f19 Merge "Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests" 2010-02-16 09:23:51 -08:00
Suchi Amalapurapu
5b993ce7bc Include install location preference when installing packages.
Changes include
Add new remote call in default container service to determine
install location.
Rename INSTALL_ON_SDCARD
Remove recommentAppInstall method
Add some additional flags used in remote stubs.
Move check for protected apps prior to copy.
Unit tests

DefaultContainerService first parses the file uri(if content uri is specified
it returns a default install internal only value) and returns
a recommended location. Based on which the temporary id is determined
either a file name or a container id and the file is copied there.
This is then later renamed during install.
Todo's light weight parsing of package when determining location since we
just need the install location attribute only when finding out
recomended location. This will also enable to move the check for
updated system apps(cannot be on sdcard) prior to copying.
2010-02-12 18:50:47 -08:00
Brett Chabot
90762d35a9 Modify ActivityInstrumentationTestCase2 to not require hardcoded package name.
Deprecate old constructor.

Bug 2440167
2010-02-12 11:09:26 -08:00
Dianne Hackborn
470969346d Add APIs for mapping between new and current package names.
This will allow Market and others to find out what the "real" name
of a package is, when it is currently running under the old name of
a previously installed version.
2010-02-11 20:02:20 -08:00
Paul Westbrook
1048108f1f Fix some Gmail tests
The SSLSessionCache attempts to create a directory through the context
In MockContext, this throws an UnsupportedOperationExcetion

This CL changes MockContext2 in ProviderTestCase2 to allow getDir
to be called, but the directory is named so it will be seperated from
a directory created by a regular context
2010-02-11 14:09:10 -08:00
Suchi Amalapurapu
117818e4f1 Add new manifest option for install location
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.
2010-02-10 08:59:08 -08:00
Mike Lockwood
d03ff94fe5 Clean up interface between LocationManagerService and the location providers:
LocationManagerService now uses new Java interface LocationProviderInterface
rather than LocationProviderProxy to refer to location providers internally.

LocationProviderProxy and the ILocationProvider binder interface are only
used for location providers implemented as services (NetworkLocationProvider)

Built-in location providers (GpsLocationProvider and mock providers) now just
implement LocationProviderInterface rather than using a Binder interface and proxy object.

Delete obsolete and unused TestLocationProvider class.

Change-Id: Id800e7c1864f7c666f8e37125c05896493b9c8c4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-10 09:41:25 -05:00
Dianne Hackborn
e83cefcef0 New external storage APIs.
This implements the spec for external storage organization, and
properly reflects how the media scanner organizes the files it finds.

Also includes package manager support for removing app private
files from external storage when the application is uninstalled.

For the new APIs and paths, the main place to look is Environment
and Context.
2010-02-09 14:20:55 -08:00
Fred Quintana
53bd2522ca - change the SyncManager to retry MANUAL syncs that encounter a soft error
- make the sync dump handle the case where there are no accounts
- fix a bug that caused the SyncManager to burn up CPU in the system process

The following was implemented:

scheduler offers:
 - settings to disable sync
 - retries of certain errors
 - backoffs

want a way to control these when scheduling a sync
 - "ignore_settings"
 - "ignore initial backoff"
 - "manual" : ignore settings, ignore initial backoff
 - "do not retry"

- need to change the default behavior of not retrying manual syncs to retry regardless
2010-02-08 16:54:43 -08:00
The Android Open Source Project
5d36c46d2d am ad9bcb22: merge from open-source master
Merge commit 'ad9bcb22d05fbf130ac64254abd51a137e9a3d3f'

* commit 'ad9bcb22d05fbf130ac64254abd51a137e9a3d3f':
  Fix x coordinate of the ACTION_UP event in TouchUtils.drag() method
  Fixed Android animation framework, for using interpolators that do not start at 0.0f
  Fix for GPS engines without separate session and engine status events.
  Be tolerant of GPS session and engine on status messages arriving out of order.
  GpsLocationProvider: Do not release wakelock until the GPS engine is fully off
2010-02-08 09:17:10 -08:00
The Android Open Source Project
ad9bcb22d0 merge from open-source master 2010-02-05 13:55:16 -08:00
Marc Capdevielle
8621cfa43f Fix x coordinate of the ACTION_UP event in TouchUtils.drag() method
The ACTION_UP event was fired at the "fromX" position instead of being
fired at the "toX" position which is the current value of local var "x".

This bug had no real impact as the VelocityTracker always ignores the last
MotionEvent when it received more than 3 events...
2010-02-05 19:28:23 +01:00
Oscar Montemayor
539d3c475f Apps on SD card project.
Refactored recommendAppInstallLocation(..) method in PackageManager by making it an instance method.
Since PackageManager has only abstarct instance methods, moved implementation to ApplicationContext.ApplicationPackageManager class, in line with the rest of the method
implementations. Tah way, chage is consistent with best coding practices.
Also MockPackageManager received the additional method.
2010-01-29 15:28:42 -08:00
Fred Quintana
717f0eb34b am 029074ff: fix build
Merge commit '029074ff0fca198676997c7453cfffa932361081' into eclair-mr2-plus-aosp

* commit '029074ff0fca198676997c7453cfffa932361081':
  fix build
2009-12-10 10:45:22 -08:00
Fred Quintana
f99e2e042d am 563bfade: fix a build breakage
Merge commit '563bfade6601f3410681b3cd8b069ed22af5b048' into eclair-mr2-plus-aosp

* commit '563bfade6601f3410681b3cd8b069ed22af5b048':
  fix a build breakage
2009-12-10 10:43:58 -08:00
Daisuke Miyakawa
8ad6ec2eb4 am 8280c2b1: Implement new MockContentProvider. Also make ContentProvider aware of the class.
Merge commit '8280c2b15f6875b2d387c05df23d264864eb9cd5' into eclair-mr2-plus-aosp

* commit '8280c2b15f6875b2d387c05df23d264864eb9cd5':
  Implement new MockContentProvider. Also make ContentProvider aware of the class.
2009-12-04 00:53:53 -08:00
Daisuke Miyakawa
8280c2b15f Implement new MockContentProvider. Also make ContentProvider aware of the class.
Rename the old MockContentProvider to MockIContentProvider since it is
more appropriate name.

Detail:
Current developers inevitably depend on the backend used by ContentProvider,
which is useful but not ideal nor "testable" from the view of them.

Current MockContentResolver only accepts exact "ContentProvider" class, not
IContentProvider interface, since we want to hide "IContentProvider" while
the old MockContentProvider implements IContentProvider and as a result some
methods we want to hide may be exposed to the public SDK now and probably
for the future.

On the other hand, ContentProvider is not interface but an exact class
heavily depends on the internal logic and not suitable for external
developers to use for tests.

The new MockContentProvider introduces the mock implementation
for ContentProvider.
It extends ContentProvider, so "is" ContentProvider, but tries to avoid
depending on any backend System like IPC in Android, etc.
This should be useful from the view of application developers who do not
want to be confused with ContentProvider/ContentResolver backend
implementation "at all" and want to use MockContentResolver without
any other ContentProvider implementations tightly connected to the
external worlds.
2009-12-04 17:48:44 +09:00
Jack Wang
e5fa335b0d am 6e045e0a: am e0cadd7c: Merge change Iffbb6e55 into eclair
Merge commit '6e045e0aa1b465e9e989d3058a5d2fa13dcf026b' into eclair-mr2-plus-aosp

* commit '6e045e0aa1b465e9e989d3058a5d2fa13dcf026b':
  Make perf metrics collection & output via instrumentation simpler
2009-11-16 15:29:15 -08:00
Jack Wang
6e045e0aa1 am e0cadd7c: Merge change Iffbb6e55 into eclair
Merge commit 'e0cadd7cd811a674df62279dec00d17678b2c501' into eclair-mr2

* commit 'e0cadd7cd811a674df62279dec00d17678b2c501':
  Make perf metrics collection & output via instrumentation simpler
2009-11-16 15:25:06 -08:00
Jack Wang
2c13b9d155 am e0cadd7c: Merge change Iffbb6e55 into eclair
Merge commit 'e0cadd7cd811a674df62279dec00d17678b2c501' into eclair-plus-aosp

* commit 'e0cadd7cd811a674df62279dec00d17678b2c501':
  Make perf metrics collection & output via instrumentation simpler
2009-11-16 15:25:01 -08:00
Jean-Baptiste Queru
478de466ce merge from eclair 2009-11-15 12:06:23 -08:00
Jean-Baptiste Queru
9db3d07b96 eclair snapshot 2009-11-13 13:53:39 -08:00
Jack Wang
4f414bd7a7 Make perf metrics collection & output via instrumentation simpler
- Added includeDetailedStats metadata to TimedTest for collecting additional
  metrics like memory usage and binder transactions
- Added PerformanceCollectorTestCase interface for hard-typing test class as
  performance test while still able to inherit from instrumenation test classes
- Reverted previous changes to PerformanceTestBase, will deprecate
  PerformanceTestBase/Case in a future CL
- Removed 'performance.' prefix from keys written to instrumentation output
2009-11-10 19:26:14 -08:00
Jack Wang
af93c05c9a am 227ba207: am e8228afb: Merge change I92cdc5ed into eclair
Merge commit '227ba2072df1474a0b3abaae7c415f152d32bcc2' into eclair-mr2-plus-aosp

* commit '227ba2072df1474a0b3abaae7c415f152d32bcc2':
  PerformanceCollector: Collect & report perf measurements in key/value form
2009-10-30 18:41:08 -07:00
Jack Wang
227ba2072d am e8228afb: Merge change I92cdc5ed into eclair
Merge commit 'e8228afb2bd005ae25ce58719f9d678389b26a16' into eclair-mr2

* commit 'e8228afb2bd005ae25ce58719f9d678389b26a16':
  PerformanceCollector: Collect & report perf measurements in key/value form
2009-10-30 17:07:56 -07:00
Jack Wang
1d225d67d9 am e8228afb: Merge change I92cdc5ed into eclair
Merge commit 'e8228afb2bd005ae25ce58719f9d678389b26a16' into eclair-plus-aosp

* commit 'e8228afb2bd005ae25ce58719f9d678389b26a16':
  PerformanceCollector: Collect & report perf measurements in key/value form
2009-10-30 17:07:21 -07:00
Jack Wang
075997f12e PerformanceCollector: Collect & report perf measurements in key/value form
- Added new functions to PerformanceCollector and PerformanceResultsWriter
- Modified unit tests to test new functionality and fix flakiness reported in
  2218327 and 2118268
- Added PerformanceCollectorTest to small suite
2009-10-28 14:32:05 -07:00
Daisuke Miyakawa
ae27c57664 am 54616f34: Make MockCursor class a part of public SDK.
Merge commit '54616f3435e67029006d2f77462c61ed0635a3f6' into eclair-mr2-plus-aosp

* commit '54616f3435e67029006d2f77462c61ed0635a3f6':
  Make MockCursor class a part of public SDK.
2009-10-21 16:10:24 -07:00
Daisuke Miyakawa
54616f3435 Make MockCursor class a part of public SDK.
With this class, external developers will be able to reduce their
redundant work related to testing around ContentProvider/ContentResolver.

Internal Issue number: 2181010
2009-10-22 07:25:02 +09:00
Mike Lockwood
a4f6c96f1a am 348b92bd: Merge change Iee227ace into eclair
Merge commit '348b92bd513087369ac682e29620d7829fa1381b' into eclair-plus-aosp

* commit '348b92bd513087369ac682e29620d7829fa1381b':
  GPS: Fix problem with SUPL when SUPL APN is already active.
2009-10-08 15:10:25 -07:00
Mike Lockwood
03d246779e GPS: Fix problem with SUPL when SUPL APN is already active.
Use ConnectivityManager.CONNECTIVITY_ACTION broadcast in LocationManagerService
to notify GPS when SUPL connection is ready instead of TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED,
which is not sent in all cases.
Expand LocationProvider.updateNetworkState() to include NetworkInfo object.

Fixes bug b/2155661

Change-Id: Iee227ace7d536b36cf7973e3e6a8b7a621ce6565
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-10-08 17:24:21 -04:00
Fred Quintana
6c0af3b245 am 5bba632d: - hide Entity and all its references - remove updateEntity and insertEntity, since they are not used - add the RawContacts.Entity class, which is used in lieu of the android.content.Entity
Merge commit '5bba632d877c2878384ff21566c8eb6a1a22f37b' into eclair-plus-aosp

* commit '5bba632d877c2878384ff21566c8eb6a1a22f37b':
  - hide Entity and all its references
2009-10-07 11:55:10 -07:00
Fred Quintana
1eeca92910 am f7ae77cd: account manager api review changes
Merge commit 'f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d' into eclair-plus-aosp

* commit 'f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d':
  account manager api review changes
2009-10-07 11:46:24 -07:00
Fred Quintana
5bba632d87 - hide Entity and all its references
- remove updateEntity and insertEntity, since they are not
  used
- add the RawContacts.Entity class, which is used in lieu of the
  android.content.Entity
2009-10-06 11:51:19 -07:00
Fred Quintana
f7ae77cd67 account manager api review changes 2009-10-05 11:19:49 -07:00
Costin Manolache
264f9b4530 am 3348f14b: Remove GAIA string
Merge commit '3348f14b3d46b172a5b557f81aac526b7e8bf5fb' into eclair-plus-aosp

* commit '3348f14b3d46b172a5b557f81aac526b7e8bf5fb':
  Remove GAIA string
2009-09-29 22:58:53 -07:00
Costin Manolache
3348f14b3d Remove GAIA string 2009-09-29 22:52:05 -07:00
Dianne Hackborn
bc21ba2410 am 093f5810: Merge change 27238 into eclair
Merge commit '093f581090d8cf98f5877746d924107f7695dd8b' into eclair-plus-aosp

* commit '093f581090d8cf98f5877746d924107f7695dd8b':
  The touch screen is probably a feature.
2009-09-26 17:06:41 -07:00
Dianne Hackborn
039c68e756 The touch screen is probably a feature.
Also extend the feature APIs a bit.

Change-Id: I99e932d7f4e61edb0e20f75c55e9831e4b59a14d
2009-09-26 16:39:23 -07:00
Dianne Hackborn
b7b083090f am a382cb81: Merge change 25929 into eclair
Merge commit 'a382cb81187437aa389dc131687e181ceaefa8ba' into eclair-plus-aosp

* commit 'a382cb81187437aa389dc131687e181ceaefa8ba':
  Add API to send an ordered sticky broadcast.
2009-09-19 12:29:56 -07:00
Dianne Hackborn
efa199f016 Add API to send an ordered sticky broadcast.
Change-Id: Ida7081204e226db0cd07ff618c08e308a909ec0c
2009-09-19 12:05:25 -07:00
Dianne Hackborn
1f3914b7f2 am fa82f22f: Fix issue #2093608: Calendar widget takes a few seconds to launch
Merge commit 'fa82f22f1d8c4c828bdf9b670006be4f4fec772e' into eclair-plus-aosp

* commit 'fa82f22f1d8c4c828bdf9b670006be4f4fec772e':
  Fix issue #2093608: Calendar widget takes a few seconds to launch
2009-09-17 18:13:26 -07:00
Dianne Hackborn
fa82f22f1d Fix issue #2093608: Calendar widget takes a few seconds to launch
Avert your eyes!

The key change here is that RemoteViews can now call a Context API to
start its pending intent, which inside of the activity manager we can
use to determine to cancel the timeout delay for external entities
to disrupt the home screen.

Change-Id: If097cf7478cbed7a3c04a304050bd7fd5703d197
2009-09-17 18:01:35 -07:00