Merge "Aggresive performance optimizations." into qt-dev am: 433b7fc88b

am: dda03c678d

Change-Id: Ibce662c5c2e543476e518c4633af158db4913873
This commit is contained in:
Jeff Sharkey
2019-05-17 23:27:48 -07:00
committed by android-build-merger
5 changed files with 18 additions and 14 deletions

View File

@@ -3304,6 +3304,14 @@ public final class MediaStore {
@TestApi
public static @NonNull File getVolumePath(@NonNull String volumeName)
throws FileNotFoundException {
final StorageManager sm = AppGlobals.getInitialApplication()
.getSystemService(StorageManager.class);
return getVolumePath(sm.getVolumes(), volumeName);
}
/** {@hide} */
public static @NonNull File getVolumePath(@NonNull List<VolumeInfo> volumes,
@NonNull String volumeName) throws FileNotFoundException {
if (TextUtils.isEmpty(volumeName)) {
throw new IllegalArgumentException();
}
@@ -3312,19 +3320,18 @@ public final class MediaStore {
case VOLUME_INTERNAL:
case VOLUME_EXTERNAL:
throw new FileNotFoundException(volumeName + " has no associated path");
case VOLUME_EXTERNAL_PRIMARY:
return Environment.getExternalStorageDirectory();
}
final StorageManager sm = AppGlobals.getInitialApplication()
.getSystemService(StorageManager.class);
for (VolumeInfo vi : sm.getVolumes()) {
if (Objects.equals(vi.getNormalizedFsUuid(), volumeName)) {
final File path = vi.getPathForUser(UserHandle.myUserId());
final boolean wantPrimary = VOLUME_EXTERNAL_PRIMARY.equals(volumeName);
for (VolumeInfo volume : volumes) {
final boolean matchPrimary = wantPrimary
&& volume.isPrimary();
final boolean matchSecondary = !wantPrimary
&& Objects.equals(volume.getNormalizedFsUuid(), volumeName);
if (matchPrimary || matchSecondary) {
final File path = volume.getPathForUser(UserHandle.myUserId());
if (path != null) {
return path;
} else {
throw new FileNotFoundException("Failed to find path for " + vi);
}
}
}

View File

@@ -4434,7 +4434,7 @@
<!-- Allows an application to watch changes and/or active state of app ops.
@hide <p>Not for use by third-party applications. -->
<permission android:name="android.permission.WATCH_APPOPS"
android:protectionLevel="signature" />
android:protectionLevel="signature|privileged" />
<!-- Allows an application to directly open the "Open by default" page inside a package's
Details screen.

View File

@@ -195,6 +195,7 @@ applications that come with the platform
<permission name="android.permission.MANAGE_USERS"/>
<permission name="android.permission.USE_RESERVED_DISK"/>
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
<permission name="android.permission.WATCH_APPOPS"/>
</privapp-permissions>
<privapp-permissions package="com.android.providers.telephony">

View File

@@ -170,7 +170,6 @@
<!-- Permission needed to enable/disable Bluetooth/Wifi -->
<uses-permission android:name="android.permission.MANAGE_BLUETOOTH_WHEN_WIRELESS_CONSENT_REQUIRED" />
<uses-permission android:name="android.permission.MANAGE_WIFI_WHEN_WIRELESS_CONSENT_REQUIRED" />
<uses-permission android:name="android.permission.WATCH_APPOPS" />
<!-- Permission needed to invoke DynamicSystem (AOT) -->
<uses-permission android:name="android.permission.INSTALL_DYNAMIC_SYSTEM" />

View File

@@ -222,9 +222,6 @@
<!-- to change themes - light or dark -->
<uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" />
<!-- Listen app op changes -->
<uses-permission android:name="android.permission.WATCH_APPOPS" />
<!-- to read and change hvac values in a car -->
<uses-permission android:name="android.car.permission.CONTROL_CAR_CLIMATE" />