summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/values-as/strings.xml2
-rw-r--r--res/values-bn/strings.xml2
-rw-r--r--res/values-gu/strings.xml2
-rw-r--r--res/values-kn/strings.xml2
-rw-r--r--res/values-ml/strings.xml2
-rw-r--r--res/values-mr/strings.xml2
-rw-r--r--res/values-or/strings.xml2
-rw-r--r--res/values-ta/strings.xml36
-rw-r--r--res/values-te/strings.xml2
-rw-r--r--src/com/android/providers/media/MediaProvider.java35
-rw-r--r--src/com/android/providers/media/util/UserCache.java38
11 files changed, 65 insertions, 60 deletions
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index fbb3a3538..a7ce544d8 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -21,7 +21,7 @@
<string name="app_label" msgid="9035307001052716210">"মিডিয়া সঞ্চয়াগাৰ"</string>
<string name="artist_label" msgid="8105600993099120273">"শিল্পী"</string>
<string name="unknown" msgid="2059049215682829375">"অজ্ঞাত"</string>
- <string name="root_images" msgid="5861633549189045666">"Images"</string>
+ <string name="root_images" msgid="5861633549189045666">"প্ৰতিচ্ছবি"</string>
<string name="root_videos" msgid="8792703517064649453">"ভিডিঅ\'সমূহ"</string>
<string name="root_audio" msgid="3505830755201326018">"অডিঅ’"</string>
<string name="root_documents" msgid="3829103301363849237">"নথিপত্র"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 06b23e7bd..e047ae18c 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -21,7 +21,7 @@
<string name="app_label" msgid="9035307001052716210">"মিডিয়া স্টোরেজ"</string>
<string name="artist_label" msgid="8105600993099120273">"শিল্পী"</string>
<string name="unknown" msgid="2059049215682829375">"অজানা"</string>
- <string name="root_images" msgid="5861633549189045666">"Images"</string>
+ <string name="root_images" msgid="5861633549189045666">"ছবি"</string>
<string name="root_videos" msgid="8792703517064649453">"ভিডিও"</string>
<string name="root_audio" msgid="3505830755201326018">"অডিও"</string>
<string name="root_documents" msgid="3829103301363849237">"ডকুমেন্ট"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 3cffaf69e..f80d1c145 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -21,7 +21,7 @@
<string name="app_label" msgid="9035307001052716210">"મીડિયા સ્ટોરેજ"</string>
<string name="artist_label" msgid="8105600993099120273">"કલાકાર"</string>
<string name="unknown" msgid="2059049215682829375">"અજાણ"</string>
- <string name="root_images" msgid="5861633549189045666">"Images"</string>
+ <string name="root_images" msgid="5861633549189045666">"છબીઓ"</string>
<string name="root_videos" msgid="8792703517064649453">"વીડિયો"</string>
<string name="root_audio" msgid="3505830755201326018">"ઑડિયો"</string>
<string name="root_documents" msgid="3829103301363849237">"દસ્તાવેજો"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 6595c3bc0..6a4125ff6 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -21,7 +21,7 @@
<string name="app_label" msgid="9035307001052716210">"ಮಾಧ್ಯಮ ಸಂಗ್ರಹಣೆ"</string>
<string name="artist_label" msgid="8105600993099120273">"ಕಲಾವಿದರು"</string>
<string name="unknown" msgid="2059049215682829375">"ಅಪರಿಚಿತ"</string>
- <string name="root_images" msgid="5861633549189045666">"Images"</string>
+ <string name="root_images" msgid="5861633549189045666">"ಚಿತ್ರಗಳು"</string>
<string name="root_videos" msgid="8792703517064649453">"ವೀಡಿಯೊಗಳು"</string>
<string name="root_audio" msgid="3505830755201326018">"ಆಡಿಯೊ"</string>
<string name="root_documents" msgid="3829103301363849237">"ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳು"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index a11ddefbe..d84f95cbf 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -21,7 +21,7 @@
<string name="app_label" msgid="9035307001052716210">"മീഡിയ സ്റ്റോറേജ്"</string>
<string name="artist_label" msgid="8105600993099120273">"ആർട്ടിസ്‌റ്റ്"</string>
<string name="unknown" msgid="2059049215682829375">"അജ്ഞാതം"</string>
- <string name="root_images" msgid="5861633549189045666">"Images"</string>
+ <string name="root_images" msgid="5861633549189045666">"ചിത്രങ്ങൾ"</string>
<string name="root_videos" msgid="8792703517064649453">"വീഡിയോകൾ"</string>
<string name="root_audio" msgid="3505830755201326018">"ഓഡിയോ"</string>
<string name="root_documents" msgid="3829103301363849237">"ഡോക്യുമെന്റുകൾ"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 98bef8845..308795f9d 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -21,7 +21,7 @@
<string name="app_label" msgid="9035307001052716210">"मीडिया स्टोरेज"</string>
<string name="artist_label" msgid="8105600993099120273">"कलाकार"</string>
<string name="unknown" msgid="2059049215682829375">"अज्ञात"</string>
- <string name="root_images" msgid="5861633549189045666">"Images"</string>
+ <string name="root_images" msgid="5861633549189045666">"इमेज"</string>
<string name="root_videos" msgid="8792703517064649453">"व्हिडिओ"</string>
<string name="root_audio" msgid="3505830755201326018">"ऑडिओ"</string>
<string name="root_documents" msgid="3829103301363849237">"दस्तऐवज"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 1e185dc67..d052a5417 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -21,7 +21,7 @@
<string name="app_label" msgid="9035307001052716210">"ମିଡିଆ ଷ୍ଟୋରେଜ୍"</string>
<string name="artist_label" msgid="8105600993099120273">"କଳାକାର"</string>
<string name="unknown" msgid="2059049215682829375">"ଅଜଣା"</string>
- <string name="root_images" msgid="5861633549189045666">"Images"</string>
+ <string name="root_images" msgid="5861633549189045666">"ଇମେଜ୍‌"</string>
<string name="root_videos" msgid="8792703517064649453">"ଭିଡିଓ"</string>
<string name="root_audio" msgid="3505830755201326018">"ଅଡିଓ"</string>
<string name="root_documents" msgid="3829103301363849237">"ଡକ୍ୟୁମେଣ୍ଟଗୁଡ଼ିକ"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index e1404f68a..8b9180fa0 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -49,7 +49,7 @@
</plurals>
<plurals name="permission_progress_write_audio" formatted="false" msgid="3757901555809850632">
<item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆடியோ கோப்புகளை மாற்றியமைக்கிறது…</item>
- <item quantity="one">ஆடியோ கோப்பை மாற்றியமைக்கிறது…</item>
+ <item quantity="one">ஆடியோ ஃபைலை மாற்றியமைக்கிறது…</item>
</plurals>
<plurals name="permission_write_video" formatted="false" msgid="1098082003326873084">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> வீடியோக்களில் மாற்றங்களைச் செய்ய <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
@@ -80,64 +80,64 @@
<item quantity="one">இந்த ஆடியோ ஃபைலை நீக்கியவற்றிற்கு நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_trash_audio" formatted="false" msgid="8142631134676951388">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆடியோ கோப்புகளை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
- <item quantity="one">ஆடியோ கோப்பை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆடியோ கோப்புகளை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
+ <item quantity="one">ஆடியோ ஃபைலை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_trash_video" formatted="false" msgid="4672871911555787438">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> வீடியோக்களை நீக்கியவற்றிற்கு நகர்த்த <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
<item quantity="one">இந்த வீடியோவை நீக்கியவற்றிற்கு நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_trash_video" formatted="false" msgid="2566683722600149120">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> வீடியோக்களை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
- <item quantity="one">வீடியோவை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> வீடியோக்களை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
+ <item quantity="one">வீடியோவை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_trash_image" formatted="false" msgid="6400475304599873227">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> படங்களை நீக்கியவற்றிற்கு நகர்த்த <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
<item quantity="one">இந்தப் படத்தை நீக்கியவற்றிற்கு நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_trash_image" formatted="false" msgid="4529586663770971476">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> படங்களை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
- <item quantity="one">படத்தை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> படங்களை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
+ <item quantity="one">படத்தை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_trash_generic" formatted="false" msgid="3814167365075039711">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> ஃபைல்களை நீக்கியவற்றிற்கு நகர்த்த <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
<item quantity="one">இந்த ஃபைலை நீக்கியவற்றிற்கு நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_trash_generic" formatted="false" msgid="6995141190896908381">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆவணங்களை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
- <item quantity="one">ஆவணத்தை ‘நீக்கியவை’ கோப்புறைக்கு நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆவணங்களை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
+ <item quantity="one">ஆவணத்தை ‘நீக்கியவை’ ஃபோல்டருக்கு நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_untrash_audio" formatted="false" msgid="7795265980168966321">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> ஆடியோ ஃபைல்களை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
<item quantity="one">இந்த ஆடியோ ஃபைலை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_untrash_audio" formatted="false" msgid="4047200387122043006">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆடியோ கோப்புகளை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
- <item quantity="one">ஆடியோ கோப்பை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆடியோ கோப்புகளை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="one">ஆடியோ ஃபைலை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_untrash_video" formatted="false" msgid="332894888445508879">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> வீடியோக்களை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
<item quantity="one">இந்த வீடியோவை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_untrash_video" formatted="false" msgid="7996233128375495458">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> வீடியோக்களை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
- <item quantity="one">வீடியோவை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> வீடியோக்களை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="one">வீடியோவை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_untrash_image" formatted="false" msgid="7024071378733595056">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> படங்களை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
<item quantity="one">இந்தப் படத்தை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_untrash_image" formatted="false" msgid="3473769131910926122">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> படங்களை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
- <item quantity="one">படத்தை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> படங்களை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="one">படத்தை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_untrash_generic" formatted="false" msgid="6872817093731198374">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> ஃபைல்களை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
<item quantity="one">இந்த ஃபைலை நீக்கியவற்றில் இருந்து நகர்த்த <xliff:g id="APP_NAME_0">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
</plurals>
<plurals name="permission_progress_untrash_generic" formatted="false" msgid="263867753672461510">
- <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆவணங்களை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
- <item quantity="one">ஆவணத்தை ‘நீக்கியவை’ கோப்புறையிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆவணங்களை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
+ <item quantity="one">ஆவணத்தை ‘நீக்கியவை’ ஃபோல்டரிலிருந்து நகர்த்துகிறது…</item>
</plurals>
<plurals name="permission_delete_audio" formatted="false" msgid="6848547621165184719">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> ஆடியோ ஃபைல்களை நீக்க <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
@@ -145,7 +145,7 @@
</plurals>
<plurals name="permission_progress_delete_audio" formatted="false" msgid="8579231060666743501">
<item quantity="other"><xliff:g id="COUNT">^1</xliff:g> ஆடியோ கோப்புகளை நீக்குகிறது…</item>
- <item quantity="one">ஆடியோ கோப்பை நீக்குகிறது…</item>
+ <item quantity="one">ஆடியோ ஃபைலை நீக்குகிறது…</item>
</plurals>
<plurals name="permission_delete_video" formatted="false" msgid="1251942606336748563">
<item quantity="other"><xliff:g id="COUNT">^2</xliff:g> வீடியோக்களை நீக்க <xliff:g id="APP_NAME_1">^1</xliff:g> ஆப்ஸை அனுமதிக்கவா?</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 08d1adb52..3eb2da6a1 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -26,7 +26,7 @@
<string name="root_audio" msgid="3505830755201326018">"ఆడియో"</string>
<string name="root_documents" msgid="3829103301363849237">"డాక్యుమెంట్‌లు"</string>
<string name="permission_required" msgid="1460820436132943754">"ఈ అంశాన్ని మార్చడానికి లేదా తొలగించడానికి అనుమతి అవసరం."</string>
- <string name="permission_required_action" msgid="706370952366113539">"కొనసాగించు"</string>
+ <string name="permission_required_action" msgid="706370952366113539">"కొనసాగించండి"</string>
<string name="grant_dialog_button_allow" msgid="1644287024501033471">"అనుమతించండి"</string>
<string name="grant_dialog_button_deny" msgid="6190589471415815741">"తిరస్కరించండి"</string>
<plurals name="permission_more_thumb" formatted="false" msgid="4392079224649478923">
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index b102ed607..6a4eede60 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -23,9 +23,6 @@ import static android.app.PendingIntent.FLAG_IMMUTABLE;
import static android.app.PendingIntent.FLAG_ONE_SHOT;
import static android.content.ContentResolver.QUERY_ARG_SQL_SELECTION;
import static android.content.ContentResolver.QUERY_ARG_SQL_SELECTION_ARGS;
-import static android.content.pm.PackageManager.MATCH_ANY_USER;
-import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
-import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static android.database.Cursor.FIELD_TYPE_BLOB;
import static android.provider.MediaStore.MATCH_DEFAULT;
@@ -494,9 +491,6 @@ public class MediaProvider extends ContentProvider {
private OnOpChangedListener mModeListener =
(op, packageName) -> invalidateLocalCallingIdentityCache(packageName, "op " + op);
- @GuardedBy("mNonWorkProfileUsers")
- private final List<Integer> mNonWorkProfileUsers = new ArrayList<>();
-
/**
* Retrieves a cached calling identity or creates a new one. Also, always sets the app-op
* description for the calling identity.
@@ -1372,7 +1366,7 @@ public class MediaProvider extends ContentProvider {
return false;
}
- if (isWorkProfile(callingUserId) || isWorkProfile(pathUserId)) {
+ if (mUserCache.isWorkProfile(callingUserId) || mUserCache.isWorkProfile(pathUserId)) {
// Cross-user lookup not allowed if one user in the pair has a profile owner app
Log.w(TAG, "CrossUser work profile check failed. Users: " + callingUserId + " and "
+ pathUserId);
@@ -1390,33 +1384,6 @@ public class MediaProvider extends ContentProvider {
return result;
}
- private boolean isWorkProfile(int userId) {
- synchronized (mNonWorkProfileUsers) {
- if (mNonWorkProfileUsers.contains(userId)) {
- return false;
- }
- if (userId == 0) {
- mNonWorkProfileUsers.add(userId);
- // user 0 cannot have a profile owner
- return false;
- }
- }
-
- List<Integer> uids = new ArrayList<>();
- for (ApplicationInfo ai : mPackageManager.getInstalledApplications(MATCH_DIRECT_BOOT_AWARE
- | MATCH_DIRECT_BOOT_UNAWARE | MATCH_ANY_USER)) {
- if (((ai.uid / PER_USER_RANGE) == userId)
- && mDevicePolicyManager.isProfileOwnerApp(ai.packageName)) {
- return true;
- }
- }
-
- synchronized (mNonWorkProfileUsers) {
- mNonWorkProfileUsers.add(userId);
- return false;
- }
- }
-
/**
* Called from FUSE to transform a file
*
diff --git a/src/com/android/providers/media/util/UserCache.java b/src/com/android/providers/media/util/UserCache.java
index 4b7dec9e5..a5b05c40d 100644
--- a/src/com/android/providers/media/util/UserCache.java
+++ b/src/com/android/providers/media/util/UserCache.java
@@ -16,7 +16,12 @@
package com.android.providers.media.util;
+import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
+import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
+
+import android.app.admin.DevicePolicyManager;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Process;
import android.os.UserHandle;
@@ -50,6 +55,8 @@ public class UserCache {
@GuardedBy("mLock")
final LongSparseArray<Context> mUserContexts = new LongSparseArray<>();
+ @GuardedBy("mLock")
+ final LongSparseArray<Boolean> mUserIsWorkProfile = new LongSparseArray<>();
@GuardedBy("mLock")
final ArrayList<UserHandle> mUsers = new ArrayList<>();
@@ -97,6 +104,37 @@ public class UserCache {
}
}
+ public boolean isWorkProfile(int userId) {
+ if (userId == 0) {
+ // Owner user can not have a work profile
+ return false;
+ }
+ synchronized (mLock) {
+ int index = mUserIsWorkProfile.indexOfKey(userId);
+ if (index >= 0) {
+ return mUserIsWorkProfile.valueAt(index);
+ }
+ }
+
+ Context userContext = getContextForUser(UserHandle.of(userId));
+ PackageManager packageManager = userContext.getPackageManager();
+ DevicePolicyManager policyManager = userContext.getSystemService(
+ DevicePolicyManager.class);
+ boolean isWorkProfile = false;
+ for (ApplicationInfo ai : packageManager.getInstalledApplications(
+ MATCH_DIRECT_BOOT_AWARE | MATCH_DIRECT_BOOT_UNAWARE)) {
+ if (policyManager.isProfileOwnerApp(ai.packageName)) {
+ isWorkProfile = true;
+ }
+ }
+
+ synchronized (mLock) {
+ mUserIsWorkProfile.put(userId, isWorkProfile);
+ }
+
+ return isWorkProfile;
+ }
+
public @NonNull Context getContextForUser(@NonNull UserHandle user) {
Context userContext;
synchronized (mLock) {