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
This means that the source package can be determined without having to
query the database, thus making it easier to short circuit code on
voicemails that do not belong to a package.
Bug: 19236241
Change-Id: If9c3924a5365d5c3e87bff68609b5e7aee8eb218
When a call log entry is added, and it's phone account does not match a
currently registered one, we set it to hidden. This code was built for
the calllog restore case where call log entries would be hidden when
added if the original phone account wasn't also
present on the new device (where the restore is being performed).
We no longer do that so we're removing the code that sets any call log
entry to hidden.
-- Resubmitting since this change was lost to a merge conflict --
Change-Id: I1ef094d5a35063e8f89cd1ecb1e5a0b59361781c
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
private class SearchIndexablesContract.BaseColumns is extended by public
classes. We need to make it public too.
Change-Id: Id77575f7857020531b9d311ca5ba12c6462268a5
The purpose of this feature is to prompt the Disambiguation dialog
to Users as less as possible.
- add the new "autoVerify" property to the IntentFilter class
- add new APIs to PackageManager:
verifyIntentFilter(int, int, List<String>),
getIntentVerificationStatus(String, int),
updateIntentVerificationStatus(String, int, int),
getIntentFilterVerifications(String)
for supporting IntentFilter verification
- add support for multi-user
- update PackageManager for IntentFilter verification:
basically when we are installing a new package, ask for verification
of all domains from the IntentFilters that have the "autoVerify" to true.
This means that the PackageManager will send a well defined protected
broadcast (with a new INTENT_FILTER_NEEDS_VERIFICATION action) to
an IntentFilter verifier to do the real job of verification.
We are passing in the broadcast Intent all the necessary data for
doing the verification. The PackageManager will receive as response
the result code of the domain verifications and, if needed, the list
of domains that have failed the verification.
- add a new INTENT_FILTER_VERIFICATION_AGENT permission that needs to
be set by an intent filter verifier to be considered as a trustable
party by the PackageManager.
- add also a new BIND_INTENT_FILTER_VERIFIER permission for securing
the binding between the PackageManager and a service doing the
intent filter verifications.
- add ResolveInfo filterNeedsVerification which is a boolean
to knows if the IntentFilter is of a type that needs a verification
(action VIEW, category BROWABLE, HTTP/HTTPS data URI)
- add new "domain-preferred-apps" / "d" dump command for listing the
prefered Apps for all domains
- add new "intent-filter-verifiers" / "ivf" command for listing the
IntentFilterVerifier used
- introduce the IntentVerificationService which is a basic service
for verifying IntentFilters. This service will send HTTPS requests
to the domain declared in the IntentFilter(s) for doing the
verification. This service has a low priority level so that it
can be replaced by a more sophisticated one if needed. This service
is updating the PackageManager intent verification states thru
the updateIntentVerificationStatus(...) API.
- update MockPackageManager
Change-Id: I0bfed193d0bf1f7c7ac79f6c1b160b7ab93b5fb5
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: I4840e7fad8a6a60249df07d993d26d03619650d4
The restored set of enabled IMEs/subtypes is merged into the
current state of the system, rather than simply replacing it.
This is because we do not want to accidentally disable or
reconfigure something that the user is currently relying on.
There's a certain amount of repetitive activity here, rebuilding
the enabled-state data structures in a different format, but it's
important for maintainability that the restore code be able to
rely on the core InputMethodUtils implementation of reading/writing
the settings element.
Bug 19822542
Change-Id: If0104151b3526da6ecc669adde3119a239ecafeb
We now back up & restore the set of enabled notification listeners. Post-
restore, a listener that had been enabled on the ancestral device will be
enabled on the current device as soon as it's installed, matching the
user's previous configuration. After this has happened the enable/disable
state for that app is not "sticky"; disabling it again will work as
expected.
The infrastructure for accomplishing this is general: it can be leveraged
by any ManagedServices derivative. There's a bit of extra wiring in the
settings provider to support the restore-time information flow as well.
This is because ManagedServices -- like many other parts of the system --
monitors writes to the settings provider and does work in response to new
writes of the elements that it cares about. Unfortunately this means that
there is no way to use the BackupAgent's restoreFinished() hook to post-
process the restored data: by the time it is run, the ManagedService's
observers have already executed and culled any unknown components from
the description that was just pushed into settings.
As of this patch, the settings provider's restore logic knows that a
particular settings element will require a message to interested observers
about the restore-driven change. The message is delivered as a broadcast,
and is sent after the new value has been committed to the settings db.
Adding other system ManagedService handling that parallels this will only
require adding a new corresponding entry to the table of individual settings
for which the relevant "this settings element is being restored" broadcast
is sent, found in SettingsHelper.
(It isn't sent for all settings elements because very few settings elements
have semantics that require it; 3rd party code won't be running yet during
platform restore anyway; and sending up to hundreds of broadcasts during
setup & restore is far from ideal.)
Bug 19254153
Change-Id: Ib8268c6cb273862a3ee089d2764f3bff4a299103
There have been few breaking changes
1. TelecomManager.getCallCapablePhoneAccounts is not hidden anymore
2. CAPABILITY_VIDEO_CALLING is not hidden anymore
3. mPhoneStateListener doesn't exist anymore, so it is commented out
Change-Id: I22221eda73a20c745e316d9d56f914ab17b83533
merged from goog/mirror-m-wireless-internal-release
204f80e Add PHONE_ACCOUNT_ADDRESS to the call log DB.
Change-Id: I363403bf73b202f03b3f706a823b0f142183a695
merged from goog/mirror-m-wireless-internal-release
da35a2b Revert "Add PHONE_ACCOUNT_ADDRESS to the call log DB."
Change-Id: I4dc4865d58e4b68858c7767f201e267a72dc236b
merged from goog/mirror-m-wireless-internal-release
40c6f2b Add PHONE_ACCOUNT_ADDRESS to the call log DB.
Change-Id: I91b487137a2da621b496bf5f135fe19bb0a6ca62
When a call log entry is added, and it's phone account does not match a
currently registered one, we set it to hidden. This code was built for
the calllog restore case where call log entries would be hidden when
added if the original phone account wasn't also
present on the new device (where the restore is being performed).
We no longer do that so we're removing the code that sets any call log
entry to hidden.
Change-Id: I26ee27369e94c73446f7553f84cd4d8d4f2ff658
Added method to make it easier to insert into the voicemail status
table. Also takes in a phone account for future multi-SIM support.
Remove VvmSyncService class in favor of moving most of the code to
OmtpVvmSyncService.
Bug: 19236241
Change-Id: I5d9def276fbdbc6f825fb35e9fa31bfc3cead1ba
The settings constants for various volumes do nothing and are
used by nothing since API version 2. These are however backed
up in the cloud which is a waste of resource. This change
removes these constants from the SDK while keeping them hidden
to avoid breaking released apps and also prevents unnecessary
backup.
Change-Id: I2e91863115f5a4b997a14f8d0f57b4dc9689cfab
Enterprise phone lookup returns special photo URLs for corp contacts, which
can't be obtained just with contact IDs. So we need to cache the URIs too and
otherwise pictures sometimes don't show up.
Bug 19546108
Change-Id: Iffd5ed16527a143ea55e40e42667e7d0c16d814a