Added cpature fail-safe

pull/194/merge
M66B 4 years ago
parent 8d35d47900
commit 201f00a74b

@ -691,6 +691,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
@Override @Override
public void onScrollCaptureSearch(@NonNull CancellationSignal signal, @NonNull Consumer<Rect> onReady) { public void onScrollCaptureSearch(@NonNull CancellationSignal signal, @NonNull Consumer<Rect> onReady) {
rect = new Rect(); rect = new Rect();
try {
List<Long> expanded = values.get("expanded"); List<Long> expanded = values.get("expanded");
Log.i("Capture expanded=" + (expanded == null ? null : expanded.size())); Log.i("Capture expanded=" + (expanded == null ? null : expanded.size()));
if (expanded != null && expanded.size() == 1) { if (expanded != null && expanded.size() == 1) {
@ -701,9 +702,13 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
if (child != null) if (child != null)
rect.set(0, 0, child.getWidth(), child.getHeight()); rect.set(0, 0, child.getWidth(), child.getHeight());
} }
} catch (Throwable ex) {
Log.e(ex);
} finally {
Log.i("Capture search=" + rect); Log.i("Capture search=" + rect);
onReady.accept(rect); onReady.accept(rect);
} }
}
@Override @Override
public void onScrollCaptureStart(@NonNull ScrollCaptureSession session, @NonNull CancellationSignal signal, @NonNull Runnable onReady) { public void onScrollCaptureStart(@NonNull ScrollCaptureSession session, @NonNull CancellationSignal signal, @NonNull Runnable onReady) {
@ -713,15 +718,16 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
@Override @Override
public void onScrollCaptureImageRequest(@NonNull ScrollCaptureSession session, @NonNull CancellationSignal signal, @NonNull Rect captureArea, @NonNull Consumer<Rect> onComplete) { public void onScrollCaptureImageRequest(@NonNull ScrollCaptureSession session, @NonNull CancellationSignal signal, @NonNull Rect captureArea, @NonNull Consumer<Rect> onComplete) {
//Canvas canvas = session.getSurface().lockCanvas(rect);
Canvas canvas = session.getSurface().lockHardwareCanvas();
Log.i("Capture draw=" + captureArea + " scroll=" + session.getScrollBounds()); Log.i("Capture draw=" + captureArea + " scroll=" + session.getScrollBounds());
try { Canvas canvas = session.getSurface().lockHardwareCanvas();
canvas.save(); canvas.save();
try {
canvas.translate(-captureArea.left, -captureArea.top - session.getScrollBounds().bottom); canvas.translate(-captureArea.left, -captureArea.top - session.getScrollBounds().bottom);
child.draw(canvas); child.draw(canvas);
canvas.restore(); } catch (Throwable ex) {
Log.e(ex);
} finally { } finally {
canvas.restore();
session.getSurface().unlockCanvasAndPost(canvas); session.getSurface().unlockCanvasAndPost(canvas);
} }

Loading…
Cancel
Save