Commit Graph

1885 Commits

Author SHA1 Message Date
Jim Miller
3e5d3fd7e1 Fix 5185505: Update DevicePolicyManager to support weak biometric security.
Change-Id: If0fa49908a10d8057b9398112d47eb968cc77060
2011-09-02 17:30:35 -07:00
Dianne Hackborn
554d4a5765 Merge "Fix issue #5039287: Listen dies on back key on ICS but not on Gingerbread" 2011-09-01 15:55:33 -07:00
Dianne Hackborn
a5445d3bbd Fix issue #5039287: Listen dies on back key on ICS but not on Gingerbread
Change-Id: I77c63a8c372ff7a8459a1e8cf6fd1b37f320e3ce
2011-09-01 14:38:24 -07:00
Dianne Hackborn
ba24e4d8bb Fix issue #5229575: Youtube link shared through messaging is not...
...opening after selecting option "Youtube" as a luncher.

Also:

* Tweak window animations so that the wallpaper exist animations do not
stop too early (causing the wallpaper to suddenly disappear).
* Make sure no input is being processed while booting, to avoid
accidentally doing things especially in the upgrade dialog.
* Some other small cleanup.

Change-Id: I40a6b53731991d4e31ac4502e3d85f0e47507481
2011-09-01 12:39:17 -07:00
Dianne Hackborn
4293064179 Merge "Fix issues 5158104 and 4981556 (fragment problems)" 2011-08-29 18:40:21 -07:00
Dianne Hackborn
6c285977a0 Fix issues 5158104 and 4981556 (fragment problems)
5158104: com.android.contacts: java.lang.IllegalStateException:
Can not perform this action after onSaveInstanceState at
android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1201)

The ViewPager can just commit without worrying about a state loss,
since it can correctly reconstruct its state later.

4981556: Fragment.mImmediateActivity doesn't get restored on orientation change

I am giving up on this thing; I just don't see how it can actually
be correct.  So now instead of getting an exception about a dup
add/remove at point of the add/remove call, this will happen later when
processing the transaction.

Also add an API for controlling the visibility of menus, which ViewPager
can use to have the correct menus shows.  And add a method to get the
name of a back stack entry.

Change-Id: Idcba14cfa2a172545a7a2a2c466cb49ceb789619
2011-08-29 17:58:17 -07:00
Christopher Tate
78be158ce4 Un-hide the new BackupAgent.onFullBackup() API
This is intended to be new public API for ICS, and unbundled app
development needs access to it.

Change-Id: I091b31ae9ec319850a93efc3d5860b87b68d355e
2011-08-29 14:02:27 -07:00
Dianne Hackborn
1fc756da43 Merge "New API to determine if device has lots of RAM." 2011-08-24 19:57:52 -07:00
Dianne Hackborn
49d228b3f3 New API to determine if device has lots of RAM.
Change-Id: Ie243e851960fdd9e1ebeaf1c1929879193620051
2011-08-24 17:37:31 -07:00
Romain Guy
c39e8e89eb Merge "Add OpenGL backend to ImageWallpaper Bug #5204874" 2011-08-24 17:09:30 -07:00
Romain Guy
407ec78b82 Add OpenGL backend to ImageWallpaper
Bug #5204874

Currently disabled.

Change-Id: I5e7b35dce2981b0691f107e39c6394b260466543
2011-08-24 17:06:58 -07:00
Dianne Hackborn
cfb9f2bca3 Fix issue #5192141: systemui asplodes after enough tapping on the windowlist button
Change-Id: I5afb2d54b531d9eac9435660616579324f239812
2011-08-24 12:06:15 -07:00
Adam Powell
5d4faa91f7 Fix bug 5149918 - Can't call ProgressDialog.setProgressNumberFormat()
before dialog is shown

Change-Id: I287637e022fb653f02b45b34075eccb68e4a9221
2011-08-23 16:52:35 -07:00
Jeff Brown
2a4c5acc27 Fix race in removeDeadProvider.
Bug: 5202824

It's possible for removeDeadProvider to be called after the provider
has already been removed from the provider map due to a race between
binderDied and removing the provider.

Deleted removeDeadProviderLocked; it was dead code.

Change-Id: Iecdc68703225e7ac171746e63f1b3141c6f2ce4c
2011-08-23 11:58:26 -07:00
Dianne Hackborn
661cd52e0e Add progress dialog for booting after an upgrade.
This introduces a new facility for code during the boot process
to display messages to the user through a progress dialog.  This
is only for use when performing longer-than-usual post-upgrade
operations such as running dexopt on applications or upgrading
databases.

Change-Id: I0e78439ccec3850fb67872c22f235bf12a158dae
2011-08-22 13:42:05 -07:00
Kenny Root
46d2545db4 Merge "Infrastructure to support package verifier" 2011-08-16 08:35:53 -07:00
Dianne Hackborn
62f20ecf49 Add new am option to profile the launching of an activity.
Change-Id: Ie71a8043eafe41f53a0b3dbb5170276d87acbc9b
2011-08-15 17:55:57 -07:00
Kenny Root
5ab2157bf1 Infrastructure to support package verifier
Allow a package verifier to approve or disapprove of a package being
installed.

Change-Id: Ibfea0f2b1aaa4ab1589a4e59f96144702b9bf94b
2011-08-15 17:26:31 -07:00
Adam Powell
6e90a362bc Fix bug 5159736 - Make DeviceDefault the default
Have the framework refer to the DeviceDefault themes for ICS apps that
don't explicitly request another theme.

Change-Id: I27dd0bbaa60f71df4f36e47d260f556d923ba075
2011-08-14 16:49:22 -07:00
Dianne Hackborn
7c0d8472d0 Merge "Fix some crashes that are happening in the system process." 2011-08-12 15:22:32 -07:00
Dianne Hackborn
b375632c9c Don't use HW accel drawing in lock screen on lower-end devices.
This saves about 8MB in the system process because we don't need
to do HW accelerated drawing there anymore.

Change-Id: Ieaf72fe772536e12d10cf129d9338ca9fce6a6d4
2011-08-12 14:23:03 -07:00
Dianne Hackborn
8e8d65ff5f Fix some crashes that are happening in the system process.
- When shutting down, if the screen goes to sleep there is code
  that tries to do a notifyAll without holding the lock:

java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()
	at java.lang.Object.notifyAll(Native Method)
	at com.android.server.am.ActivityStack.checkReadyForSleepLocked(ActivityStack.java:776)
	at com.android.server.am.ActivityStack$1.handleMessage(ActivityStack.java:282)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:137)
	at com.android.server.ServerThread.run(SystemServer.java:603)

- If an invalid Uri object is sent to the system process it can crash because
  the Uri class throws an assertion while unmarshalling.  Change this to an
  IllegalArgumentException so it gets sent back to the caller:

java.lang.AssertionError
	at android.net.Uri$PathPart.readFrom(Uri.java:2224)
	at android.net.Uri$HierarchicalUri.readFrom(Uri.java:1106)
	at android.net.Uri$1.createFromParcel(Uri.java:1689)
	at android.net.Uri$1.createFromParcel(Uri.java:1681)
	at android.content.IContentService$Stub.onTransact(IContentService.java:53)
	at android.content.ContentService.onTransact(ContentService.java:120)
	at android.os.Binder.execTransact(Binder.java:338)
	at dalvik.system.NativeStart.run(Native Method)

- StrictMode can try to access the first index in the stack crawl of a stack crawl
  array of length 0.  Not sure why this happens, but make the code more robust:

java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
	at android.app.ApplicationErrorReport$CrashInfo.<init>(ApplicationErrorReport.java:341)
	at android.os.StrictMode$ViolationInfo.<init>(StrictMode.java:1978)
	at android.os.StrictMode$AndroidBlockGuardPolicy.startHandlingViolationException(StrictMode.java:1097)
	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1068)
	at libcore.io.BlockGuardOs.read(BlockGuardOs.java:137)
	at libcore.io.IoBridge.read(IoBridge.java:426)
	at java.io.FileInputStream.read(FileInputStream.java:179)
	at java.io.InputStream.read(InputStream.java:148)
	at com.android.internal.os.ProcessStats.readFile(ProcessStats.java:804)
	at com.android.internal.os.ProcessStats.getCpuSpeedTimes(ProcessStats.java:564)
	at com.android.internal.os.ProcessStats.getLastCpuSpeedTimes(ProcessStats.java:545)
	at com.android.server.am.ActivityManagerService.updateCpuStatsNow(ActivityManagerService.java:1470)
	at com.android.server.am.ActivityManagerService.batteryNeedsCpuUpdate(ActivityManagerService.java:1522)
	at com.android.internal.os.BatteryStatsImpl$MyHandler.handleMessage(BatteryStatsImpl.java:110)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:137)
	at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1302)

(Also fix this code to not cause strict mode to trigger at all, because there is
no need, because this is just reading stuff from /proc.)

- The system seems to crash during boot if it thinks it needs to rotate
  the screen, when it is trying to take the freeze snapshot way too early.
  There is no need to freeze the screen during boot or if the screen is off:

java.lang.NullPointerException
	at android.view.Surface.init(Native Method)
	at android.view.Surface.<init>(Surface.java:256)
	at com.android.server.wm.ScreenRotationAnimation.<init>(ScreenRotationAnimation.java:91)
	at com.android.server.wm.WindowManagerService.startFreezingDisplayLocked(WindowManagerService.java:8758)
	at com.android.server.wm.WindowManagerService.startAppFreezingScreenLocked(WindowManagerService.java:3971)
	at com.android.server.wm.WindowManagerService.startAppFreezingScreen(WindowManagerService.java:4003)
	at com.android.server.am.ActivityRecord.startFreezingScreenLocked(ActivityRecord.java:515)
	at com.android.server.am.ActivityStack.ensureActivityConfigurationLocked(ActivityStack.java:3997)
	at com.android.server.am.ActivityManagerService.updateConfigurationLocked(ActivityManagerService.java:12535)
	at com.android.server.am.ActivityManagerService.updateConfiguration(ActivityManagerService.java:12439)
	at com.android.server.wm.WindowManagerService.systemReady(WindowManagerService.java:6161)
	at com.android.server.ServerThread.run(SystemServer.java:521)

Change-Id: I85062bb5f6b0909a0f52feedaa75e7611d9d7fbd
2011-08-12 14:20:59 -07:00
Bjorn Bringert
4519ff6aa3 Add PendingIntent extra for WEB_SEARCH intents
This allos apps (e.g. browsers) that launch web searches
to control how the search results page is opened. For example,
the Android Browser will use this to make sure that searches
typed in the browser address bar open in the Andorid Browser,
and not somewhere else.

Bug: 4988580
Change-Id: I4665c9812ca8d704adbaea22a3812188bb48d1d2
2011-08-10 16:20:25 -07:00
Dianne Hackborn
fd545de7cd Merge "New extended Intent protcols for installing/uninstalling apps." 2011-08-10 12:34:21 -07:00
Dianne Hackborn
271c2fe0eb New extended Intent protcols for installing/uninstalling apps.
Change-Id: I13be1cc58c91f51d521a1f0f734d2b2db7b2980b
2011-08-10 12:22:11 -07:00
Jeff Sharkey
82f006f672 Merge "Add progress to Notification.Builder." 2011-08-09 14:01:09 -07:00
Jeff Sharkey
1c40013bb2 Add progress to Notification.Builder.
Provide method to surface progress when building a notification. Also
manages visibility of various items, including hiding the entire line
when unneeded.

Bug: 4022082, 3399877
Change-Id: I90d8fca383c746001aadc6c5f21c68a23bb937e5
2011-08-09 11:19:32 -07:00
Adam Powell
e112567b45 Merge "Fix bug 5116342 - don't keep fragment state around once resumed" 2011-08-08 09:53:23 -07:00
Dianne Hackborn
7d608423b7 Move OOM kernel settings to activity manager.
The activity manager now take care of plugging the correct settings
into the OOM killer in the kernel.  This is a lot cleaner because
it is really central to how the activity manager works, and nobody
else cares about them.

Taking advantage of this, the activity manager computes what it
thinks are appropriate OOM levels based on the RAM and display
size of the device.

Also a small optization to the package manager to keep a binding
to the package install helper for a bit after done using it, to
avoid thrashing on it.

And some new APIs that are now needed by Settings.

Change-Id: I2b2d379194445d8305bde331c19bde91c8f24751
2011-08-07 20:20:56 -07:00
Adam Powell
9520251003 Fix bug 5116342 - don't keep fragment state around once resumed
Clear out saved fragment/view state when a fragment is resumed in case
we didn't need to restore it. This keeps it from hanging around and
preventing proper save/restore behavior later.

Change-Id: Ie3fce5534ee4f8fdb4116281f9ac6a9cfa392561
2011-08-07 17:20:17 -07:00
Dianne Hackborn
b437e090ec Improved memory use reporting.
Change-Id: I38e53e6228bba92a142bafeedb5af8df4e4e5724
2011-08-05 18:18:05 -07:00
Adam Powell
85de77a1c7 Merge "Fix bug 5098288 - Rethink the suite of new themes" 2011-08-02 18:44:50 -07:00
Adam Powell
269248d112 Fix bug 5098288 - Rethink the suite of new themes
Cut down the list of new themes for ICS. Holo apps now have
Theme.Holo, Theme.Holo.Light, and Theme.Holo.Light.DarkActionBar to
choose from.

Add manifest attribute android:uiOptions to express
splitActionBarWhenNarrow. Other options may move into this later as
well. (DialogWhenLarge?) This attribute is valid on both activity and
application tags; application settings will serve as the default for
activities that do not explicitly set uiOptions.

uiOptions are not currently reflected in the startup window for new
activities.

Change-Id: Iffdc2ce4cc69f79c9bd4e541b7923286e6936c1e
2011-08-02 17:58:24 -07:00
Dianne Hackborn
6311d0a079 Clear the bitmap from the canvas in a lot of places.
Change-Id: I6b2071ac7b348c473b9bdd1b972d095aebbb4fb3
2011-08-02 16:37:58 -07:00
Dianne Hackborn
ba39839444 Move ImageWallpaper to SystemUI process.
Nice to not load 4MB bitmaps in the system process.

Also, hey, with how we are now scrolling the surface instead of
the bitmap, there is no reason to keep that 4MB bitmap loaded in
to memory.  So don't.

Unfortunately it looks like for some reason the VM is still
holding on to the bitmap.  I'll need to figure out why.  Later.

Change-Id: Ib3503756144502fc5c8d5e294248c2417c4fe8c8
2011-08-01 17:55:54 -07:00
Adam Powell
f0f5fffc6f Fix bug 5090996 - Crash on tapping Menu on dial pad
Let the FragmentManager handle deferring menu invalidation when
not currently resumed.

Change-Id: I6e5de9c8ab5288c7c90a59ce8e0c7bb9133b6eb5
2011-08-01 15:55:16 -07:00
Amith Yamasani
44df62c441 Merge "Don't submit a query if it's whitespace only." 2011-07-29 11:28:37 -07:00
Christopher Tate
e0fe39387a Merge "Require the current backup pw in all backup/restore operations" 2011-07-29 11:20:45 -07:00
Dianne Hackborn
c68c913d35 Various work on out of memory managment.
- Improve how we handle processes that have shown UI, to take care
  of more cases where we want to push them into the background LRU
  list.
- New trim memory level for when an application that has done UI
  is no longer visible to the user.
- Add APIs to get new trim memory callback.
- Add a host of new bind flags to tweak how the system will adjust
  the OOM level of the target process.

Change-Id: I23ba354112f411a9f8773a67426b4dff85fa2439
2011-07-29 02:06:46 -07:00
Christopher Tate
728a1c4d5e Require the current backup pw in all backup/restore operations
Specifically, we now also require the current password to confirm any
restore operation.

Bug 4901637

Change-Id: I39ecce7837f70cd05778cb7e0e6390ad8f6fe3f3
2011-07-28 18:04:07 -07:00
Adam Powell
80df829e35 Merge "Fix bug 5079507 - ICS (phone) : ActionBar tabs don't correctly resize if activity handles orientation change" 2011-07-28 16:40:03 -07:00
Adam Powell
45c0b1954d Fix bug 5079507 - ICS (phone) : ActionBar tabs don't correctly resize
if activity handles orientation change

Make sure that bar content height and sizing/layout parameters are
properly updated after a configuration change.

Change-Id: I886df5cd9a655ba1bd34fab2b48e8b5be67fcc32
2011-07-28 16:14:19 -07:00
Christopher Tate
2efd2dbbac Support full-backup encryption and global backup password
If the user has supplied a backup password in Settings, that password
is validated during the full backup process and is used as an encryption
key for encoding the backed-up data itself.  This is the fundamental
mechanism whereby users can secure their data even against malicious
parties getting physical unlocked access to their device.

Technically the user-supplied password is not used as the encryption
key for the backed-up data itself.  What is actually done is that a
random key is generated to use as the raw encryption key.  THAT key,
in turn, is encrypted with the user-supplied password (after random
salting and key expansion with PBKDF2).  The encrypted master key
and a checksum are stored in the backup header.  At restore time,
the user supplies their password, which allows the system to decrypt
the master key, which in turn allows the decryption of the backup
data itself.

The checksum is part of the archive in order to permit validation
of the user-supplied password.  The checksum is the result of running
the user-supplied password through PBKDF2 with a randomly selected
salt.  At restore time, the proposed password is run through PBKDF2
with the salt described by the archive header.  If the result does
not match the archive's stated checksum, then the user has supplied
the wrong decryption password.

Also, suppress backup consideration for a few packages whose
data is either nonexistent or inapplicable across devices or
factory reset operations.

Bug 4901637

Change-Id: Id0cc9d0fdfc046602b129f273d48e23b7a14df36
2011-07-28 16:01:20 -07:00
Adam Powell
88ab69780f Fix bug 5087752 - Maintain correct contrast against action bars in
inverse-bar themes

Add the actionBarWidgetTheme theme attribute. This lets a theme
specify a wrapper theme that can be used to create views that will
end up in the action bar so that the rest of the code can ignore
differences in contrast. (e.g. the inverse action bar themes.)

Apps can use ActionBar#getThemedContext() to obtain a Context with a
proper theme for views that will end up in the action
bar. MenuInflaters generated by Activities will automatically use this
to properly theme inflated action views.

Change-Id: Ib28c82bf47c25d446cca2a63f617b8a4a0afa6b2
2011-07-28 11:44:41 -07:00
Romain Guy
b6f7a27c59 Merge "Reclaim more memory, more often." 2011-07-27 18:53:32 -07:00
Romain Guy
65b345fa22 Reclaim more memory, more often.
Yay.

Change-Id: I04557ad575c307a55088549f48f0e9ad994b7275
2011-07-27 18:51:50 -07:00
Adam Powell
257466d4e2 Merge "Bug 5076788 - Optimize the building and invalidation of menus" 2011-07-27 15:47:04 -07:00
Adam Powell
89b09da7b3 Bug 5076788 - Optimize the building and invalidation of menus
Fix cases that weren't batching menu presenter changes correctly.

Have FragmentManager invalidate the options menu less often.

Change-Id: Ia66fcd09ada8b0a084ad6b08d4340a8fa0c8fc5d
2011-07-27 15:37:58 -07:00
Amith Yamasani
6a7421ba94 Don't submit a query if it's whitespace only.
Just to maintain backward compatibility. It's not documented that a space
is not a valid query, but it does make sense to expect that.
Bug: 5079755

Also avoid showing an x by an empty query, by having the SearchDialog simulate an ActionBar.

Change-Id: I3a9332286a439b659e179a249587c491ef29e5c1
2011-07-27 11:55:53 -07:00
Scott Main
36193d09a8 cherrypick Change-Id: I4713d3977a0a1514ff9c4217e7f3723c0346d0d8
docs: revise ActionBar class summary and add a few links to dev guide docs

Change-Id: I14df84b16d7bdab85aa74d8b8211e988b0519115
2011-07-27 11:21:33 -07:00