parent
b7486efbcd
commit
1a37c4c92c
@ -1,4 +1,4 @@ |
|||||||
#!/usr/bin/env bash |
#!/usr/bin/env bash |
||||||
adb logcat -c |
adb logcat -c |
||||||
adb logcat CameraOrchestrator:I CameraEngine:I CameraView:I CameraCallbacks:I CameraIntegrationTest:I MediaEncoderEngine:I MediaEncoder:I AudioMediaEncoder:I VideoMediaEncoder:I TextureMediaEncoder:I VideoRecorder:I FullVideoRecorder:I SnapshotVideoRecorder:I MessageQueue:W MPEG4Writer:I *:E -v color & |
adb logcat CameraOrchestrator:I CameraEngine:I CameraView:I CameraCallbacks:I CameraIntegrationTest:I MediaEncoderEngine:I MediaEncoder:I AudioMediaEncoder:I VideoMediaEncoder:I TextureMediaEncoder:I VideoRecorder:I FullVideoRecorder:I SnapshotVideoRecorder:I MessageQueue:W WorkerHandler:I MPEG4Writer:I *:E -v color & |
||||||
./gradlew cameraview:connectedCheck |
./gradlew cameraview:connectedCheck |
@ -1,66 +0,0 @@ |
|||||||
package com.otaliastudios.cameraview.tools; |
|
||||||
|
|
||||||
import androidx.annotation.NonNull; |
|
||||||
import androidx.annotation.Nullable; |
|
||||||
|
|
||||||
import com.otaliastudios.cameraview.CameraException; |
|
||||||
import com.otaliastudios.cameraview.CameraListener; |
|
||||||
import com.otaliastudios.cameraview.CameraLogger; |
|
||||||
import com.otaliastudios.cameraview.CameraView; |
|
||||||
|
|
||||||
import org.junit.rules.TestRule; |
|
||||||
import org.junit.runner.Description; |
|
||||||
import org.junit.runners.model.Statement; |
|
||||||
|
|
||||||
public class RecoverCameraRule implements TestRule { |
|
||||||
|
|
||||||
public interface Callback { |
|
||||||
@NonNull |
|
||||||
CameraView getCamera(); |
|
||||||
@NonNull |
|
||||||
CameraLogger getLogger(); |
|
||||||
} |
|
||||||
|
|
||||||
private final Callback mCallback; |
|
||||||
|
|
||||||
public RecoverCameraRule(@NonNull Callback callback) { |
|
||||||
mCallback = callback; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public Statement apply(final Statement base, Description description) { |
|
||||||
return new Statement() { |
|
||||||
@Override |
|
||||||
public void evaluate() throws Throwable { |
|
||||||
try { |
|
||||||
base.evaluate(); |
|
||||||
} catch (Throwable throwable) { |
|
||||||
mCallback.getLogger().w("**************************************"); |
|
||||||
mCallback.getLogger().w("!!! TEST FAILED? THROWABLE FOUND:", throwable); |
|
||||||
mCallback.getLogger().w("**************************************"); |
|
||||||
CameraException exception = findCameraException(throwable); |
|
||||||
if (exception != null) { |
|
||||||
mCallback.getLogger().e("**************************************"); |
|
||||||
mCallback.getLogger().e("!!! TEST FAILED, TRYING TO RECOVER !!!"); |
|
||||||
mCallback.getLogger().e("**************************************"); |
|
||||||
mCallback.getCamera().destroy(); |
|
||||||
base.evaluate(); |
|
||||||
} else { |
|
||||||
throw throwable; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
}; |
|
||||||
} |
|
||||||
|
|
||||||
@Nullable |
|
||||||
private CameraException findCameraException(@NonNull Throwable throwable) { |
|
||||||
if (throwable instanceof CameraException |
|
||||||
&& ((CameraException) throwable).isUnrecoverable()) { |
|
||||||
return (CameraException) throwable; |
|
||||||
} |
|
||||||
if (throwable.getCause() == null) return null; |
|
||||||
if (throwable == throwable.getCause()) return null; |
|
||||||
return findCameraException(throwable.getCause()); |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue