From 2b44387f5d706e477418795c2d57d0909dc7ed22 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Fri, 3 Feb 2017 15:15:57 -0800 Subject: [PATCH] Use context's userId in ContentResolver class. When registering and notifying observers, we should use the user in the context as opposed to current user. Fixes: 32955100 Test: runtest -x core/tests/coretests/src/android/content/CrossUserContentResolverTest.java Change-Id: Idc169d6cc1ec0cea40a736b87c12d4609f1de9c7 --- .../java/android/content/ContentResolver.java | 6 +- core/tests/coretests/AndroidManifest.xml | 3 + .../android/app/activity/LocalProvider.java | 32 +++- .../content/CrossUserContentResolverTest.java | 175 ++++++++++++++++++ .../content/CrossUserContentService.java | 45 +++++ .../content/ICrossUserContentService.aidl | 24 +++ 6 files changed, 278 insertions(+), 7 deletions(-) create mode 100644 core/tests/coretests/src/android/content/CrossUserContentResolverTest.java create mode 100644 core/tests/coretests/src/android/content/CrossUserContentService.java create mode 100644 core/tests/coretests/src/android/content/ICrossUserContentService.aidl diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index 4480b41ed73a2..5bbbcc295fd03 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -1886,7 +1886,7 @@ public abstract class ContentResolver { ContentProvider.getUriWithoutUserId(uri), notifyForDescendants, observer, - ContentProvider.getUserIdFromUri(uri, UserHandle.myUserId())); + ContentProvider.getUserIdFromUri(uri, mContext.getUserId())); } /** @hide - designated user version */ @@ -1956,7 +1956,7 @@ public abstract class ContentResolver { ContentProvider.getUriWithoutUserId(uri), observer, syncToNetwork, - ContentProvider.getUserIdFromUri(uri, UserHandle.myUserId())); + ContentProvider.getUserIdFromUri(uri, mContext.getUserId())); } /** @@ -1982,7 +1982,7 @@ public abstract class ContentResolver { ContentProvider.getUriWithoutUserId(uri), observer, flags, - ContentProvider.getUserIdFromUri(uri, UserHandle.myUserId())); + ContentProvider.getUserIdFromUri(uri, mContext.getUserId())); } /** diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml index 91ce7a468484e..7b8c22962bccd 100644 --- a/core/tests/coretests/AndroidManifest.xml +++ b/core/tests/coretests/AndroidManifest.xml @@ -1357,6 +1357,9 @@ + +