diff options
Diffstat (limited to 'slices/view/src/androidTest/java/androidx/slice/render/SliceRenderer.java')
-rw-r--r-- | slices/view/src/androidTest/java/androidx/slice/render/SliceRenderer.java | 41 |
1 files changed, 8 insertions, 33 deletions
diff --git a/slices/view/src/androidTest/java/androidx/slice/render/SliceRenderer.java b/slices/view/src/androidTest/java/androidx/slice/render/SliceRenderer.java index 9f8c199a6ac..70742c08b55 100644 --- a/slices/view/src/androidTest/java/androidx/slice/render/SliceRenderer.java +++ b/slices/view/src/androidTest/java/androidx/slice/render/SliceRenderer.java @@ -19,13 +19,11 @@ package androidx.slice.render; import static android.view.View.MeasureSpec.makeMeasureSpec; import android.app.Activity; -import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; import android.net.Uri; -import android.os.Handler; import android.util.Log; import android.util.TypedValue; import android.view.LayoutInflater; @@ -49,6 +47,7 @@ import java.io.FileOutputStream; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; @RequiresApi(19) public class SliceRenderer { @@ -68,10 +67,8 @@ public class SliceRenderer { private final SliceView mSV2; private final SliceView mSV3; private final ViewGroup mParent; - private final Handler mHandler; private final SampleSliceProvider mSliceCreator; private CountDownLatch mDoneLatch; - private ProgressDialog mDialog; public SliceRenderer(Activity context) { mContext = context; @@ -100,7 +97,6 @@ public class SliceRenderer { mSV3 = mLayout.findViewById(R.id.sv3); mSV3.setMode(SliceView.MODE_LARGE); disableAnims(mLayout); - mHandler = new Handler(); ((ViewGroup) mContext.getWindow().getDecorView()).addView(mParent); mParent.addView(mLayout); mSliceCreator = new SampleSliceProvider(); @@ -119,8 +115,7 @@ public class SliceRenderer { } } - - private File getScreenshotDirectory() { + public File getScreenshotDirectory() { if (sScreenshotDirectory == null) { File storage = mContext.getFilesDir(); sScreenshotDirectory = new File(storage, SCREENSHOT_DIR); @@ -135,14 +130,14 @@ public class SliceRenderer { } - private void doRender() { + public boolean doRender(long timeout, TimeUnit unit) { final File output = getScreenshotDirectory(); if (!output.exists()) { output.mkdir(); } mDoneLatch = new CountDownLatch(SampleSliceProvider.URI_PATHS.length * 4 + 1); - ExecutorService executor = Executors.newFixedThreadPool(5); + ExecutorService executor = Executors.newFixedThreadPool(MAX_CONCURRENT); for (final String slice : SampleSliceProvider.URI_PATHS) { SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); final Slice s = mSliceCreator.onBindSlice(SampleSliceProvider.getUri(slice, mContext)); @@ -202,8 +197,10 @@ public class SliceRenderer { }); } } + + boolean result = false; try { - mDoneLatch.await(); + result = mDoneLatch.await(timeout, unit); } catch (InterruptedException e) { } Log.d(TAG, "Wrote render to " + output.getAbsolutePath()); @@ -213,6 +210,7 @@ public class SliceRenderer { ((ViewGroup) mParent.getParent()).removeView(mParent); } }); + return result; } private Slice serAndUnSer(Slice s) { @@ -312,27 +310,4 @@ public class SliceRenderer { mDoneLatch.countDown(); Log.d(TAG, "Done " + slice); } - - public void renderAll(final Runnable runnable) { - mDialog = ProgressDialog.show(mContext, null, "Rendering..."); - new Thread(new Runnable() { - @Override - public void run() { - doRender(); - mContext.runOnUiThread(new Runnable() { - @Override - public void run() { - mDialog.dismiss(); - runnable.run(); - } - }); - } - }).start(); - } - - public void dismissDialog() { - if (mDialog != null && mDialog.isShowing()) { - mDialog.cancel(); - } - } } |