Commit Graph

81 Commits

Author SHA1 Message Date
Dianne Hackborn
3d74bb4ab2 Add "why?" button to low battery dialog.
This takes the user to the power usage activity.
2009-06-19 11:46:58 -07:00
Suchi Amalapurapu
bc806f65ed Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage. 2009-06-19 10:25:37 -07:00
Wu-cheng Li
649f99e834 Add Intent.ACTION_SEND_MULTIPLE
Activities can use this intent to send multiple data.
2009-06-19 18:48:37 +08:00
Android (Google) Code Review
63e7155c7d Merge change 4696 into donut
* changes:
  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.
2009-06-18 19:33:33 -07:00
Dianne Hackborn
5c1e00b14d Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.
- Fix a bug where targetSdkVersion could not be set if minSdkVersion.  Stupid, stupid.
  Also make sure to fail if minSdkVersion is for a code name.  Really stupid.

- Change the API for resize compatibility mode to be a bit in the flags field, instead
  of a separate boolean.

- Implement delayed dexopting, to avoid the looong full dexopt during boot.  This is
  only enabled for "eng" builds.  When in this mode, the activity manager will make
  sure that a dexopt has been done before loading an .apk into a process, and will
  try to avoid displaying ANRs if they are due to the dexopt causing some operation
  to take longer than it normally would (though I make no guarantees about this
  totally working).

- Add API to Context to get the ApplicationInfo for its package, for easy access to
  things like targetSdkVersion.
2009-06-18 17:10:57 -07:00
Romain Guy
fdbf6a7eac Fixes #1922373. Resolves a case of keys collision in Resources' cache.
The Resources class keeps a cache of known resources. The keys used by the
cache are stored as int primitives. For any given drawable resource, a key
is built thusly:

TypeValue.assetCookie << 24 | TypedValue.data

In the case of a plain color drawable, assetCookie always equals -1, that
is 0xFF once right-shifted and the data contains the color value. Which
means the key for the following two colors is the same:

0xFF000000
0x00000000

Because of the int storage and the use of the (constant in this case)
asset cookie, the alpha channel of a color is ignored. That means that
if you first load an opaque black color (0xFF000000), subsequent loads
of a totally transparent black color (0x00000000) will give you an
opaque black color.

A workaround is to use a transparent color that is not black,
0x00000001 for instance. Note that this issue would arise with any color
and any opacity level.

The solution to fix this issue is simply to change the cache to use
longs instead of ints to represent the keys. A key thus becomes:

TypedValue.assetCookie << 32 | TypedValue.data

This allows us correct storage of all colors at the cost of a few bytes.
The tradeoff is that we can keep caching ColorDrawable, which is
definitely worth it.
2009-06-18 15:13:40 -07:00
Dianne Hackborn
c14b9ccdf1 Extend Intent/Uri conversion for use by Browser
This introduces a new Uri form of Intent with an "intent:" scheme, and a
corresponding update to the parser to handle these, so that the browser
can use this generic facility for starting activities based on the links
that are clicked and allow for web pages to link to arbitrary intents.

There is also a new "package" field on Intent which allows you to limit
the components it finds to a given package.  This replaces the new method
that was added to PackageManger for doing this when resolving activities,
and implements it for all Intent queries against the package manager.
2009-06-17 21:48:14 -07:00
Android (Google) Code Review
0781df943e Merge change 4129 into donut
* changes:
  Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app Create a new public IntentSender class that can be used by PackageManager instead. This new class uses IIntentSender internally and can only be created by PendingIntent for now. Provide a new getIntentSender api in PendingIntent to create an instance of this class. Move IIntentSender and IIntentReceiver from android.app to android.content Change imports of IIntentSender and IIntentReceiver to reflect the new package name The PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage once the older api(which has been deprecated) will be removed shortly.
2009-06-17 11:33:22 -07:00
Suchi Amalapurapu
1ccac75e1f Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app
Create a new public IntentSender class that can be used by PackageManager instead.
This new class uses IIntentSender internally and can only be created by PendingIntent for now.
Provide a new getIntentSender api in PendingIntent to create an instance of this class.
Move IIntentSender and IIntentReceiver from android.app to android.content
Change imports of IIntentSender and IIntentReceiver to reflect the new package name
The PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage
once the older api(which has been deprecated) will be removed shortly.
2009-06-17 11:31:26 -07:00
Romain Guy
4969af7d9f Fixes #1107690. Updates javadoc for Intent.java, android:value -> android:name.
Also fixes the <type android:value /> tags, they are now <data android:mimeType />
2009-06-17 10:53:19 -07:00
Android (Google) Code Review
ef29379c28 Merge change 4023 into donut
* changes:
  Fix IntentFilter constructor to properly process the action parameter.
2009-06-15 20:21:30 -07:00
Phil Dubach
56e78d9a04 Fix IntentFilter constructor to properly process the action parameter. 2009-06-11 18:50:40 -07:00
Joe Onorato
23ecae3bbb Fix SharedPrefsBackupHelper so it doesn't hard code the paths to the files.
This took quite a bit of refactoring.
2009-06-11 11:29:57 -07:00
Mitsuru Oshima
e5fb328825 resolution support fix/improvement
* adding compatibility menu
    * backup gravity
    * set expanable=true if the screen size is hvga * density.
    * added "supports any density" mode. I'll add sdk check later.
    * disallow to catch orientation change event if the app is not expandable. This
      was causing layout problem under non-expandable mode. I discussed this with Mike C
      and we agreed to do this approach for now. We'll revisit if this causes problem to
      a lot of applications.
2009-06-10 15:22:17 -07:00
Ken Shirriff
e7eb9662c3 Fix contact creation.
This was broken by my change 2934.
bug=1903820
2009-06-08 12:52:50 -07:00
Suchi Amalapurapu
d299b8194d Add a new attribute to android manifest for defining the GLES version number.
This attribute is parsed by the PackageParser into ConfigurationInfo. The major
and minor version numbers are defined as the higher and lower order bits.
2009-06-05 13:49:09 -07:00
Android (Google) Code Review
716b56817a Merge change 2934 into donut
* changes:
  Don't crash on null edit url.
2009-06-05 10:12:34 -07:00
Mitsuru Oshima
2f5e6b2d31 A workaround to fix rotation issue. I'm remote now and hard to do troubleshooting (i cannot rotate emulator in nx..) 2009-06-04 18:06:27 -07:00
Ken Shirriff
7a9e348c07 Don't crash on null edit url.
bug=1568060
2009-06-04 15:59:48 -07:00
Mitsuru Oshima
9189cabb0b * Moved supports-density tag under manifest
* Refactored Compatibility code
  * Added CompatibilityInfo class
  * Removed getApplicationScale from Context
  * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context
* Expandable support
  * Added expandable tag under manifest
  * Old application w/o expandable is given the default screen size  ([320, 480] x density).
  * The non-expandable window is centered.
2009-06-03 16:28:10 -07:00
Bjorn Bringert
963cd006c4 Allow creating AssetFileDescriptors for MemoryFiles.
This allows content providers to use in-memory data to implement
ContentProvider.openAssetFile(), instead of just normal files
and sockets as before.

To test cross-process use of AssetFileDescriptors for MemoryFiles,
a test content provider and a client for it are added to
AndroidTests.

Fixes http://b/issue?id=1871731
2009-06-03 12:53:42 +01:00
Satish Sampath
8dbe612dc6 Adding internal method replacePreferredActivity.
This was required because we need a way to set the preferred activity for a
particular intent filter based on user selection (in our case the
ACTION_WEB_SEARCH intent filter for selecting the preferred search engine from
the list of available search engines providers). The current
addPreferredActivity call was not sufficient since it leaves the existing
preferred activities in the list and does not remove them, which this call
does.
2009-06-03 07:54:42 +01:00
San Mehat
5a3a77dabd base: Rename WRITE_SDCARD -> WRITE_EXTERNAL_STORAGE
Signed-off-by: San Mehat <san@google.com>
2009-06-01 09:25:28 -07:00
Christopher Tate
181fafaf48 Retool the backup process to use a new 'BackupAgent' class
Backups will be handled by launching the application in a special
mode under which no activities or services will be started, only
the BackupAgent subclass named in the app's android:backupAgent
manifest property.  This takes the place of the BackupService class
used earlier during development.

In the cases of *full* backup or restore, an application that does
not supply its own BackupAgent will be launched in a restricted
manner; in particular, it will be using the default Application
class rather than any manifest-declared one.  This ensures that the
app is not running any code that may try to manipulate its data
while the backup system reads/writes its data set.
2009-05-31 13:10:03 -07:00
Jaikumar Ganesh
4551565943 Enforce permissions for PhoneStateListener events.
PhoneStateListener events like LISTEN_CALL_STATE_CHANGED,
have privacy information like phone numbers and hence,
need to be protected with a permission. The permission
READ_PHONE_STATE is used for this purpose. Use the permission
trick to ensure backward compatability.
2009-05-29 11:38:00 -07:00
Dianne Hackborn
b181118b6e Define TARGET_CPU_ABI for finding native code in .apks 2009-05-22 18:45:25 -07:00
Daisuke Miyakawa
841ddefcb5 Hand merge from cupcake_dcm to donut, part 2.
Modify Contacts-related java files and update vCard importer code to the latest.
2009-05-19 08:26:32 +09:00
Dianne Hackborn
a96cbb435d Implement compatibility support for WRITE_SDCARD permission.
Now old applications will automatically be granted it.  Also renamed it from
SDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,
and re-arranged how we do targetSdkVersion to actually be usuable for this
kind of stuff.

Note that right now this results in basically all apps being given the
WRITE_SDCARD permission, because their targetSdkVersion is not set.  I will
be dealing with that in a future change.
2009-05-15 18:02:47 -07:00
Mihai Preda
eae850cefe Allow intent resolution to be constrained by package name. 2009-05-15 12:32:07 +02:00
svetoslavganov
75986cf9bc Accessibility feature - framework changes (replacing 698, 699, 700, 701 and merging with the latest Donut) 2009-05-14 23:47:05 -07:00
Android (Google) Code Review
ec2d74d40f Merge change 1545 into donut
* changes:
  Add Intent.ACTION_APP_ERROR
2009-05-14 03:26:16 -07:00
Android (Google) Code Review
541ff5df00 Merge change 1566 into donut
* changes:
  Fix issue #1838944: Application sync settings cant be changed with auto sync on
2009-05-13 15:25:35 -07:00
Dianne Hackborn
271cee6de8 Fix issue #1838944: Application sync settings cant be changed with auto sync on 2009-05-13 13:18:22 -07:00
Dianne Hackborn
e7fe35b88a Whoops fix installing. I am dumb. 2009-05-13 10:54:52 -07:00
Jacek Surazski
86b6c530f9 Add Intent.ACTION_APP_ERROR
This intent is sent to the installer when an app it installed
crashes/ANRs.
2009-05-13 18:52:20 +02:00
Joe Onorato
d39afbdc92 Make android.content.ComponentName implement java.lang.Comparable. 2009-05-12 23:40:45 -04:00
Dianne Hackborn
ade3ecad94 Implement issue #1783881 (manifest option for adb-install-only apps)
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.
2009-05-12 16:09:43 -07:00
Jacek Surazski
c64322c352 PackageManager keeps track of who installed what.
Stores the package name of the installer app in packages.xml
2009-05-12 23:16:20 +02:00
Android (Google) Code Review
3b30d80f5e Merge change 1377 into donut
* changes:
  Fix typo in javadoc
2009-05-11 12:18:20 -07:00
Marco Nelissen
c53fc4ec9e Fix typo in javadoc 2009-05-11 12:15:31 -07:00
Dianne Hackborn
1655be46d2 Fix issue #1837610 and #1753079
Issue 1837610 Adding a Widget before Running the Associated App Causes a Force Close

We were not retrieving the shared libraries of an application when deliving a
broadcast to an explicit component.

Issue 1753079 loading class path of instrumented app into instrumentation may load wrong path when instrumented app shares process with other apps:

We were using the ApplicationInfo that was used to originally create the process, not the one that the
instrumentation is against.
2009-05-11 11:14:26 -07:00
Dianne Hackborn
851a54143c 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.
2009-05-08 15:15:36 -07:00
Dianne Hackborn
55280a9188 Improve shutdown process to send broadcast for applications.
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.
2009-05-08 12:59:21 -07:00
Dianne Hackborn
231cc608d0 Rewrite SyncStorageEngine to use flat files and in-memory data structures.
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.
2009-05-05 15:40:53 -07:00
Christopher Tate
487529a70c First baby steps towards settings backup
This change adds a sketched outline of the backup system architecture, with
all of the major pieces represented other than client-side helpers for
specific types of data.  IBackupManager and BackupService are public so that
we can write test apps against SDK-domain symbols from the outset.

What code exists in this change hasn't been tested and may crash.  It's the
beginnings of the real implementation but of course is barely begun.
2009-04-29 14:49:30 -07:00
Mitsuru Oshima
13735a255d Merge branch 'readonly-p4-donut' into donut 2009-04-28 18:13:25 -07:00
Mitsuru Oshima
8169daed2f AI 147976: Compatibility mode support. Part 2.
* Introduced ApplicationScale (may not be good name. CompatibilityScale? CanvasScale? Pls let me know if you have better idea)
  * Changes to RootView / SurfaceView
  - Makes the app believe it's running in the supported density/resolution.
  - Makes the window manager believe it's running at the right density/resolution.
  * Added methods to Rect/Event for scaling up/down.
  Known issues:
  * certain kind of images (such as nine patch for buttons) seesm to be loaded not by app, thus does not take the scale into account,
  which, in turn, is causing layout issue.
  * ZoomButton in MapView is rendered in wrong place
  * Transparent region on Surface is not correct
  * Specifying different densities in one process is not working.
  BUG=1770627

Automated import of CL 147976
2009-04-28 18:12:09 -07:00
Mitsuru Oshima
257eef353d Merge branch 'readonly-p4-donut' into donut 2009-04-27 12:02:51 -07:00
Mitsuru Oshima
8d11267587 AI 147845: Compatibility mode support. Part 1
Adding supports-density tag to manifest file/ApplicationInfo.
  BUG=1752478

Automated import of CL 147845
2009-04-27 12:01:23 -07:00
Android (Google) Code Review
0b8ffd17bc Merge change 460 into donut
* changes:
  More optimization of dumpsys output.
2009-04-22 18:33:57 -07:00