diff options
| author | Winson Chung <winsonc@google.com> | 2015-07-30 18:08:26 -0700 |
|---|---|---|
| committer | Winson Chung <winsonc@google.com> | 2015-07-31 12:47:25 -0700 |
| commit | c35e670d5386eb6388eb4e65746b950265312e7a (patch) | |
| tree | 5c93239893abe358b9486198e02ea1ab1de56e5b /packages/SystemUI/src/com/android | |
| parent | 92e0c86fa2b84619ebc3acb6d91434dd17113c61 (diff) | |
| download | frameworks_base-c35e670d5386eb6388eb4e65746b950265312e7a.zip frameworks_base-c35e670d5386eb6388eb4e65746b950265312e7a.tar.gz frameworks_base-c35e670d5386eb6388eb4e65746b950265312e7a.tar.bz2 | |
Moving removeTask to separate thread.
Bug: 22760556
Change-Id: Iac6eef77e3ba5432ac1cd4aa792e7b2aadc27c01
Diffstat (limited to 'packages/SystemUI/src/com/android')
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java | 44 |
1 files changed, 21 insertions, 23 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java index 17db471..298a1cc 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java @@ -48,6 +48,8 @@ import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.os.Handler; +import android.os.HandlerThread; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.SystemProperties; @@ -85,6 +87,15 @@ public class SystemServicesProxy { final static String TAG = "SystemServicesProxy"; final static BitmapFactory.Options sBitmapOptions; + final static HandlerThread sBgThread; + + static { + sBgThread = new HandlerThread("Recents-SystemServicesProxy", + android.os.Process.THREAD_PRIORITY_BACKGROUND); + sBgThread.start(); + sBitmapOptions = new BitmapFactory.Options(); + sBitmapOptions.inMutable = true; + } AccessibilityManager mAccm; ActivityManager mAm; @@ -98,17 +109,14 @@ public class SystemServicesProxy { String mRecentsPackage; ComponentName mAssistComponent; + Handler mBgThreadHandler; + Bitmap mDummyIcon; int mDummyThumbnailWidth; int mDummyThumbnailHeight; Paint mBgProtectionPaint; Canvas mBgProtectionCanvas; - static { - sBitmapOptions = new BitmapFactory.Options(); - sBitmapOptions.inMutable = true; - } - /** Private constructor */ public SystemServicesProxy(Context context) { mAccm = AccessibilityManager.getInstance(context); @@ -121,6 +129,7 @@ public class SystemServicesProxy { mWm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); mDisplay = mWm.getDefaultDisplay(); mRecentsPackage = context.getPackageName(); + mBgThreadHandler = new Handler(sBgThread.getLooper()); // Get the dummy thumbnail width/heights Resources res = context.getResources(); @@ -383,12 +392,17 @@ public class SystemServicesProxy { } /** Removes the task */ - public void removeTask(int taskId) { + public void removeTask(final int taskId) { if (mAm == null) return; if (Constants.DebugFlags.App.EnableSystemServicesProxy) return; // Remove the task. - mAm.removeTask(taskId); + mBgThreadHandler.post(new Runnable() { + @Override + public void run() { + mAm.removeTask(taskId); + } + }); } /** @@ -656,22 +670,6 @@ public class SystemServicesProxy { return windowRect; } - /** - * Takes a screenshot of the current surface. - */ - public Bitmap takeScreenshot() { - DisplayInfo di = new DisplayInfo(); - mDisplay.getDisplayInfo(di); - return SurfaceControl.screenshot(di.getNaturalWidth(), di.getNaturalHeight()); - } - - /** - * Takes a screenshot of the current app. - */ - public Bitmap takeAppScreenshot() { - return takeScreenshot(); - } - /** Starts an activity from recents. */ public boolean startActivityFromRecents(Context context, int taskId, String taskName, ActivityOptions options) { |
