From db443b935b06dd0d880371347decab24fb729adf Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 20 Sep 2016 21:43:25 -0300 Subject: [PATCH 1/6] Add kotlin class path to gradle file --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) 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 From 77d590d273f9fd4b689967e8a269c0e733d50d51 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 20 Sep 2016 21:44:07 -0300 Subject: [PATCH 2/6] Add kotlin to app gradle file --- magic/build.gradle | 8 ++++++++ 1 file changed, 8 insertions(+) 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() } From 0348b5b7cc572d2cb78ea900a4f66b55728a17d8 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 20 Sep 2016 21:44:46 -0300 Subject: [PATCH 3/6] Create magic function module --- magic/src/main/java/br/com/bloder/magic/Magic.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 magic/src/main/java/br/com/bloder/magic/Magic.kt 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 From cf6b3d1a49b343e0e1122bf6c417f524c2fdcb73 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 20 Sep 2016 21:45:21 -0300 Subject: [PATCH 4/6] Create magic animation kotlin class --- .../bloder/magic/internal/MagicAnimation.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.kt 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 From a640976a0f4a5c018cc83fa9b5c326c2ffa7fb7d Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 20 Sep 2016 21:46:07 -0300 Subject: [PATCH 5/6] Call kotlin function in magic button view class --- magic/src/main/java/br/com/bloder/magic/view/MagicButton.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); } }); } From 9c08ece3cf406d6dbb210566464d53593e74734e Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 20 Sep 2016 21:47:17 -0300 Subject: [PATCH 6/6] Delete old java magic classes --- .../main/java/br/com/bloder/magic/Magic.java | 17 ----------- .../bloder/magic/internal/MagicAnimation.java | 28 ------------------- 2 files changed, 45 deletions(-) delete mode 100644 magic/src/main/java/br/com/bloder/magic/Magic.java delete mode 100644 magic/src/main/java/br/com/bloder/magic/internal/MagicAnimation.java 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/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(); - } -}