6d8dfbd8149942f25f2b9643a12f1fb38f3be834 |
|
24-Sep-2013 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #10848916: "Always" button is not working. The problem was that the ResolverActivity filters some activities out of the list it shows, but it uses that display list as the list of components the preference is set against when ultimately setting it on the package manager... but that filtered list is *not* the right component set, since it is not the same as the package manager's view on it. The fix here is to retain the original set of matching components and use that when setting the preferred activity. Note that this does mean that in very unusual cases where filtering is happeing (such as one of the activities not being exported but being seen as a possible completion from another app), then you will be setting the preference for the complete set. Ultimately we probably need to have the package manager apply these filtering rules up-front so this is all consistent, but this is a very rare case so not that important. And then most of the change here is just improving the debug output for intent resolution. Change-Id: Ie35ac2c05a45946439951bbf41433c8b7de79c05
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
38ba6e9ee3e634914153c2181f050a2bb250e484 |
|
23-Sep-2013 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #10759595: preferred tag doesn't prevent... ...activity chooser from being shown Add more useful output when intent filter debugging is enabled. Change-Id: I3722b03ed625046398e81233cf7fb6aa5ded5eca
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
f4bf0ae2a7c2d9d92c5c8abdb82baa53b4c9ccda |
|
21-May-2013 |
Dianne Hackborn <hackbod@google.com> |
New ArrayMap class. This is a new kind of key/value mapping that stores its data as an array, so it doesn't need to create an extra Entry object for every mapping placed in to it. It is also optimized to reduce memory overhead in other ways, by keeping the base object small, being fairly aggressive about keeping the array data structures small, etc. There are some unit and performance tests dropped in to some random places; they will need to be put somewhere else once I decided what we are going to do with this for the next release (for example if we make it public the unit tests should go in to CTS). Switch IntentResolver to using ArrayMap instead of HashMap. Also get rid of a bunch of duplicate implementations of binarySearch, and add an optimization to the various sparse arrays where you can supply an explicit 0 capacity to prevent it from doing an initial array allocation; use this new optimization in a few places where it makes sense. Change-Id: I01ef2764680f8ae49938e2a2ed40dc01606a056b
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
4efe9403afb0ba3b83fa647eb82e4f90d29f131b |
|
03-Apr-2013 |
Ben Gruver <bgruv@google.com> |
Initial implementation of IntentFirewall functionality This has the full filter functionality, but is currently only able to block Activity intents. Logging intents, or blocking service/broadcast intents is not yet implemented. Change-Id: Ied3d8dedf982e17bcbdff3e328eeb87477954df7
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
52c62344c585662d6b441a08c2a69a5732255a6f |
|
21-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #7213113: Remove old intent resolver Also make the query package restart broadcast protected like the documentation says it should be. Change-Id: I445166111318a02f2f2b1ab0dff9c641a441c20b
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
9ec6cdde9f8f22356dcc9f811d99ebf813194721 |
|
31-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Optimize memory use of IntentResolver. Use raw arrays instead of ArrayList for data structures. Temporarily includes a copy of the old intent resolver for validating the new implementation. Change-Id: I988925669b6686ac73b779be6cd6fe3a9fd86660
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
483f3b06ea84440a082e21b68ec2c2e54046f5a6 |
|
14-Mar-2012 |
Amith Yamasani <yamasani@google.com> |
Package restrictions per user Packages can be enabled/disabled per user. This requires maintaining stopped/launched states and enabled / disabled components and packages per user. Refactored pm.Settings and PackageSettingsBase to keep track of states per user. Migrated the stopped-packages.xml to users/<u>/package-restrictions.xml Changed intent resolution to handle individual user restrictions. Bunch of IPackageManager calls now have a userId argument. Make AppWidgetService handle removals of packages. Added some tests for pm.Settings and PackageManager. Change-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
6c418d585e0a91054b168fde3130188afd006c98 |
|
29-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #4902856: Don't let apps register non-explicit PendingIntents Location manager now checks for such intents, and logs a warning when they are given to it. Nothing thrown yet, it needs to check the targetSdkVersion of the caller somehow. When sending the pending intent, we require that the recipient hold the appropriate permission. This should pretty much close the security hole. Includes a bunch of infrastructure in the activity manager needed to support all this. Change-Id: I4dba7a98a7b8bbb9e347666451aa9cb1efad1848
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09 |
|
07-Apr-2011 |
Joe Onorato <joeo@google.com> |
Remove the deprecated things from Config.java. These haven't been working since before 1.0. Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
e7f972122db87dc54e41ed1a6e417534d43bca3a |
|
24-Feb-2011 |
Dianne Hackborn <hackbod@google.com> |
Implement issue #3426299: Introduce application "stopped" state The package manager now keeps track of whether an application is stopped. There are new intent flags to control whether intent filters in a stopped application will match the intent. This is currently used in one place, sending broadcasts, so that stopped apps can not be launched due to background processes. The package manager during first init makes sure no applications are in the stopped state. When new applications are installed, that begin in the stopped state. When the activity manager is launching a component of an application, it ensures the application is taken out of the stopped state. The "force stop" button in manage applications will now put an application back in to the stopped state; it can't go back out of the stopped state until one of its components is launched by the activity manager. There will probably be a few more places where we need to filter stopped applications out of intent matches, but doing this for broadcast is a very big first step. This also introduces a new broadcast that is sent to an application after it is replaced with a new .apk. But only if the app is not in the stopped state. This makes it a lot easier for developers to implement code to get their application back in proper running shape after an upgrade. Finally another new broadcast is added that is sent to a package's installer at the first time it is launched. This allows the installer to tell the package about it being installed only when it is first actually used. Change-Id: I589c53ff0e0ece868fe734ace4439c0d202dca2d
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
2c376fc46cd01b12e003a7bf83d82f527f6efaf1 |
|
29-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Optimize IntentResolver to reduce lookup time by 50%. IntentResolver frequently iterates over hundreds of different IntentFilters and spends much of its time creating iterators and comparing strings. This change avoids reduces the amount of garbage created by eschewing iterators where possible. The FastImmutableArraySet type on its own provides a 2.5x speed boost compared to repeatedly iterating over a HashSet. In absolute terms, during orientation changes we spent about 160ms resolving 11 intents and performing 1129 calls to IntentFilter.match. Now we spend half of that time. Change-Id: Ia120e0082c8cf0b572a0317b9ef4a22c766dbad6
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
502e9a47c64d819a7aa45251bcf7cb5dd77a310b |
|
10-Jan-2011 |
Kenny Root <kroot@google.com> |
Allow updated system apps to retain priority Previously any updated system apps would not be able to have a greater than 0 priority on an activity intent filter. Moving the priority check later in the package scanning allows it to apply to updated system packages as well. Cherry-pick from gingerbread branch Bug: 2572398 Change-Id: I95d8b6360bf7a3f39cd7a1ff09e1ee57e11583d8
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
cef65eeb0315c3118bf8860d6f723cb49ff6bc52 |
|
01-Oct-2010 |
Dianne Hackborn <hackbod@google.com> |
Rub in a little 'ol log-b-gone. Mmmmmm... great fresh scent! Change-Id: I050e70b31b5d4a9c6731f15a4b51a3620a33a78d
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
d4310ac944e5f3063bb23558ba25ccf76fec0968 |
|
17-Mar-2010 |
Dianne Hackborn <hackbod@google.com> |
Rework permissions to be retained when an app is temporarily uninstalled. This allows us to keep the assigned permissions when apps are temporarily removed due to the SD card being unmounted, and also if you use the facility to uninstall an app but keep its data. Also fixes issue #2515189: Potential permission spoofing attack in Android (external bug 7166) Change-Id: I2a120ec938552028c989f9e0e890c32773957738
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
8a9b22056b13477f59df934928c00c58b5871c95 |
|
27-Feb-2010 |
Joe Onorato <joeo@android.com> |
Switch the services library to using the new Slog
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
074edef7c4fce50fc780e864068305f01965e3ac |
|
18-May-2009 |
Mihai Preda <preda@google.com> |
remove unused ContentResolver parameter from IntentResolver.queryIntent.
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
eae850cefe7e149f396c9e8ca1f34ec02b20a3f0 |
|
13-May-2009 |
Mihai Preda <preda@google.com> |
Allow intent resolution to be constrained by package name.
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
1d442e0d990b581357f33f5463c7c5cb49b551e8 |
|
21-Apr-2009 |
Dianne Hackborn <hackbod@google.com> |
More optimization of dumpsys output. There are three major classes of changes here: - Avoid writing lines where their values are often empty, false, or some other typical thing. - Use partial writes to the PrintWriter to avoid creating temporary strings. - Use StringBuilder where we need to generate real String objects (and where possible cache the result).
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/services/java/com/android/server/IntentResolver.java
|
54b6cfa9a9e5b861a9930af873580d6dc20f773c |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/frameworks/base/services/java/com/android/server/IntentResolver.java
|