diff --git a/.gitignore b/.gitignore index 4d66147..08dd136 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,12 @@ /local.properties /.idea/workspace.xml /.idea/libraries +.idea/caches/ +.idea/codeStyles/ .DS_Store /build /captures +/*/.idea/ #google specific .git-gerrit diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index 3e02e60..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -ShaderCam \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 9a8b7e5..875366c 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,8 +1,6 @@ - diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf3..0000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 95b6912..1abcc9e 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,6 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 6a1e020..aa76059 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,18 +1,83 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27,17 +92,7 @@ - - - - - - - - - - - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 50ce2a2..a915c47 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,9 +2,9 @@ - - + + \ No newline at end of file diff --git a/ShaderCam.iml b/ShaderCam.iml index 65f2fbc..c815196 100644 --- a/ShaderCam.iml +++ b/ShaderCam.iml @@ -1,5 +1,5 @@ - + @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 0d7c488..c9443e0 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,10 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0-beta6' + classpath 'com.android.tools.build:gradle:3.1.0-beta1' classpath 'com.github.dcendents:android-maven-plugin:1.2' } } @@ -14,5 +15,6 @@ buildscript { allprojects { repositories { jcenter() + google() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5ef4a72..aad5fa5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/shadercam-example/build.gradle b/shadercam-example/build.gradle index e78d993..2a5a5ab 100644 --- a/shadercam-example/build.gradle +++ b/shadercam-example/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 23 - buildToolsVersion '23.0.2' + compileSdkVersion 27 + buildToolsVersion '27.0.3' defaultConfig { applicationId "com.androidexperiments.shadercam.example" minSdkVersion 21 - targetSdkVersion 23 + targetSdkVersion 27 versionCode 3 versionName "1.2" } @@ -21,11 +21,13 @@ android { abortOnError false } + dataBinding { + enabled = true + } } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile project(':shadercam') - compile 'com.android.support:appcompat-v7:23.2.0' //for theming - compile 'com.jakewharton:butterknife:6.1.0' //dependency injection + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation project(':shadercam') + implementation 'com.android.support:appcompat-v7:27.0.2' //for theming } diff --git a/shadercam-example/shadercam-example.iml b/shadercam-example/shadercam-example.iml index 54e184f..7c1f943 100644 --- a/shadercam-example/shadercam-example.iml +++ b/shadercam-example/shadercam-example.iml @@ -1,5 +1,5 @@ - + @@ -9,7 +9,6 @@ - + + + + - + - + + + + + + + + - + - + - + - - + - - - - + + + - - - - + - + - + + - + - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/MeetupActivity.java b/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/MeetupActivity.java index 4c5efd5..bf8dc0c 100644 --- a/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/MeetupActivity.java +++ b/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/MeetupActivity.java @@ -13,14 +13,11 @@ */ public class MeetupActivity extends SimpleShaderActivity implements SeekBar.OnSeekBarChangeListener { private SuperAwesomeRenderer mMyRenderer; - private SeekBar mSeekbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - mSeekbar = (SeekBar) findViewById(R.id.seek_bar); - mSeekbar.setOnSeekBarChangeListener(this); + mMainBinding.seekBar.setOnSeekBarChangeListener(this); } @Override diff --git a/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/SimpleShaderActivity.java b/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/SimpleShaderActivity.java index bfb6b15..292a72e 100644 --- a/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/SimpleShaderActivity.java +++ b/shadercam-example/src/main/java/com/androidexperiments/shadercam/example/SimpleShaderActivity.java @@ -1,6 +1,7 @@ package com.androidexperiments.shadercam.example; import android.Manifest; +import android.databinding.DataBindingUtil; import android.graphics.SurfaceTexture; import android.os.Bundle; import android.os.Environment; @@ -10,9 +11,9 @@ import android.view.MotionEvent; import android.view.TextureView; import android.view.View; -import android.widget.Button; import android.widget.Toast; +import com.androidexperiments.shadercam.example.databinding.MainBinding; import com.androidexperiments.shadercam.example.gl.ExampleRenderer; import com.androidexperiments.shadercam.fragments.CameraFragment; import com.androidexperiments.shadercam.fragments.PermissionsHelper; @@ -22,10 +23,6 @@ import java.io.File; import java.util.Arrays; -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; - /** * Written by Anthony Tripaldi * @@ -41,11 +38,7 @@ public class SimpleShaderActivity extends FragmentActivity implements CameraRend */ private static final String TEST_VIDEO_FILE_NAME = "test_video.mp4"; - /** - * We inject our views from our layout xml here using {@link ButterKnife} - */ - @InjectView(R.id.texture_view) TextureView mTextureView; - @InjectView(R.id.btn_record) Button mRecordBtn; + protected MainBinding mMainBinding; /** * Custom fragment used for encapsulating all the {@link android.hardware.camera2} apis. @@ -70,9 +63,7 @@ public class SimpleShaderActivity extends FragmentActivity implements CameraRend protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - ButterKnife.inject(this); + mMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); setupCameraFragment(); setupInteraction(); @@ -102,7 +93,7 @@ private void setupCameraFragment() mCameraFragment = CameraFragment.getInstance(); mCameraFragment.setCameraToUse(CameraFragment.CAMERA_PRIMARY); //pick which camera u want to use, we default to forward - mCameraFragment.setTextureView(mTextureView); + mCameraFragment.setTextureView(mMainBinding.textureView); //add fragment to our setup and let it work its magic FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); @@ -115,7 +106,7 @@ private void setupCameraFragment() * use in our shader to control color channels. */ private void setupInteraction() { - mTextureView.setOnTouchListener(new View.OnTouchListener() { + mMainBinding.textureView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(mRenderer instanceof ExampleRenderer) { @@ -173,10 +164,10 @@ protected void onResume() { mPermissionsSatisfied = true; //extra helper as callback sometimes isnt quick enough for future results } - if(!mTextureView.isAvailable()) - mTextureView.setSurfaceTextureListener(mTextureListener); //set listener to handle when its ready + if(!mMainBinding.textureView.isAvailable()) + mMainBinding.textureView.setSurfaceTextureListener(mTextureListener); //set listener to handle when its ready else - setReady(mTextureView.getSurfaceTexture(), mTextureView.getWidth(), mTextureView.getHeight()); + setReady(mMainBinding.textureView.getSurfaceTexture(), mMainBinding.textureView.getWidth(), mMainBinding.textureView.getHeight()); } @Override @@ -184,15 +175,11 @@ protected void onPause() { super.onPause(); shutdownCamera(false); - mTextureView.setSurfaceTextureListener(null); + mMainBinding.textureView.setSurfaceTextureListener(null); } - /** - * {@link ButterKnife} uses annotations to make setting {@link android.view.View.OnClickListener}'s - * easier than ever with the {@link OnClick} annotation. - */ - @OnClick(R.id.btn_record) - public void onClickRecord() + + public void onClickRecord(View v) { if(mRenderer.isRecording()) stopRecording(); @@ -200,8 +187,7 @@ public void onClickRecord() startRecording(); } - @OnClick(R.id.btn_swap_camera) - public void onClickSwapCamera() + public void onClickSwapCamera(View v) { mCameraFragment.swapCamera(); } @@ -234,13 +220,13 @@ protected CameraRenderer getRenderer(SurfaceTexture surface, int width, int heig private void startRecording() { mRenderer.startRecording(getVideoFile()); - mRecordBtn.setText("Stop"); + mMainBinding.btnRecord.setText("Stop"); } private void stopRecording() { mRenderer.stopRecording(); - mRecordBtn.setText("Record"); + mMainBinding.btnRecord.setText("Record"); //restart so surface is recreated shutdownCamera(true); @@ -298,7 +284,7 @@ public void onRendererFinished() { @Override public void run() { if (mRestartCamera) { - setReady(mTextureView.getSurfaceTexture(), mTextureView.getWidth(), mTextureView.getHeight()); + setReady(mMainBinding.textureView.getSurfaceTexture(), mMainBinding.textureView.getWidth(), mMainBinding.textureView.getHeight()); mRestartCamera = false; } } diff --git a/shadercam-example/src/main/res/layout/activity_main.xml b/shadercam-example/src/main/res/layout/activity_main.xml index e773056..c20d1ed 100644 --- a/shadercam-example/src/main/res/layout/activity_main.xml +++ b/shadercam-example/src/main/res/layout/activity_main.xml @@ -1,40 +1,47 @@ - + - - + + + android:layout_height="match_parent" + tools:context=".SimpleShaderActivity"> -