summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2017-10-11 20:35:50 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-10-11 20:35:50 +0000
commitc5df65697c49295b6f90ba105d424b66d2482b6e (patch)
treef353f399c641e22c4629ebfb4ded8282bccfdad9
parent3c1fd9097612367af6908241fc93c8922f3dbeb6 (diff)
parentc03127e83317009fa8430325e72555cdba47f3b7 (diff)
Merge "Don't trigger strict mode for shortcut manager bitmap compression"
-rw-r--r--services/core/java/com/android/server/pm/ShortcutBitmapSaver.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/ShortcutBitmapSaver.java b/services/core/java/com/android/server/pm/ShortcutBitmapSaver.java
index 4f5d1560bfb1..815f8851e8e5 100644
--- a/services/core/java/com/android/server/pm/ShortcutBitmapSaver.java
+++ b/services/core/java/com/android/server/pm/ShortcutBitmapSaver.java
@@ -21,6 +21,8 @@ import android.content.pm.ShortcutInfo;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.drawable.Icon;
+import android.os.StrictMode;
+import android.os.StrictMode.ThreadPolicy;
import android.os.SystemClock;
import android.util.Log;
import android.util.Slog;
@@ -165,7 +167,13 @@ public class ShortcutBitmapSaver {
// Compress it and enqueue to the requests.
final byte[] bytes;
+ final StrictMode.ThreadPolicy oldPolicy = StrictMode.getThreadPolicy();
try {
+ // compress() triggers a slow call, but in this case it's needed to save RAM and also
+ // the target bitmap is of an icon size, so let's just permit it.
+ StrictMode.setThreadPolicy(new ThreadPolicy.Builder(oldPolicy)
+ .permitCustomSlowCalls()
+ .build());
final Bitmap shrunk = mService.shrinkBitmap(original, maxDimension);
try {
try (final ByteArrayOutputStream out = new ByteArrayOutputStream(64 * 1024)) {
@@ -184,6 +192,8 @@ public class ShortcutBitmapSaver {
} catch (IOException | RuntimeException | OutOfMemoryError e) {
Slog.wtf(ShortcutService.TAG, "Unable to write bitmap to file", e);
return;
+ } finally {
+ StrictMode.setThreadPolicy(oldPolicy);
}
shortcut.addFlags(