Commit Graph

5607 Commits

Author SHA1 Message Date
Alan Viverette
682a433d0b Fix application of default dialog theme
Cleans up lint annotations.

Bug: 20149703
Change-Id: I2ed4eb002b6679a55ea4d5fcc1ea958a4dcb08df
2015-04-10 12:42:57 -07:00
George Mount
44220d7d9a Merge "Revert "Revert "Allow delay of showing/hiding shared element when transferring.""" 2015-04-10 14:25:37 +00:00
Narayan Kamath
7f062245f6 Create DropboxService lazily.
We seldom use it from libcore.io.DropBox so there's not much point
(there's only one usage, from a conscrypt SSL error). This saves > 10ms
from ActivityThread.attach.

Change-Id: I360158ef9a36a9ababd700e4f3243c92b74047eb
2015-04-10 08:20:45 +00:00
John Spurlock
ec88e8956c Merge "An update on Downtime." 2015-04-10 01:48:06 +00:00
John Spurlock
b2278d6571 An update on Downtime.
The update is that Downtime is obsolete.  Replaced by the
ability to define multiple named schedule calendars.

 - Make changes to ZenModeConfig to properly model manual
   and automatic rules.
 - Refactor the zen mode helper (and supporting classes) to
   properly handle / report multiple claims on zen mode.
   The "manual" rule (specified by the user in the UI) vs
   one or more automatic rules.
 - Automatic rules are still backed by condition providers,
   but the layering is now cleaner.  ConditionProviders is now
   completely generic, has no ties to zen mode.
 - Specifically, the new layering for zen mode (below noman) is:
   ZenModeHelper: Source of truth for zen state
     ZenModeFiltering: Subhelper dedicated to filtering rules.
     ZenModeConditions: Subhelper dedicated to managing automatic rules.
       ConditionProviders:  Underlying engine for reporting named boolean state.
 - Migration story for users with existing downtime config, migrated
   to a single new calendar named downtime.
 - For users with no existing downtime, two default calendars are created
   for weeknights + weekends (icu4j for all locales will be done in a followup).
 - Remove obsolete DowntimeConditionProvider/NextAlarmConditionProvider and tracking.
 - Clean up obsolete resources.
 - Add common zen summary description string computation.
 - Add proper noman wrappers for the new model.
 - Change the semantics of the global zen setting.  It is now read-only.  Setters
   must call noman, added a "reason" to all calls for better attribution.
 - Update zenmodepanel + volumedialog to the new model.
 - Display the one or more automatic rules in the new zen footer summary.
 - "Snooze" the automatic rules when the user explicitly turns zen off.

Bug: 20064962
Change-Id: Idd9deb865a6035ad0cfae660198dccb517e6d7cc
2015-04-09 21:45:08 -04:00
Alan Viverette
0680bcd1f9 Merge "Avoid double-apply of dialog theme" 2015-04-09 23:52:41 +00:00
Dianne Hackborn
24f683523e Merge "More work on device idle mode and other power stuff." 2015-04-09 22:35:36 +00:00
George Mount
4dc668cd36 Revert "Revert "Allow delay of showing/hiding shared element when transferring.""
This reverts commit 44d15f1c2e.

Fix doc comment errors.

Change-Id: Ieeb07b907f0c66a133ef57136c45c504bcc04694
2015-04-09 15:31:38 -07:00
Dianne Hackborn
4870e9d5eb More work on device idle mode and other power stuff.
Add idle mode support to the alarm manager.  Introduce
a new concept of flags associated with alarms to tell
the alarm manager how to treat the alarm -- they allow
everything from the alarm that will bring us out of idle
mode, to alarms that are allowed when idle or should
also bring us out of idle.  The standalone boolean is
now also a flag.

(Note there is currently no protection from user space
setting the flags however it wants; I will be working
on that in a follow-up change.)

When in idle mode, the alarm manager pushes all alarms
that shouldn't execute during that time over to a
separate list that is not executed until out of idle.
To help with this, I reworked a bit how Alarm objects
are managed, so that when rebatching or moving between
lists we don't have to allocated new objects but can
just use the same existing instance.

Also tweaked the sync manager to deal with idle mode,
which currently just means doing the same thing as when
low on storage -- turning off sync.

Add new ACTION_CHARGING and ACTION_DISCHARGING broadcasts
that apps can listen for to know when the device is actively
charging and discharging.  These are better than the old
POWER_CONNECTED and POWER_DISCONNECTED ones because we only
report charging when we actually see that there is enough
power being provided to charge the battery (and will report
discharging if there is not enough power).

The job controller uses these new actions for scheduling
jobs that want to run while plugged in.  Removed the
"stable charging" stuff while doing so, since the new
charging state serves as an even better signal for that.

Introduced two new process states: FOREGROUND_SERVICE and
TOP_SLEEPING.  This will allow us to treat foreground services
specially (such as still allowing network access to them for
background music playback) while not mixing them together with
whatever happens to be the top activity while the device is
asleep.

Also some other small cleanup here and there.

Change-Id: I7a9808b578bad6f50deb8e1baf919298512a0d3a
2015-04-09 14:05:17 -07:00
Christopher Tate
f4ab2b1074 Merge "Add system API for querying the available restore dataset for a package" 2015-04-09 20:20:31 +00:00
Christopher Tate
511d02fcc3 Add system API for querying the available restore dataset for a package
Bug 20123585

Change-Id: Ife6e77a224b5d4175178aacdb7c285e9944b9eab
2015-04-09 13:13:42 -07:00
George Mount
9978940208 Merge "Revert "Allow delay of showing/hiding shared element when transferring."" 2015-04-09 18:14:02 +00:00
George Mount
44d15f1c2e Revert "Allow delay of showing/hiding shared element when transferring."
This reverts commit bd93e69c8e.

Change-Id: I38daa39e8560f4901b242acc6394dfa37f3d084a
2015-04-09 18:13:40 +00:00
George Mount
f7115c84e4 Merge "Allow delay of showing/hiding shared element when transferring." 2015-04-09 15:26:04 +00:00
George Mount
bd93e69c8e Allow delay of showing/hiding shared element when transferring.
Bug 18932344

Change-Id: Ic967551a4dd27967d2312a6c6c8a83b34c220031
2015-04-08 14:48:02 -07:00
Quddus Chong
60a6e09654 am 5985981b: am b49748cf: am 0c5752be: am c736e8cf: am f0ab39c1: Merge "Fixed broken link in UiAutomation.setRunAsMonkey() method description. bug: 19711873" into lmp-mr1-dev
* commit '5985981ba45b97e381312ba53f191396607b447d':
  Fixed broken link in UiAutomation.setRunAsMonkey() method description. bug: 19711873
2015-04-08 18:44:02 +00:00
Quddus Chong
b49748cfd3 am 0c5752be: am c736e8cf: am f0ab39c1: Merge "Fixed broken link in UiAutomation.setRunAsMonkey() method description. bug: 19711873" into lmp-mr1-dev
* commit '0c5752be40a9e7ced5be2659965f3c4ba3c3f4eb':
  Fixed broken link in UiAutomation.setRunAsMonkey() method description. bug: 19711873
2015-04-08 18:23:52 +00:00
Quddus Chong
0c5752be40 am c736e8cf: am f0ab39c1: Merge "Fixed broken link in UiAutomation.setRunAsMonkey() method description. bug: 19711873" into lmp-mr1-dev
* commit 'c736e8cf41445e7a32721da617d6d7eacd189703':
  Fixed broken link in UiAutomation.setRunAsMonkey() method description. bug: 19711873
2015-04-08 18:11:55 +00:00
Alan Viverette
5696f04590 Avoid double-apply of dialog theme
Some cleanup of comments and code.

Bug: 19924382
Change-Id: I7b1a339259cbaa66fea2ffec38d7dde2b1a9612e
2015-04-08 11:03:32 -07:00
Olawale Ogunwale
8d86acf6c5 am 81954cf3: am 8ddc3e26: am 393f89f2: Merge "[ActivityManager] Avoid NullPointerException if no crash info"
* commit '81954cf30816a007186fbf3be375feed5a7936cc':
  [ActivityManager] Avoid NullPointerException if no crash info
2015-04-08 16:51:01 +00:00
Olawale Ogunwale
8ddc3e26e6 am 393f89f2: Merge "[ActivityManager] Avoid NullPointerException if no crash info"
* commit '393f89f26df724a3da7a21b28925a21fe5fb253f':
  [ActivityManager] Avoid NullPointerException if no crash info
2015-04-08 16:28:52 +00:00
louis_chang
3d86b88fa7 [ActivityManager] Avoid NullPointerException if no
crash info

Symptom:
This issue happens because the ANR process got killed
(because it crashed) before the ANR dialog dismissed.
In that case, the process record is marked as crashed
(ProcessRecord.crashing = true). When the ANR dialog
dismissed by user, it will cause NullPointerException
when writeToParcel while performing IPC because there
is no crash info (ApplicationErrorReport.crashInfo = null)

Solution:
Check crashinfo before access it

Change-Id: I2995de57684c1e13aab8297f5eea1e82ca3b7ad8
2015-04-08 18:04:11 +08:00
Fabrice Di Meglio
9f3f6000ed Merge "Add IntentFilter auto verification - part 3" 2015-04-08 00:30:37 +00:00
Fabrice Di Meglio
0788595e0c Add IntentFilter auto verification - part 3
- add private API PackageManager.getAllIntentFilters(String)
for getting all IntentFilters from a given package
- update IntentFilterVerificationInfo to use an ArrayList<String>
for domains instead of a String[]
- if you make an App a default domain handler then make the
others as non default
- create an IntentVerificationInfo even if the App IntentFilters
do not need to be verified. This would be done only if the App
has some domain URLs defined and would allow to make it the
default handler for a domain
- a few code optimizations here and there

Change-Id: I4535372a0bb1a2c8e662e1485be8ca700003e9b3
2015-04-07 17:13:32 -07:00
Stephen Hines
b6b17a575f resolved conflicts for merge of 764f08ad to master
Change-Id: I0a22225b2d26b6d806de2dcc70ffba29c96865b3
2015-04-07 14:47:32 -07:00
Tim Murray
d782c57d37 am 5352411a: Merge "Move cache dir to its own class."
* commit '5352411a8c41dd1c3c51a28cdd0b09f42e246b33':
  Move cache dir to its own class.
2015-04-07 20:59:39 +00:00
Tim Murray
e1e6c66198 Move cache dir to its own class.
This prevents us from loading the RS static initializer all the time.

Change-Id: I8cea7540e50251aba8c2f199f06f344f991e7d7f
2015-04-07 13:24:14 -07:00
Quddus Chong
a9f6a9b769 Fixed broken link in UiAutomation.setRunAsMonkey() method description.
bug: 19711873

Change-Id: I4ebb50e03e6e979486ebd3a7c15f21358734574e
2015-04-07 13:04:39 -07:00
Craig Mautner
30b8984903 Merge "No longer unlock activity manager to test whitelist" 2015-04-07 16:17:57 +00:00
Craig Mautner
e56007786a No longer unlock activity manager to test whitelist
In order to check the DevicePolicyManagerService locktask whitelist
the activity manager had to release its lock preserving internal
state. That is undesirable and not scalable now that we need to check
the whitelist at startup for bug 19995702.

This change causes DPMS to update activity manager with the whitelist
whenever it changes so that activity manager can check the whitelist
without releasing the acitivty manager lock.

Change-Id: I3ed6eb5ceae2cd7e7ae3280abd708d5ce43a2851
2015-04-07 09:15:41 -07:00
Jeff Sharkey
b2b9ab8354 Installing packages to expanded storage.
PackageManager now offers to load/unload packages when expanded
volumes are mounted/unmounted.  Expanded storage volumes are still
treated as FLAG_EXTERNAL_STORAGE from a public API point-of-view,
but this change starts treating the INSTALL_EXTERNAL flag as
exclusively meaning ASEC containers.

Start tracking the UUID of the volume where a package is installed,
giving us a quick way to find relevant packages.  When resolving an
install location, look across all expanded volumes and pick the one
with the largest free space.  When upgrading an existing package,
continue preferring the existing volume.  PackageInstaller now knows
how to stage on these volumes.

Add new movePackage() variant that accepts a target volume UUID
as destination, it will eventually move data too.  Expose this
move command through "pm" command for testing.

Automount expanded volumes when they appear.

Bug: 19993667
Change-Id: I9ca2aa328b9977d34e8b3e153db4bea8b8d6f8e3
2015-04-06 21:17:58 -07:00
Christopher Tate
e012a23556 Back up / restore preferred app configuration
Bug 19848104

Change-Id: I84cdfcc44b48a9732984955d7eedf745b5586bdd
2015-04-06 17:36:25 -07:00
Craig Lafayette
bc80a260cf Merge "Add factory reset protection extras to DPM." 2015-04-06 23:47:34 +00:00
Dianne Hackborn
d59a5d59df Various fixes and improvements...
Issue #19912529: VI: VoiceInteractor callback ClassCastException

Fix to use correct argument.

Issue #19912636: VI: Documentation for VoiceInteractionSession.onBackPressed

Added documentation.

Issue #19912703: VI: VoiceInteractionSession NPE on Abort Request

Maybe fix this -- don't crash if there is no active session.

Issue #19953731: VI: Add value index to...
...android.app.VoiceInteractor.PickOptionRequest.Option

There is now an optional index integer that can be associated with
every Option object.

Issue #19912635: VI: Behavior of startActivity when in voice...
...interaction is unexpected

We now forcibly finish the current voice interaction task whenever
another activity takes focus from it.

Issue #20066569: Add API to request heap dumps

New ActivityManager API to set the pss limit to generate heap
dumps.

Also added app ops for assist receiving structure and screenshot
data, so that we can track when it does these things.

Change-Id: I688d4ff8f0bd0b8b9e3390a32375b4bb7875c1a1
2015-04-04 17:36:05 -07:00
Amith Yamasani
092f038d50 Merge "Throttle jobs for idle apps" 2015-04-03 20:26:43 +00:00
Amith Yamasani
b0ff32245c Throttle jobs for idle apps
First pass at delaying jobs from apps that are idle.

TODO: Throttle syncs
TODO: Provide a periodic point at which apps are checked for idleness.

Apps that switch to foreground process state are tracked by UsageStats
as an INTERACTION event that affects the last-used timestamp.

JobScheduler's logic for when an app is ready is trumped by the idleness
of the app, and only if the battery is not charging. When charging state
changes, we update the idle state of all the tracked jobs.

android package is whitelisted.

Bug: 20066058
Change-Id: I0a0acb517b100a5c7b11e3f435f4141375f3451f
2015-04-03 13:20:19 -07:00
Dianne Hackborn
12611bdf6d Merge "Add quick and dirty async AssistStructure building." 2015-04-03 16:46:54 +00:00
Julia Reynolds
eaafdf72a4 Store the device initializer componentname in addition to package.
This removes ambiguity about which component in the initializer
package handles device initialization when setting up secondary users.
Bug: 19992262

Change-Id: I2e48168907725a56cd05d0b51c9f28b34fa28d1a
2015-04-03 08:27:34 -04:00
Dianne Hackborn
5688b03f7f Add quick and dirty async AssistStructure building.
New APIs on ViewAssistStructure all the app to request to
build a sub-tree asynchronously and indicate when it is done
with that.  The overall AssistStructure is now only flattened
and transfered on-demand, when the app receiving it requests
its data -- and at that point we can wait for any asynchronous
building to complete.

New AsyncStructure view is a very simple example of using this
to asynchronously build a child view.

Change-Id: I14f9199bee64915ad3dc80b2190916ec874308af
2015-04-02 18:43:31 -07:00
Dianne Hackborn
9e57a25495 Merge "Rework assist to walk down the view hierarchy." 2015-04-02 18:18:42 +00:00
John Spurlock
24d3dad8dd Add new notification category for reminders.
Bug: 20045407
Change-Id: I5c449551fb7ec5a3e2c350f443e1a18b84b4d03f
2015-04-02 14:14:27 -04:00
Jim Miller
ebbf205bc6 Prepare to make Fingerprint API public.
- move fingerprint support files into hardware area
- move jni into services/core

Change-Id: I48a8e43d6d328fb66d79919c255e4c44e984b4d1
2015-04-01 19:20:08 -07:00
Dianne Hackborn
6251f0d42b Rework assist to walk down the view hierarchy.
Instead of collecting all of the data directly in AssistStructure,
we now have a dispatch mechanism down the hierarchy to do so.
While doing this, also added the ability to automatically collect
assist data from AccessibilityNodeProviders attached to views
(so now we see all of the data in for example Calendar).

This is a first step needed towards being able to asynchronously
populate assist data.

Change-Id: I59ee1ea104ca8207bad8df7a38195d93da1adea7
2015-04-01 17:08:27 -07:00
Olawale Ogunwale
78c926c9a3 am bcfa7cb2: am 259a649a: am 6091dcbb: Merge "[ActivityManager] Improve multi-thread access the same provider"
* commit 'bcfa7cb2508eb6f606aeef4c6cb44eaf9be07ccf':
  [ActivityManager] Improve multi-thread access the same provider
2015-04-01 15:37:34 +00:00
Olawale Ogunwale
259a649a93 am 6091dcbb: Merge "[ActivityManager] Improve multi-thread access the same provider"
* commit '6091dcbb80d3b1b885b6e02386ccb3139e5e43ae':
  [ActivityManager] Improve multi-thread access the same provider
2015-04-01 15:18:45 +00:00
riddle_hsu
57307b21cb [ActivityManager] Improve multi-thread access the same provider
Application may use many threads to load data from provider.
If the target provider needs to start process, each access
will occupy one binder thread of system server until the
provider process started and published.

Sometimes application uses more than 16 threads to access
the same provider, and the provider process needs a little
long time to start, then all binder threads of system server
are waiting. But when the provider is ready, it is unable to
publish to notify those waiting threads because no availabe
binder thread to use. And device will become almost hang.

Improvement:
If there is already a thread acquiring provider, let other threads
(which try to acquire the same provider) wait the result of the
first one. That reduces IPC to save binder thread of system server.

Remove calling removeContentProvider in installProvider because
we have ensured only get one provider holder for the same provider,
the original race that gets a new useless holder will not happen.

Change-Id: I521f2603db8ced56912f5dc54342a70451e68381
2015-04-01 15:06:18 +08:00
Craig Lafayette
8e27c4ddae Add factory reset protection extras to DPM.
This extra will be sent to ManagedProvisioning via
an NFC bump and allow factory reset protection challenges
to be cleared.

Bug: 19792435
Change-Id: I82b0e35ec7af4372341c202c06b643d6395cc65c
2015-03-31 09:48:42 -04:00
Jeff Sharkey
4887789e44 Progress towards dynamic storage support.
Storage devices are no longer hard-coded, and instead bubble up from
whatever Disk and VolumeBase that vold uncovered, turning into
sibling Java objects in MountService.  We now treat vold events as
the source-of-truth for state, and synchronize our state by asking
vold to "reset" whenever we reconnect.

We've now moved to a model where all storage devices are mounted in
the root mount namespace (user boundaries protected with GIDs), so
we no longer need app-to-vold path translation.  This also means that
zygote only needs to bind mount the user-specific /mnt/user/n/ path
onto /storage/self/ to make legacy paths like /sdcard work.  This
grealy simplifies a lot of system code.

Many parts of the platform depend on a primary storage device always
being present, so we hack together a stub StorageVolume when vold
doesn't have a volume ready yet.

StorageVolume isn't really a volume anymore; it's the user-specific
view onto a volume, so MountService now filters and builds them
based on the calling user.  StorageVolume is now immutable, making
it easier to reason about.

Environment now builds all of its paths dynamically based on active
volumes.  Adds utility methods to turn int types and flags into
user-readable strings for debugging purposes.

Remove UMS sharing support for now, since no current devices support
it; MTP is the recommended solution going forward because it offers
better multi-user support.

Simplify unmount logic, since vold will now gladly trigger EJECTING
broadcast and kill stubborn processes.

Bug: 19993667
Change-Id: I9842280e61974c91bae15d764e386969aedcd338
2015-03-30 19:46:23 -07:00
Fabrice Di Meglio
607f1f09c3 Merge "Add IntentFilter auto verification" 2015-03-31 00:16:59 +00:00
Makoto Onuki
1040da1d4e Enterprise quick contact 1/2
Now openQuickContact goes thorough DPM.  When a lookup URI is build with
a lookup key returned by the enterprise lookup APIs for a corp contact, the
lookup key will have a special prefix.  In that case we go through DPM
and have it launch QC on the managed profile, if the policy allows.

For now we use the same DPM policy as enterprise-caller-id to disable this.

Design doc: go/cp2-mnc-enterprise-dd

Bug 19546108

Change-Id: I831a8190ae902ae3b1248cce6df02e3a48f602d2
2015-03-30 16:28:39 -07:00