diff options
| author | 2018-05-11 19:40:10 +0000 | |
|---|---|---|
| committer | 2018-05-11 19:40:10 +0000 | |
| commit | 9959b36635bef1cdbd32df584675618da84f44df (patch) | |
| tree | ea0742e59a10c8b7c89e80dfa85325b0d109a7c2 | |
| parent | 26aff0d90791f3e7837b72223a486bc17f15d92c (diff) | |
| parent | 9c03ef48b67f153e9ad2e2fdb97e0e6a62317851 (diff) | |
Merge "Fix first-time slice permission grants" into pi-dev
| -rw-r--r-- | services/core/java/com/android/server/slice/SlicePermissionManager.java | 6 | ||||
| -rw-r--r-- | services/tests/uiservicestests/src/com/android/server/slice/SlicePermissionManagerTest.java | 15 |
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) |