Commit Graph

1666 Commits

Author SHA1 Message Date
Adam Powell
9b4bee0f14 Introducing the split action bar.
Apply (or extend) the theme Theme.Holo.SplitActionBarWhenNarrow or
Theme.Holo.Light.SplitActionBarWhenNarrow to enable splitting the
action bar across both the top and bottom of the screen. This places
the action menu along the bottom, leaving more room at the top for
titles, navigation, and custom views and more room at the bottom for
menu items.

TODO: Refine layout of the action menu when placed at the bottom of
the screen. Make action modes split as well.

Change-Id: I92c91f99c533f26aecf6b828ed041386c4f16922
2011-04-28 19:13:25 -07:00
Adam Powell
dae7824c4b Action bar work for phones
Drop tabs to a second row at < w480dp

Make 9-patches for the cab's "done" button thinner

Add a "disable home" display option to the action bar to turn off
focus and touch feedback when tapping home would do nothing

Change-Id: Ib2eedf311655f02055357321e2e9ad5b9037fed1
2011-04-25 17:42:45 -07:00
Dianne Hackborn
44bc17c6b5 Rework display size access.
Applications now get the display size from the window manager.  No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I2958a6660895c1cba2b670509600014e55ee9273
2011-04-21 15:17:52 -07:00
Dianne Hackborn
9567a66a5e Deprecate a bunch of APIs.
And clean up some documentation.

Change-Id: I7882183b3daf883b7ac6098d19f88dc7cfbcdf61
2011-04-20 10:26:44 -07:00
Amith Yamasani
25641ca1ac Merge "Plumbing in PackageManager and installd for multi-user support." 2011-04-19 10:41:20 -07:00
Dianne Hackborn
d071ec2b49 Integrate from support lib: fix restore of list state.
The FragmentManager/ListFragment impl was restoring the list
state before setting its adapter.  This caused the list view to
lose the state, since it gets cleared as part of setting the
adapter.  Now the fragment manager waits on restoring the view
hierarchy state until after it has done onActivityCreated(),
at which point we have set the adapter.

It would be nice to make list view less fragile in this regard,
but that is for a different change.

Change-Id: I032d6fe0fefc0dabfae95d44152146029ef5db8e
2011-04-18 14:08:33 -07:00
Dianne Hackborn
47c4156567 Back-port new fragment detach APIs from support lib.
This allow a much cleaner implementation of things like the
fragment pager class.

Change-Id: I433be3d6c24c9a059d908d442bcfddbf1e8e57e5
2011-04-18 10:18:05 -07:00
Amith Yamasani
0b285499db Plumbing in PackageManager and installd for multi-user support.
- Create /data/user directory and symlink /data/user/0 -> /data/data for
  backward compatibility
- Create data directories for all packages for new user

- Remove data directories when removing a user

- Create data directories for all users when a package is created

- Clear / Remove data for multiple users

- Fixed a bug in verifying the location of a system app

- pm commands for createUser and removeUser (will be disabled later)

- symlink duplicate lib directories to the original lib directory

Change-Id: Id9fdfcf0e62406a8896aa811314dfc08d5f6ed95
2011-04-15 15:15:27 -07:00
Dianne Hackborn
0c5001d776 Add APIs to remove tasks.
You can remove sub-tasks inside of a task, or an entire task.

When removing an entire task, you can have its process killed
as well.

When the process is killed, any running services will get an
onTaskRemoved() callback for them to do cleanup before their
process is killed (and the service possibly restarted).

Or they can set a new android:stopWithTask attribute to just
have the service automatically (cleanly) stopped at this point.

Change-Id: I1891bc2da006fa53b99c52f9040f1145650e6808
2011-04-12 18:28:06 -07:00
Amith Yamasani
beb182a494 Merge "Package manager changes to store and update user information." 2011-04-11 12:14:17 -07:00
Amith Yamasani
4b2e934928 Package manager changes to store and update user information.
Some API stubs for managing users and storing their details.
List of users is stored in an xml file.
Each user's properties are stored in a separate xml file.

Some unit tests for modifying the XML files.

Change-Id: If2ce2420723111bd426f6762def3c2afc19a0ae5
2011-04-11 12:12:58 -07:00
Dianne Hackborn
bcbab36843 Merge "Rework thumbnails in activity manager." 2011-04-08 18:28:14 -07:00
Dianne Hackborn
f26fd99a7c Rework thumbnails in activity manager.
We now only keep a thumbnail for the task, not for each
activity.  However if you use FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET,
we will make a new secondary thumbnail for that series of
activities.  There is a new API for the app to get these
secondary thumbnails.

Also set a default thumbnail size for non-xlarge screens
so we have thumbnails on phones.  (We need some smarter
code in the platform for computing the actual thumbnail
dimensions of the current device).  And add a test app
to show recent tasks + thumbnails.

Change-Id: Ic36759f6635522118a2cb7f156662229a610c492
2011-04-08 18:16:21 -07:00
Joe Onorato
43a17654cf Remove the deprecated things from Config.java. These haven't been working since before 1.0.
Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
2011-04-07 19:23:05 -07:00
Dianne Hackborn
e17aeb3103 Improve activity manager debug dumps.
Activity manager now does all dump requests into apps
asynchronously, so it can nicely timeout if there is an
app problem.  Also lots of general cleanup of the am
dump output.

Change-Id: Id0dbccffb217315aeb85c964e379833e6aa3f5af
2011-04-07 18:26:15 -07:00
Chet Haase
9c1e23baf5 Add logging of graphics acceleration info to bugreports
Change-Id: I9fa4cda6ccf92df9d1c644ccdc0e7274a30106e0
2011-04-01 13:24:53 -07:00
Brian Carlstrom
ed7e00729f SamplingProfilerIntegration and SamplingProfiler improvements (3/3)
Summary:

frameworks/base
- fix profiling to collect data beyond the first snapshot
- avoid many small files, accumulate data over process lifetime

libcore:
- add support for VM specific sampling, trying to cut down overhead
- added support for converting snapshot files to text format
- fixed race in profiler when stopping

dalvik
- added VMStack.setThreadStackTrace interface for filling a stack
  trace into an existing StackTraceElement[]

Details:

frameworks/base

    Changed snapshots from text to binary hprof format (bumping version to 3)
    Changed from one file per snapshot to one file per process lifetime.
    Restart profiling after snapshot.

	core/java/com/android/internal/os/SamplingProfilerIntegration.java

    Add quick test in maybeSnapshot to avoid doing work when the
    SamplingProfilerIntegration is disabled. Make maybeSnapshot
    private. Remove unneeded memory allocation in handleLowMemory.

	core/java/android/app/ActivityThread.java

libcore

    Added ThreadSampler interface. This allows VM specific thread
    sampling optimizations. The portable version continues to use
    Thread.getStackTrace().

	dalvik/src/main/java/dalvik/system/profiler/ThreadSampler.java
	dalvik/src/main/java/dalvik/system/profiler/PortableThreadSampler.java
	dalvik/src/main/java/dalvik/system/profiler/SamplingProfiler.java

    Add VMStack.setThreadStackTrace and use in new DalvikThreadSampler
    to avoid allocating a full stack trace when only a limited depth
    is desired.

	dalvik/src/main/java/dalvik/system/profiler/DalvikThreadSampler.java
	dalvik/src/main/java/dalvik/system/VMStack.java

    Refactored BinaryHprof.readMagic out of BinaryHprofReader so it
    can be used by HprofBinaryToAscii converter to probing file
    types. Added magic number constant to be shared between readMagic
    and BinaryHprofWriter.

	dalvik/src/main/java/dalvik/system/profiler/BinaryHprof.java
	dalvik/src/main/java/dalvik/system/profiler/BinaryHprofReader.java
	dalvik/src/main/java/dalvik/system/profiler/BinaryHprofWriter.java
	dalvik/src/main/java/dalvik/system/profiler/HprofBinaryToAscii.java

    Removed unneeded HprofWriter interface. Changed to simpler static
    interface to write HprofData to binary and text formats.

	dalvik/src/main/java/dalvik/system/profiler/HprofWriter.java
	dalvik/src/main/java/dalvik/system/profiler/AsciiHprofWriter.java
	dalvik/src/main/java/dalvik/system/profiler/BinaryHprofWriter.java
	dalvik/src/test/java/dalvik/system/profiler/SamplingProfilerTest.java

    Added support for reading snapshot files created by
    SamplingProfilerIntegration by stripping the text header to allow
    easier conversion to the text format.

	dalvik/src/main/java/dalvik/system/profiler/HprofBinaryToAscii.java

    Fixed race between Sampler and
    SamplingProfiler.stop. SamplingProfiler.stop previously simply
    called the Sampler's TimerTask.cancel method, but this does not
    wait for a currently running Sampler to finish. The TimerTask
    documentation says the only reliable way to do this is to have the
    run() cancel itself, so that is what is now done, with new code to
    ensure that SamplingProfiler.stop does not return until the
    Sampler has been terminated.

	dalvik/src/main/java/dalvik/system/profiler/SamplingProfiler.java

dalvik

   Refactored VMStack_getThreadStackTrace to create helper getTraceBuf
   used to implement new VMStack_setThreadStackTrace. The new version
   interface fills an existing StackTraceElement[], avoid allocating
   unnecessary StackTraceElements.

	vm/native/dalvik_system_VMStack.c

   Refactor dvmGetStackTraceRaw to create dvmSetStackTraceRaw which
   fills in an existing, potentially smaller, StackTraceElement[].

	vm/Exception.c
	vm/Exception.h

   Change stack depths to be unsigned to avoid signed/unsigned comparison warnings.

	vm/Ddm.c
	vm/Exception.c
	vm/Exception.h

Change-Id: I4b90255e4e1d33ea2b569321c4968b0f3369f251
2011-03-29 11:24:37 -07:00
Chet Haase
bc377841db Add custom fragment anims to be run when popping backstack
The previous fragment implementation allowed for animations
during fragment transitions, but did not account for the
different behavior of fragments when popping the back stack.
In general, you probably don't want to run the same animation
for putting a fragment on the stack as for popping it off, which
is what happens now. For example, you might fade a fragment out when
putting it on the stack. But when popping ot off, fading it out
is probably not the behavior you want.

The new API (setCustomAnimations() overload with two additional
parameters) allows developers to specify animations to be run
in the popping operation. Otherwise, the animations are null and
the operation will not be animated.

Change-Id: I2e132b3890838358e496149f18a25037a59990aa
2011-03-23 09:35:00 -07:00
Adam Powell
1969b87990 Fix bug 4142917 - Add support for specifying a custom home icon in action bar
Add ActionBar methods for setting icon and logo.

Change-Id: I6151689138c734b7212c3469b8ba8f28f0fd5ec4
2011-03-22 14:11:06 -07:00
Joe Onorato
d630f105e8 AsyncTask now uses the poll executor for apps up through HC MR1 and the serialized one after that.
Change-Id: I47d135ace5f8e78e4fa44ac9d1bf7abeeb9d3ba0
2011-03-17 18:42:26 -07:00
Brad Fitzpatrick
b8796212e3 resolved conflicts for merge of ceae9983 to honeycomb-plus-aosp
Change-Id: Ic677e58dcc182908ae1fde33047b3fda013a37c3
2011-03-15 11:54:46 -07:00
Brad Fitzpatrick
ceae99835e am 9a01a2f2: Merge "Fixing self-assignment in cloning code."
* commit '9a01a2f2720632aa9cc230a4ebb0ed7aee762eec':
  Fixing self-assignment in cloning code.
2011-03-15 11:33:40 -07:00
Brad Fitzpatrick
c73c4a36d2 am b37f7e59: Merge changes I81fc2f90,I5e7fd759
* commit 'b37f7e59ee38472bdd3ca5fe66cc847890c862e2':
  Using proper key for removing from map.
  Removing wrong equals method in comparator.
2011-03-15 11:29:56 -07:00
Brad Fitzpatrick
9a01a2f272 Merge "Fixing self-assignment in cloning code." 2011-03-15 11:15:19 -07:00
Brad Fitzpatrick
b37f7e59ee Merge changes I81fc2f90,I5e7fd759
* changes:
  Using proper key for removing from map.
  Removing wrong equals method in comparator.
2011-03-15 10:56:16 -07:00
Mike Lockwood
ccdac700df am 78b8e1be: Merge "DO NOT MERGE: backport recent USB accessory changes from honeycomb" into gingerbread
* commit '78b8e1be97c61f7e0b28b145fadd0c646fd1c46b':
  DO NOT MERGE: backport recent USB accessory changes from honeycomb
2011-03-14 13:37:54 -07:00
Mike Lockwood
2cc0377200 DO NOT MERGE: backport recent USB accessory changes from honeycomb
Bug: 4082651

Change-Id: Ie7c2fc796dd3c64f803acbd14210e5949683f4ed
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-11 20:02:43 -05:00
Dianne Hackborn
cf407ad88b Fix issues #4087362 and #4087356
4087362: Provide a safer way to call DialogFragment.dismiss()
4087356: PreferenceActivity.invalidateHeaders() can cause
IllegalStateException: Can not perform this action after onSaveInstanceState

These are very safe; the first is just a new public API that
allows you to use an existing feature in DialogFragment, and the
second just uses the version of commit that avoids the failure if
happening at a point where the operation would be lost if restored
from the last state (which is no big deal for preferences).

Change-Id: I53971c9fb1efdcd599694cdcd4585b81afc156b8
2011-03-11 13:48:32 -08:00
Christopher Tate
9b95a4fcdc Broaden the filter for wallpaper restore
Tweak the filter parameters so that we now use any restored wallpaper image
that is larger than our ideal size, and will reject any smaller images only
if they are *much* smaller than our ideal size.  The specific threshold used
here will just barely reject Nexus One or Droid sized wallpapers for restore
onto a Xoom, but will pass anything larger.

Bug 4070129

Change-Id: I889bdb3ef5011343b2fccb2f81c6abc2f4603ee2
2011-03-10 17:53:53 -08:00
Dianne Hackborn
7fd981598e Merge "Fix issue #4066157: ActivityManager.getMemoryClass() returning large memory class" into honeycomb-mr1 2011-03-09 18:00:10 -08:00
Mike Lockwood
9e8e4ea0a8 Merge changes Ib517e5e4,I93be7695,I49bf22a4 into honeycomb-mr1
* changes:
  Close USB dialogs if their corresponding accessory or device has disconnected
  USB: Add API and dialog for apps to request permissions for USB devices and accessories
  UsbService: Automatically use system apps by default if it is the only choice
2011-03-09 03:52:47 -08:00
Mike Lockwood
3a68b8338b USB: Add API and dialog for apps to request permissions for USB devices and accessories
New APIs:

UsbManager.hasPermission returns true if the caller has permission
for the given device or accessory

UsbManager.requestPermission poses a dialog to allow the user to give the caller
permission for the device or accessory.
Result is returned via a PendingIntent.
No dialog is displayed if the caller already has permission.

Also moved UsbResolverActivity to SystemUI package

BUG: 4069037

Change-Id: I93be769501a8776b49ac26e468af19f8fa2114c9
2011-03-08 21:22:19 -05:00
Dianne Hackborn
7ad33c8f9e Fix issue #4066157: ActivityManager.getMemoryClass() returning large memory class
Change-Id: I1970252e07f703087ac96378410ae2b6e6e4c2d3
2011-03-08 15:53:25 -08:00
Andy Stadler
50c294f21b Clarify rules about encryption of emulated storage.
Bug: 3351426
Change-Id: I3a8fcd369862f3eab1781699108e29fe7ab474a0
2011-03-07 19:13:42 -08:00
Vasu Nori
3728130310 bug:3513950 Rename "completedDownload" to "addCompletedDownload"
Change-Id: I28b33a0268309d74fd2512b5bdb599f38ff3a96d
2011-03-07 11:51:14 -08:00
Dianne Hackborn
48f91e35c5 Merge "Fix Fragment.onInflate() to actually work correctly." into honeycomb-mr1 2011-03-03 22:23:07 -08:00
Dianne Hackborn
e3a7f628c6 Fix Fragment.onInflate() to actually work correctly.
Like, um, it needs to be given the Activity since this is called before
the activity is attached.

And it was called after the entire fragment and its *view* was created
when being restored from saved state.

And the documentation was whacked.

Also fix the IME selector to dismiss when you tap outside of it.

Change-Id: Icbcafe7558965a570bdef9cda3441b1f0f7a317c
2011-03-03 22:17:16 -08:00
Svetoslav Ganov
9aa597e68b Propagating core settings to the system process.
bug:3511123

Now the core settins are stored in the ActivityThread
instad in the AppBindData of the currently bound app.
Also the settings are pushed to the system process on
init.

Change-Id: I100bb7dc80d0d4548def22c328427bbef1694eb7
2011-03-03 18:20:43 -08:00
Svetoslav Ganov
11e515cbef NPE in in AppGlobals#getIntCoreSetting
bug:3508658

It ActivityThread#currentActivityThread() is called when
the ActivityThread is not attached it returns null and
AppGlobals#getIntCoreSetting was not checking for that.

Change-Id: I5e00d1947a161ad1e52ecfaa12cbbac3b534a0db
2011-03-03 12:55:59 -08:00
Bjorn Bringert
268c7111f6 Merge "Pass AppData to the app from SearchDialog queries." 2011-03-03 00:18:23 -08:00
Bjorn Bringert
1dda71ae36 Merge "Fixed NPE in ActivityManager's launch count service." 2011-03-03 00:10:03 -08:00
Dianne Hackborn
63e1cea248 Merge "Fix issue #3485923: Gmail crash" 2011-03-02 22:44:55 -08:00
Dianne Hackborn
6482517101 Fix issue #3485923: Gmail crash
Allow application to try to recover if a surface OOM error
happens on the client side.

Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
2011-03-02 22:38:58 -08:00
Amith Yamasani
940ef38c7c Pass AppData to the app from SearchDialog queries.
Bug: 3494468

During migration of SearchDialog to use SearchView, the appdata was not
passed along. This fixes the loss.

Change-Id: Ia754086d2bb95294e1d29650a72e4fdddec9c899
2011-03-02 18:43:23 -08:00
Svetoslav Ganov
54d068ec6a Add system wide management of core settings
bug:3505060

Since we want to have some settings that are used very frequently
by many applications (long-press timeout is one example) these should
be managed efficiently to reduce lookups from different processes
because in the case of a cache miss a disk I/O is performed. Now
the system manages such core settings and propagates them to the
application processes.

Change-Id: Ie793211baf8770f2181ac8ba9d7c2609dfaa32a7
2011-03-02 18:22:49 -08:00
Mike Lockwood
7866be2b76 am 40bbf929: DO NOT MERGE: Backport USB accessory support to gingerbread
* commit '40bbf9295d5245d3917629ce15f7b37670aef1ac':
  DO NOT MERGE: Backport USB accessory support to gingerbread
2011-03-02 15:16:32 -08:00
Peter Visontay
bfcda39cad Fixed NPE in ActivityManager's launch count service.
Bug: 3497127
Change-Id: I38661fb0654e807f05cc57e43cff912de8d39096
2011-03-02 19:06:36 +00:00
Mike Lockwood
40bbf9295d DO NOT MERGE: Backport USB accessory support to gingerbread
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-01 23:09:12 -08:00
Dianne Hackborn
e0edf4c1a2 Merge "Fix issue #3405957 com.android.settings: java.lang.NullPointerException..." 2011-03-01 17:36:25 -08:00
Dianne Hackborn
bfe2e3f9da Fix issue #3405957 com.android.settings: java.lang.NullPointerException...
...at android.app.DialogFragment.dismissInternal(DialogFragment.java:264)

Don't allow a DialogFragment to be dismissed twice.

Change-Id: Id2e9e3be1046b0d7862492c57c36001d8fd44a69
2011-03-01 17:20:43 -08:00