aboutsummaryrefslogtreecommitdiff
path: root/slices/view/src/androidTest/java/androidx/slice/render/SliceRenderer.java
diff options
context:
space:
mode:
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.java41
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();
- }
- }
}