summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Monk <jmonk@google.com> 2018-05-11 19:40:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-05-11 19:40:10 +0000
commit9959b36635bef1cdbd32df584675618da84f44df (patch)
treeea0742e59a10c8b7c89e80dfa85325b0d109a7c2
parent26aff0d90791f3e7837b72223a486bc17f15d92c (diff)
parent9c03ef48b67f153e9ad2e2fdb97e0e6a62317851 (diff)
Merge "Fix first-time slice permission grants" into pi-dev
-rw-r--r--services/core/java/com/android/server/slice/SlicePermissionManager.java6
-rw-r--r--services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java15
2 files changed, 20 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/slice/SlicePermissionManager.java b/services/core/java/com/android/server/slice/SlicePermissionManager.java
index d25ec89e0057..c67f94b895fc 100644
--- a/services/core/java/com/android/server/slice/SlicePermissionManager.java
+++ b/services/core/java/com/android/server/slice/SlicePermissionManager.java
@@ -251,6 +251,9 @@ public class SlicePermissionManager implements DirtyTracker {
}
// Can't read or no permissions exist, create a clean object.
client = new SliceClientPermissions(pkgUser, this);
+ synchronized (mCachedClients) {
+ mCachedClients.put(pkgUser, client);
+ }
}
return client;
}
@@ -278,6 +281,9 @@ public class SlicePermissionManager implements DirtyTracker {
}
// Can't read or no permissions exist, create a clean object.
provider = new SliceProviderPermissions(pkgUser, this);
+ synchronized (mCachedProviders) {
+ mCachedProviders.put(pkgUser, provider);
+ }
}
return provider;
}
diff --git a/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java b/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java
index 5443e73dd94f..dc057d564a84 100644
--- a/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java
@@ -26,7 +26,6 @@ import android.support.test.filters.SmallTest;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.testing.TestableLooper.RunWithLooper;
-import android.util.Log;
import android.util.Xml.Encoding;
import com.android.server.UiServiceTestCase;
@@ -49,6 +48,20 @@ import java.io.IOException;
public class SlicePermissionManagerTest extends UiServiceTestCase {
@Test
+ public void testGrant() {
+ File sliceDir = new File(mContext.getDataDir(), "system/slices");
+ SlicePermissionManager permissions = new SlicePermissionManager(mContext,
+ TestableLooper.get(this).getLooper(), sliceDir);
+ Uri uri = new Builder().scheme(ContentResolver.SCHEME_CONTENT)
+ .authority("authority")
+ .path("something").build();
+
+ permissions.grantSliceAccess("my.pkg", 0, "provider.pkg", 0, uri);
+
+ assertTrue(permissions.hasPermission("my.pkg", 0, uri));
+ }
+
+ @Test
public void testBackup() throws XmlPullParserException, IOException {
File sliceDir = new File(mContext.getDataDir(), "system/slices");
Uri uri = new Builder().scheme(ContentResolver.SCHEME_CONTENT)