|
|
@ -4,12 +4,6 @@ import android.Manifest; |
|
|
|
import android.annotation.SuppressLint; |
|
|
|
import android.annotation.SuppressLint; |
|
|
|
import android.annotation.TargetApi; |
|
|
|
import android.annotation.TargetApi; |
|
|
|
import android.app.Activity; |
|
|
|
import android.app.Activity; |
|
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.VisibleForTesting; |
|
|
|
|
|
|
|
import androidx.lifecycle.Lifecycle; |
|
|
|
|
|
|
|
import androidx.lifecycle.LifecycleObserver; |
|
|
|
|
|
|
|
import androidx.lifecycle.LifecycleOwner; |
|
|
|
|
|
|
|
import androidx.lifecycle.OnLifecycleEvent; |
|
|
|
|
|
|
|
import android.content.Context; |
|
|
|
import android.content.Context; |
|
|
|
import android.content.ContextWrapper; |
|
|
|
import android.content.ContextWrapper; |
|
|
|
import android.content.pm.PackageInfo; |
|
|
|
import android.content.pm.PackageInfo; |
|
|
@ -23,9 +17,6 @@ import android.opengl.GLSurfaceView; |
|
|
|
import android.os.Build; |
|
|
|
import android.os.Build; |
|
|
|
import android.os.Handler; |
|
|
|
import android.os.Handler; |
|
|
|
import android.os.Looper; |
|
|
|
import android.os.Looper; |
|
|
|
import androidx.annotation.ColorInt; |
|
|
|
|
|
|
|
import androidx.annotation.NonNull; |
|
|
|
|
|
|
|
import androidx.annotation.Nullable; |
|
|
|
|
|
|
|
import android.util.AttributeSet; |
|
|
|
import android.util.AttributeSet; |
|
|
|
import android.util.Log; |
|
|
|
import android.util.Log; |
|
|
|
import android.view.MotionEvent; |
|
|
|
import android.view.MotionEvent; |
|
|
@ -33,27 +24,35 @@ import android.view.View; |
|
|
|
import android.view.ViewGroup; |
|
|
|
import android.view.ViewGroup; |
|
|
|
import android.widget.FrameLayout; |
|
|
|
import android.widget.FrameLayout; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.ColorInt; |
|
|
|
|
|
|
|
import androidx.annotation.NonNull; |
|
|
|
|
|
|
|
import androidx.annotation.Nullable; |
|
|
|
|
|
|
|
import androidx.annotation.VisibleForTesting; |
|
|
|
|
|
|
|
import androidx.lifecycle.Lifecycle; |
|
|
|
|
|
|
|
import androidx.lifecycle.LifecycleObserver; |
|
|
|
|
|
|
|
import androidx.lifecycle.LifecycleOwner; |
|
|
|
|
|
|
|
import androidx.lifecycle.OnLifecycleEvent; |
|
|
|
|
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.controls.Audio; |
|
|
|
import com.otaliastudios.cameraview.controls.Audio; |
|
|
|
import com.otaliastudios.cameraview.controls.Control; |
|
|
|
import com.otaliastudios.cameraview.controls.Control; |
|
|
|
import com.otaliastudios.cameraview.controls.ControlParser; |
|
|
|
import com.otaliastudios.cameraview.controls.ControlParser; |
|
|
|
import com.otaliastudios.cameraview.controls.Engine; |
|
|
|
import com.otaliastudios.cameraview.controls.Engine; |
|
|
|
import com.otaliastudios.cameraview.controls.Facing; |
|
|
|
import com.otaliastudios.cameraview.controls.Facing; |
|
|
|
import com.otaliastudios.cameraview.controls.Flash; |
|
|
|
import com.otaliastudios.cameraview.controls.Flash; |
|
|
|
import com.otaliastudios.cameraview.engine.Camera2Engine; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.engine.offset.Reference; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.markers.MarkerLayout; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.engine.Camera1Engine; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.engine.CameraEngine; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.frame.Frame; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.frame.FrameProcessor; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.gesture.Gesture; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.gesture.GestureAction; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.controls.Grid; |
|
|
|
import com.otaliastudios.cameraview.controls.Grid; |
|
|
|
import com.otaliastudios.cameraview.controls.Hdr; |
|
|
|
import com.otaliastudios.cameraview.controls.Hdr; |
|
|
|
import com.otaliastudios.cameraview.controls.Mode; |
|
|
|
import com.otaliastudios.cameraview.controls.Mode; |
|
|
|
import com.otaliastudios.cameraview.controls.Preview; |
|
|
|
import com.otaliastudios.cameraview.controls.Preview; |
|
|
|
import com.otaliastudios.cameraview.controls.VideoCodec; |
|
|
|
import com.otaliastudios.cameraview.controls.VideoCodec; |
|
|
|
import com.otaliastudios.cameraview.controls.WhiteBalance; |
|
|
|
import com.otaliastudios.cameraview.controls.WhiteBalance; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.engine.Camera1Engine; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.engine.Camera2Engine; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.engine.CameraEngine; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.engine.offset.Reference; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.frame.Frame; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.frame.FrameProcessor; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.gesture.Gesture; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.gesture.GestureAction; |
|
|
|
import com.otaliastudios.cameraview.gesture.GestureFinder; |
|
|
|
import com.otaliastudios.cameraview.gesture.GestureFinder; |
|
|
|
import com.otaliastudios.cameraview.gesture.GestureParser; |
|
|
|
import com.otaliastudios.cameraview.gesture.GestureParser; |
|
|
|
import com.otaliastudios.cameraview.gesture.PinchGestureFinder; |
|
|
|
import com.otaliastudios.cameraview.gesture.PinchGestureFinder; |
|
|
@ -63,6 +62,9 @@ import com.otaliastudios.cameraview.internal.GridLinesLayout; |
|
|
|
import com.otaliastudios.cameraview.internal.utils.CropHelper; |
|
|
|
import com.otaliastudios.cameraview.internal.utils.CropHelper; |
|
|
|
import com.otaliastudios.cameraview.internal.utils.OrientationHelper; |
|
|
|
import com.otaliastudios.cameraview.internal.utils.OrientationHelper; |
|
|
|
import com.otaliastudios.cameraview.internal.utils.WorkerHandler; |
|
|
|
import com.otaliastudios.cameraview.internal.utils.WorkerHandler; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.markers.AutoFocusMarker; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.markers.AutoFocusTrigger; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.markers.MarkerLayout; |
|
|
|
import com.otaliastudios.cameraview.markers.MarkerParser; |
|
|
|
import com.otaliastudios.cameraview.markers.MarkerParser; |
|
|
|
import com.otaliastudios.cameraview.overlay.OverlayLayout; |
|
|
|
import com.otaliastudios.cameraview.overlay.OverlayLayout; |
|
|
|
import com.otaliastudios.cameraview.preview.CameraPreview; |
|
|
|
import com.otaliastudios.cameraview.preview.CameraPreview; |
|
|
@ -70,14 +72,15 @@ import com.otaliastudios.cameraview.preview.GlCameraPreview; |
|
|
|
import com.otaliastudios.cameraview.preview.SurfaceCameraPreview; |
|
|
|
import com.otaliastudios.cameraview.preview.SurfaceCameraPreview; |
|
|
|
import com.otaliastudios.cameraview.preview.TextureCameraPreview; |
|
|
|
import com.otaliastudios.cameraview.preview.TextureCameraPreview; |
|
|
|
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
|
|
|
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
|
|
|
import com.otaliastudios.cameraview.shadereffects.effects.BlackAndWhiteEffect; |
|
|
|
import com.otaliastudios.cameraview.shadereffects.ShaderEffectFactory; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.shadereffects.effects.SharpnessEffect; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.shadereffects.effects.TemperatureEffect; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.shadereffects.effects.TintEffect; |
|
|
|
import com.otaliastudios.cameraview.size.AspectRatio; |
|
|
|
import com.otaliastudios.cameraview.size.AspectRatio; |
|
|
|
import com.otaliastudios.cameraview.size.Size; |
|
|
|
import com.otaliastudios.cameraview.size.Size; |
|
|
|
import com.otaliastudios.cameraview.size.SizeSelector; |
|
|
|
import com.otaliastudios.cameraview.size.SizeSelector; |
|
|
|
import com.otaliastudios.cameraview.size.SizeSelectorParser; |
|
|
|
import com.otaliastudios.cameraview.size.SizeSelectorParser; |
|
|
|
import com.otaliastudios.cameraview.size.SizeSelectors; |
|
|
|
import com.otaliastudios.cameraview.size.SizeSelectors; |
|
|
|
import com.otaliastudios.cameraview.markers.AutoFocusMarker; |
|
|
|
|
|
|
|
import com.otaliastudios.cameraview.markers.AutoFocusTrigger; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
import java.io.File; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
@ -88,7 +91,6 @@ import java.util.concurrent.CopyOnWriteArrayList; |
|
|
|
import static android.view.View.MeasureSpec.AT_MOST; |
|
|
|
import static android.view.View.MeasureSpec.AT_MOST; |
|
|
|
import static android.view.View.MeasureSpec.EXACTLY; |
|
|
|
import static android.view.View.MeasureSpec.EXACTLY; |
|
|
|
import static android.view.View.MeasureSpec.UNSPECIFIED; |
|
|
|
import static android.view.View.MeasureSpec.UNSPECIFIED; |
|
|
|
|
|
|
|
|
|
|
|
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; |
|
|
|
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -580,8 +582,8 @@ public class CameraView extends FrameLayout implements LifecycleObserver { |
|
|
|
if( MotionEvent.ACTION_UP == event.getAction()) { |
|
|
|
if( MotionEvent.ACTION_UP == event.getAction()) { |
|
|
|
Log.d("Suneet Agrawal", "onTouchEvent " + event.getAction()); |
|
|
|
Log.d("Suneet Agrawal", "onTouchEvent " + event.getAction()); |
|
|
|
|
|
|
|
|
|
|
|
BlackAndWhiteEffect effect = new BlackAndWhiteEffect(); |
|
|
|
//BlackAndWhiteEffect effect = new BlackAndWhiteEffect();
|
|
|
|
changeEffect(effect); |
|
|
|
changeEffect(ShaderEffectFactory.ShaderEffects.SHARPNESS_EFFECT); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
@ -2153,12 +2155,23 @@ public class CameraView extends FrameLayout implements LifecycleObserver { |
|
|
|
return null; |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void changeEffect(BaseShaderEffect shader) { |
|
|
|
public void changeEffect(ShaderEffectFactory.ShaderEffects effect) { |
|
|
|
if (mCameraPreview instanceof GlCameraPreview) { |
|
|
|
if (mCameraPreview instanceof GlCameraPreview) { |
|
|
|
String effect = shader.getFragmentShader(); |
|
|
|
GLSurfaceView previewingSurfaceView = getCurrentPreviewingGlSurfaceView(); |
|
|
|
((GlCameraPreview) mCameraPreview).setEffectFragmentShader(effect); |
|
|
|
if (previewingSurfaceView != null) { |
|
|
|
|
|
|
|
BaseShaderEffect shaderEffect = ShaderEffectFactory.getShaderFromFactory(effect, previewingSurfaceView); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
((SharpnessEffect)shaderEffect).setSharpnessValue(1.0f); |
|
|
|
|
|
|
|
((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
LOG.w("changeEffect", "changeEffect is supported only for GLSurfaceView"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//doInstantiatePreview();
|
|
|
|
public void changeEffect(BaseShaderEffect shaderEffect) { |
|
|
|
|
|
|
|
if (mCameraPreview instanceof GlCameraPreview) { |
|
|
|
|
|
|
|
((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
LOG.w("changeEffect", "changeEffect is supported only for GLSurfaceView"); |
|
|
|
LOG.w("changeEffect", "changeEffect is supported only for GLSurfaceView"); |
|
|
|
} |
|
|
|
} |
|
|
|