diff --git a/build.gradle b/build.gradle index 4af2ce7..e669dcb 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'com.jfrog.bintray' buildscript { + ext.kotlin_version = '1.0.3' repositories { jcenter() } @@ -9,6 +10,7 @@ buildscript { classpath 'com.android.tools.build:gradle:2.0.0' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/magic/build.gradle b/magic/build.gradle index eb0bfbd..c3cd0f9 100644 --- a/magic/build.gradle +++ b/magic/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' apply plugin: "maven-publish" apply plugin: 'com.jfrog.bintray' apply plugin: 'com.github.dcendents.android-maven' @@ -23,6 +24,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } } install { @@ -105,4 +109,8 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' + compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" +} +repositories { + mavenCentral() } diff --git a/magic/src/main/java/br/com/bloder/magic/Magic.java b/magic/src/main/java/br/com/bloder/magic/Magic.java deleted file mode 100644 index 37627c7..0000000 --- a/magic/src/main/java/br/com/bloder/magic/Magic.java +++ /dev/null @@ -1,17 +0,0 @@ -package br.com.bloder.magic; - -import android.view.View; - -import br.com.bloder.magic.internal.MagicAnimation; - -/** - * Created by bloder on 28/07/16. - */ -public class Magic { - - public void doWith(View button) { - MagicAnimation animator = new MagicAnimation(button); - animator.setDuration(200); - button.startAnimation(animator); - } -} diff --git a/magic/src/main/java/br/com/bloder/magic/Magic.kt b/magic/src/main/java/br/com/bloder/magic/Magic.kt new file mode 100644 index 0000000..9597133 --- /dev/null +++ b/magic/src/main/java/br/com/bloder/magic/Magic.kt @@ -0,0 +1,14 @@ +package br.com.bloder.magic + +import android.view.View +import br.com.bloder.magic.internal.MagicAnimation + +/** + * Created by bloder on 20/09/16. + */ +fun doWith(view : View) { + var animation : MagicAnimation + animation = MagicAnimation(view) + animation.duration = 200 + view.startAnimation(animation) +} \ No newline at end of file diff --git a/magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.java b/magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.java deleted file mode 100644 index 523acd1..0000000 --- a/magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.java +++ /dev/null @@ -1,28 +0,0 @@ -package br.com.bloder.magic.internal; - -import android.view.View; -import android.view.animation.Animation; -import android.view.animation.Transformation; - -/** - * Created by bloder on 28/07/16. - */ -public class MagicAnimation extends Animation { - - private int toWidth; - private int startWidth; - private View view; - - public MagicAnimation(View view) { - this.view = view; - this.startWidth = this.view.getWidth(); - this.toWidth = startWidth == view.getHeight() ? startWidth * 4 : view.getHeight(); - } - - @Override - protected void applyTransformation(float interpolatedTime, Transformation t) { - final int newWidth = startWidth + (int) ((toWidth - startWidth) * interpolatedTime); - view.getLayoutParams().width = newWidth; - view.requestLayout(); - } -} diff --git a/magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.kt b/magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.kt new file mode 100644 index 0000000..99879c4 --- /dev/null +++ b/magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.kt @@ -0,0 +1,21 @@ +package br.com.bloder.magic.internal + +import android.view.View +import android.view.animation.Animation +import android.view.animation.Transformation + +/** + * Created by bloder on 20/09/16. + */ +class MagicAnimation(view : View) : Animation() { + + private var view : View? = view + private val startWidth : Int = view.width + private val toWidth : Int = if (startWidth == view.height) startWidth * 4 else view.height + + override fun applyTransformation(interpolatedTime: Float, t: Transformation?) { + val newWidth : Int = startWidth + ((toWidth - startWidth) * interpolatedTime).toInt() + view?.layoutParams?.width = newWidth + view?.requestLayout() + } +} \ No newline at end of file diff --git a/magic/src/main/java/br/com/bloder/magic/view/MagicButton.java b/magic/src/main/java/br/com/bloder/magic/view/MagicButton.java index b042ef4..dcc46bb 100644 --- a/magic/src/main/java/br/com/bloder/magic/view/MagicButton.java +++ b/magic/src/main/java/br/com/bloder/magic/view/MagicButton.java @@ -13,7 +13,7 @@ import android.widget.LinearLayout; import android.widget.TextView; -import br.com.bloder.magic.Magic; +import br.com.bloder.magic.MagicKt; import br.com.bloder.magic.R; /** @@ -98,7 +98,7 @@ public void onClick(View v) { text.setVisibility(GONE); if(onClickListener != null) onClickListener.onClick(button); } - new Magic().doWith(v); + MagicKt.doWith(v); } }); }