diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d249d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +*.iml +.gradle +/local.properties +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +.DS_Store +/build +/captures +.externalNativeBuild +.adea/* +app/build/* +.idea/* +*.iml + +views/.idea/* +views/gradle/* +views/build/* +views/gradlew +views/gradlew.bat +views/local.properties diff --git a/ScratchView.iml b/ScratchView.iml index 37cbb99..c638c0e 100644 --- a/ScratchView.iml +++ b/ScratchView.iml @@ -1,5 +1,5 @@ - + diff --git a/app/app.iml b/app/app.iml index 79b4a59..298e0b9 100644 --- a/app/app.iml +++ b/app/app.iml @@ -1,5 +1,5 @@ - + @@ -9,13 +9,9 @@ - + - + + + + - + + + + + + + + + + + + + + + - + - + + + + + + + + + + - - - - - - - - + + + + + + + - + + + + + + - + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 273aa5f..d3b2d71 100644 --- a/app/build.gradle +++ b/app/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.cooltechworks.scratchview.demo" - minSdkVersion 9 - targetSdkVersion 23 + minSdkVersion 14 + targetSdkVersion 27 versionCode 1 versionName "1.0" } @@ -20,11 +20,11 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:23.2.1' - compile project(':views') - compile 'com.android.support:appcompat-v7:23.2.1' - compile 'com.android.support:cardview-v7:23.2.1' - compile 'com.android.support:design:23.2.1' + implementation fileTree(dir: 'libs', include: ['*.jar']) + testImplementation 'junit:junit:4.12' + implementation 'com.android.support:appcompat-v7:27.1.1' + implementation project(':views') + implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'com.android.support:cardview-v7:27.1.1' + implementation 'com.android.support:design:27.1.1' } diff --git a/app/src/main/java/com/cooltechworks/scratchview/demo/DemoClothingActivity.java b/app/src/main/java/com/cooltechworks/scratchview/demo/DemoClothingActivity.java index 4f0f2f5..9c908af 100644 --- a/app/src/main/java/com/cooltechworks/scratchview/demo/DemoClothingActivity.java +++ b/app/src/main/java/com/cooltechworks/scratchview/demo/DemoClothingActivity.java @@ -18,6 +18,7 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.util.Log; import android.view.View; import android.widget.TextView; @@ -49,6 +50,7 @@ public void onRevealed(ScratchTextView tv) { @Override public void onRevealPercentChangedListener(ScratchTextView stv, float percent) { // on percent reveal. + Log.i("Percentage", String.valueOf(percent)); } }); } diff --git a/build.gradle b/build.gradle index e0b366a..cb8e282 100644 --- a/build.gradle +++ b/build.gradle @@ -3,18 +3,18 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:1.5.0' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files + classpath 'com.android.tools.build:gradle:3.1.2' + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' } } allprojects { repositories { jcenter() + google() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f23df6e..74e9a0e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Oct 21 11:34:03 PDT 2015 +#Mon May 14 20:40:28 CEST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/views/build.gradle b/views/build.gradle index 02dd186..8c2804a 100644 --- a/views/build.gradle +++ b/views/build.gradle @@ -1,12 +1,16 @@ apply plugin: 'com.android.library' +apply plugin: 'com.github.dcendents.android-maven' + +group='com.github.benobab' + android { - compileSdkVersion 23 - buildToolsVersion "23.0.2" + compileSdkVersion 27 + buildToolsVersion "27.0.3" defaultConfig { - minSdkVersion 9 - targetSdkVersion 23 + minSdkVersion 14 + targetSdkVersion 27 versionCode 1 versionName "1.0" } @@ -19,7 +23,7 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:23.2.1' -} + implementation fileTree(dir: 'libs', include: ['*.jar']) + testImplementation 'junit:junit:4.12' + implementation 'com.android.support:appcompat-v7:27.1.1' +} \ No newline at end of file diff --git a/views/src/main/java/com/cooltechworks/views/ScratchImageView.java b/views/src/main/java/com/cooltechworks/views/ScratchImageView.java index fe1ae05..26f34df 100644 --- a/views/src/main/java/com/cooltechworks/views/ScratchImageView.java +++ b/views/src/main/java/com/cooltechworks/views/ScratchImageView.java @@ -32,10 +32,10 @@ import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.support.v4.content.ContextCompat; +import android.support.v7.widget.AppCompatImageView; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; -import android.widget.ImageView; import com.cooltechworks.utils.BitmapUtils; @@ -43,12 +43,12 @@ /** * Created by Harish on 25/03/16. */ -public class ScratchImageView extends ImageView { +public class ScratchImageView extends AppCompatImageView { public interface IRevealListener { - public void onRevealed(ScratchImageView iv); - public void onRevealPercentChangedListener(ScratchImageView siv, float percent); + void onRevealed(ScratchImageView iv); + void onRevealPercentChangedListener(ScratchImageView siv, float percent); } public static final float STROKE_WIDTH = 12f; @@ -158,7 +158,7 @@ private void init() { mErasePath = new Path(); mBitmapPaint = new Paint(Paint.DITHER_FLAG); - Bitmap scratchBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_scratch_pattern); + Bitmap scratchBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.gold); mDrawable = new BitmapDrawable(getResources(), scratchBitmap); mDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); @@ -379,6 +379,8 @@ public void onPostExecute(Float percentRevealed) { } } + + public int[] getImageBounds() { int paddingLeft = getPaddingLeft(); diff --git a/views/src/main/java/com/cooltechworks/views/ScratchTextView.java b/views/src/main/java/com/cooltechworks/views/ScratchTextView.java index 27f7769..e26cef0 100644 --- a/views/src/main/java/com/cooltechworks/views/ScratchTextView.java +++ b/views/src/main/java/com/cooltechworks/views/ScratchTextView.java @@ -31,23 +31,23 @@ import android.graphics.drawable.BitmapDrawable; import android.os.AsyncTask; import android.support.v4.content.ContextCompat; +import android.support.v7.widget.AppCompatTextView; import android.text.TextPaint; import android.util.AttributeSet; import android.view.Gravity; import android.view.MotionEvent; -import android.widget.TextView; import com.cooltechworks.utils.BitmapUtils; /** * Created by Harish on 25/03/16. */ -public class ScratchTextView extends TextView { +public class ScratchTextView extends AppCompatTextView { public interface IRevealListener { - public void onRevealed(ScratchTextView tv); - public void onRevealPercentChangedListener(ScratchTextView stv, float percent); + void onRevealed(ScratchTextView tv); + void onRevealPercentChangedListener(ScratchTextView stv, float percent); } public static final float STROKE_WIDTH = 12f; @@ -162,7 +162,7 @@ private void init() { mBitmapPaint = new Paint(Paint.DITHER_FLAG); - Bitmap scratchBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_scratch_pattern); + Bitmap scratchBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.gold); mDrawable = new BitmapDrawable(getResources(), scratchBitmap); mDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); @@ -198,6 +198,9 @@ protected void onDraw(Canvas canvas) { } private void touch_start(float x, float y) { + + checkRevealed(); + mErasePath.reset(); mErasePath.moveTo(x, y); mX = x; @@ -207,6 +210,8 @@ private void touch_start(float x, float y) { private void touch_move(float x, float y) { + checkRevealed(); + float dx = Math.abs(x - mX); float dy = Math.abs(y - mY); if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) { @@ -415,13 +420,11 @@ private int[] getTextBounds(float scale) { int gravity = getGravity(); - - //todo Gravity.START - if((gravity & Gravity.LEFT) == Gravity.LEFT) { + if((gravity & Gravity.START) == Gravity.START) { left = paddingLeft; } - //todo Gravity.END - else if((gravity & Gravity.RIGHT) == Gravity.RIGHT) { + + else if((gravity & Gravity.END) == Gravity.END) { left = (vwidth - paddingRight) - width; } else if((gravity & Gravity.CENTER_HORIZONTAL) == Gravity.CENTER_HORIZONTAL) { diff --git a/views/src/main/res/drawable/gold.png b/views/src/main/res/drawable/gold.png new file mode 100644 index 0000000..0a20a98 Binary files /dev/null and b/views/src/main/res/drawable/gold.png differ diff --git a/views/views.iml b/views/views.iml index c106ff9..71f23e1 100644 --- a/views/views.iml +++ b/views/views.iml @@ -1,5 +1,5 @@ - + @@ -9,13 +9,9 @@ - + - + + + + - + + + + + + + + + + + + + + + - + + + + + + + + - - - - - + + + - + + - + + + + + + - + - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file