diff options
| author | 2017-10-11 20:35:50 +0000 | |
|---|---|---|
| committer | 2017-10-11 20:35:50 +0000 | |
| commit | c5df65697c49295b6f90ba105d424b66d2482b6e (patch) | |
| tree | f353f399c641e22c4629ebfb4ded8282bccfdad9 | |
| parent | 3c1fd9097612367af6908241fc93c8922f3dbeb6 (diff) | |
| parent | c03127e83317009fa8430325e72555cdba47f3b7 (diff) | |
Merge "Don't trigger strict mode for shortcut manager bitmap compression"
| -rw-r--r-- | services/core/java/com/android/server/pm/ShortcutBitmapSaver.java | 10 |
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( |