This change adds notification to find out when the device policy
has changed. When an admin adds or changes a policy, we get notified
and reset the state of keyguard to be enabled.
It also moves disabling keyguard into the TokenWatcher.acquired()
method to avoid disabling keyguard when a policy doesn't permit it.
This avoids reference counting issues in TokenWatcher and hence relieves
the ordering issue.
There is one remaining caveat. An application that uses KeyguardManager
to disable keyguard will need to disable keyguard again after any
policy change.
Tested:
Install and run app that disables keyguard with no admin. Result: keyguard is enabled/disabled as expected.
Enable admin and set quality = "something" after installing & running app. Result: keyguard is enabled.
Change admin password quality to "unspecified" and re-run app (per caveat). Result: keyguard is disabled.
Change admin password quality to "something" again. Result: keyguard is enabled.
Disable admin : Result: keyguard is enabled until app runs again (per caveat).
Added minor cosmetic changes after review.
Change-Id: I302f2b01446bf031f746b0f3e8b5fd7a6cc0e648
On branch fix_sdk
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: core/java/android/app/KeyguardManager.java
Change-Id: I56848db098822536f0ac32efc8f0eb1d725bf6f9
This fix disables KeyguardManager's enable/disable API when any
device policy admin requests a policy that enforces a password.
Change-Id: Idb1da16b14ed8963142f7b1f62d2b060d84ffa65
With the .apk file names now changing during an update, we need
to make sure to flush all caches related to a package when the
package is removed. Otherwise we can continue to use the old
package, since its old file may still exist if we try to load it
too soon.
Change-Id: I15f08dffca3feac999dbca4f24bef12a30ca0a66
...ordered broadcast for ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE
Turns out this was because the broadcast receiver for ContextImpl was
not correctly being created, so when it received an ordered broadcast
it would not tell the activity manager when it was done.
This is now fixed, along with a ton of superficial changes to debug
output to help track this down and a little cleanup of dealing with
error cases in dispatching broadcasts. Also a fix for a NPE when
dumping the broadcast state.
Finally, a little fiddling with package manager to get rid of a lot
of the noise when removing and re-adding packages on the SD card.
Change-Id: I961c14836dc613d3ea8122b6e910ef866e7fcb25
...SD card causes reboot.
Add option to not include temporarily unavailable recent tasks,
for the recent tasks UI to not display them.
Change-Id: I1495ca217b4292fd56f537459b44c0624262c292
There is probably still some editing and cleanup to do, but this takes care
of the last of the "need this documented by the time we ship!" material.
Bug #2465360
Change-Id: Ic4ce9e5a07c79aa2b584a18012a2e8fe199c19fd
Still not complete, but here's a lot more of the necessary documentation.
Submitting a checkpoint seems prudent.
Bug #2465360
Change-Id: Ifff60d57e4b24cee21f3a34f5f50e290d377c386
This change removes some unused constants from BackupDataOutput
and hides a few methods that do not actually need to be exposed.
Change-Id: I47a9a107a5b58f4d53b5a2fcf9b73a765b1c5dd8
Rework how switching between modes work so the caller can tell us
whether they want to go to home. (So car home launcher can now
tell us they always want to go home.)
Change-Id: Id4a8129027d6d162b4bae6f983911f1f4bf2578f
mResources will be null if we failed loading them because the app
is on external storage that has been unmounted.
Change-Id: If0dbbdc0c3441fa10d0ab074568361524db1c8db
Fix for http://b/issue?id=2549036
Also required moving the call to updateWidgetState to after the
update of mUserQuery so mUserQuery could be used as a comparison.
Change-Id: I4996f09c02751a6d74e8f517669025e4bdd709d8
be sent in RecognizerIntent.EXTRA_CALLING_PACKAGE. This never should have
been using toShortString because that includes curly braces and is not
correctly parsed by ComponentName.unflattenFromString.
This was needed as part of http://b/2546173
Change-Id: If34a9273cbcae13a75347be0b6b7ef307134ed40
This change include a minor refactoring of PackageItemInfo and related
classes to eliminate code duplication and to avoid redundant work
searching for an ApplicationInfo instance we already have.
Bug: b/2537578
Change-Id: Id0794c3f055ea58b943028f7a84abc7dec9d0aac
We don't want to publish this, but for risk mitigation we are hiding it
rather than rewriting/expanding the FileBackupHelper to accomodate the
absolute-path use cases that the system uses internally.
Change-Id: I513c97ec54de8dd7d28b10868d447d94b82d4ec3
Addresses:
Issue #2550648: PackageManagerService setComponentEnabledSetting unconditionally
writes Settings xml
Issue #2549084: Make PackageManager.addPermission have async version
Also make the writing of settings when changing the preferred activities to use
the same async mechanism, and fiddle with thread priorities in the background
thread to go up to foreground priority when holding the lock to write settings
and a few other places. (At some point we should really clean this up to never
acquire the main lock while in the background.)
Change-Id: Ib2b7632543f6fb3f92a225518579f3b2d15e1413
This transaction can involve the transport having to query a remote backend
over the wire, so it can take a Long Time(tm). Make it main-thread-safe by
making it asynchronous, with the results passed as a callback to the invoker's
RestoreObserver. We also make the IRestoreObserver callback interface
properly oneway.
Bug #2550665
Bug #2549422
Change-Id: If18a233a0a3d54c7b55101715c9e6195b762c5a0
This change cleans up the JavaDoc in SearchableInfo,
removes trailing whitespace, fixes an if-statement
style violoation, and re-hides some things that were
exposed for Froyo that query deprecated or discouraged
attributes:
SearchableInfo.getSearchButtonText()
SearchableInfo.getLabelId()
SearchableInfo.getIconlId()
class SearchableInfo.ActionKeyInfo
SearchableInfo.findActionKey()
Bug http://b/issue?id=2553524
Change-Id: Iee5521c844f74137166730e523d29ba07ef1856b
* @hide the android.app.backup.RestoreSession class and functionality
* Provide a public method on android.app.backup.BackupManager that apps
can use to request a restore pass of their last-known-good dataset.
The new method is called requestRestore().
* Provide the name of the package being restored, not just its ordinal,
in the RestoreObserver's onUpdate() callback.
Part of bug #2545514
Change-Id: I9689bf8d6e2b808b4ee412424a36a835be0a5ca8
There was a really dumb bug that was causing us to not always apply
the new configuration. As a result of fixing this, there were new
glithes in the transition between car and regular mode, so further
work here to fix that. And since I was actually working during the
night and seeing night mode, I noticed how obnoxiously bright the
status bar is compared to the car home at night, so it now nicely
dims itself when we switch to the night config. Oh and in doing
that I also found and fixed a bug in dispatching config changes to
a window (where they wouldn't get dispatched if the window didn't
resize).
FINALLY... tweak the wallpaper enter/exit animations a bit to
make them a little smoother.
Change-Id: I4e062093cbcfbc919307799a794846db2920216f
Previously, this would always return the app context for the first application
ever instantiated in the process. Usually this is fine, since usually there
will be one process per application, but in the case of shared-process apps,
it causes activities/views to try to access the wrong set of resources, be
unable to access their proper derived-class Application objects, etc.
Fixes bug #2513901
Change-Id: Ie19f2a86583c5d927db4d84a4262077450e37539
Use new method in UsbStorageActivity.
Fix moving dex files.
moveDex should be suffixed with LI since it uses Installer
Change-Id: Id5ef0254578e84b9aae2c2ac44f722eb5a0fda1c
Also fixes how the quality vs. mode is handled to be more consistent, which also
required introducing a new "alphabetic" quality since it is possible for the user
to enter such a password.
The current password quality and length is stored in the DPM, since at boot it
couldn't figure this out from the stored password.
Change-Id: I519d9b76dd0b4431bcf42920c34dda38c9f1136e
Fiddle with how we go into car mode to try to ensure we get a clean
transition. Also have the system take care of remembering the night
mode setting so it will stay at what you want.
Change-Id: Icb94fdd961c7a192f7707ec71544485a1ea12455
PackageManager invokes this call back when its done handling
the media status update.
Add new uid check for updateExternalMediaStatus
Change killPids method in ActivityManager.
Remove mountsd command in Pm.java We cannot arbitrarily enable/disable
packages in PackageManager now.
Change-Id: I28dcba4afd2b4486f68abdaa1628a31b66544c91
No steps to repro, but makes the code more robust by using the standard
JournaledFile class and doing sanity checks on the input it reads.
This required moving the JournaledFile class in to the framework (and
we really should get rid of either it or AtomicFile, but they have
different recovery semantics so that is tough). Also went through and
cleaned up the file management in various places.
Change-Id: Ieb7268d8435e77dff66b6e67bb63b62e5dea572e
AlertDialog's docs now refer to the id android.R.id.custom, the
correct method addView, and android.R.id.custom has been exported as a
public id.
Change-Id: Ide43a03b702f0b36326130909f9a864872ec93fb
We now return the initial configuration for a window when it is
added to the window manager. The view hierarchy would check to
see if it was different than the last one, and not dispatch a
configuration change down itself if not. However, when
ActivityThread received it, it would always dispatch a config
change even if it is the same.
The solution is to only do this in ActivityThread if the config
is actually different; otherwise, we continue to rely only on
the activity manager explicitly telling us when to do a config
change.
Change-Id: I8a6e3565776dd2723c8b791496bb6041463d4b67
Well, mostly. There is still a problem here where the first time
you show the lock screen it just doesn't draw itself. I assume
this is something breaking in the view hierarchy as it floounders
around removing and adding new views as it is first being shown...
but no idea at this point what is the actual case.
Change-Id: Iba99ae3242931c8673b17b106c86fc99e2c52abe