summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/GadgetService.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-02 22:54:33 -0800
commit3dec7d563a2f3e1eb967ce2054a00b6620e3558c (patch)
treeaa3b0365c47cb3c1607c0dc76c8d32b4046fc287 /services/java/com/android/server/GadgetService.java
parent15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b (diff)
auto import from //depot/cupcake/@137055
Diffstat (limited to 'services/java/com/android/server/GadgetService.java')
-rw-r--r--services/java/com/android/server/GadgetService.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/services/java/com/android/server/GadgetService.java b/services/java/com/android/server/GadgetService.java
index 4a430e03c5a1..09437785a5ab 100644
--- a/services/java/com/android/server/GadgetService.java
+++ b/services/java/com/android/server/GadgetService.java
@@ -229,7 +229,7 @@ class GadgetService extends IGadgetService.Stub
int callingUid = getCallingUid();
final int N = mHosts.size();
boolean changed = false;
- for (int i=0; i<N; i++) {
+ for (int i=N-1; i>=0; i--) {
Host host = mHosts.get(i);
if (host.uid == callingUid) {
deleteHostLocked(host);
@@ -244,7 +244,7 @@ class GadgetService extends IGadgetService.Stub
void deleteHostLocked(Host host) {
final int N = host.instances.size();
- for (int i=0; i<N; i++) {
+ for (int i=N-1; i>=0; i--) {
GadgetId id = host.instances.get(i);
deleteGadgetLocked(id);
}
@@ -622,6 +622,17 @@ class GadgetService extends IGadgetService.Stub
}
return gadgetIds;
}
+
+ public int[] getGadgetIds(ComponentName provider) {
+ synchronized (mGadgetIds) {
+ Provider p = lookupProviderLocked(provider);
+ if (p != null && getCallingUid() == p.uid) {
+ return getGadgetIds(p);
+ } else {
+ return new int[0];
+ }
+ }
+ }
private Provider parseProviderInfoXml(ComponentName component, ResolveInfo ri) {
Provider p = null;