Skip to content

Commit

Permalink
添加kotlin与java混合开发支持;MotionLayout动作布局练习Demo
Browse files Browse the repository at this point in the history
  • Loading branch information
wosojadfjgo committed Aug 23, 2019
1 parent 2812b98 commit 56bd0e4
Show file tree
Hide file tree
Showing 17 changed files with 428 additions and 35 deletions.
16 changes: 12 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
apply plugin: 'com.android.application'
apply plugin: 'walle'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion versions.compileSdk
Expand All @@ -13,11 +16,16 @@ android {
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [AROUTER_MODULE_NAME: project.getName()]
// }
// }
}

signingConfigs {
Expand Down Expand Up @@ -82,7 +90,7 @@ dependencies {
//美团walle打包
implementation "com.meituan.android.walle:library:${versions.walle}"
//Arouter路由
annotationProcessor "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
kapt "com.alibaba:arouter-compiler:${versions.arouterCompiler}"

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
Expand Down
21 changes: 17 additions & 4 deletions base/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion versions.compileSdk
Expand All @@ -10,11 +13,16 @@ android {
versionName versions.publishVersion

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [AROUTER_MODULE_NAME: project.getName()]
// }
// }
}

signingConfigs {
Expand Down Expand Up @@ -60,11 +68,15 @@ dependencies {
api "com.android.support:design:${versions.supportVersion}"
api "androidx.appcompat:appcompat:${versions.androidx}"
api "androidx.constraintlayout:constraintlayout:${versions.constraintLayout}"
//kotlin支持
api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlinVersion}"
api "androidx.core:core-ktx:${versions.coreKtx}"
//管理Fragment和Activity
api "me.yokeyword:fragmentationx:${versions.fragmentationx}"
//Arouter路由
api "com.alibaba:arouter-annotation:${versions.arouterAnnotation}"
api "com.alibaba:arouter-api:${versions.arouterApi}"
annotationProcessor "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
kapt "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
//解决dex超出方法数限制的问题
api "com.android.support:multidex:${versions.multidex}"
//工具类
Expand All @@ -82,6 +94,7 @@ dependencies {
api "com.github.bumptech.glide:glide:${versions.glide}"
annotationProcessor "androidx.annotation:annotation:${versions.androidxAnnotation}"
annotationProcessor "com.github.bumptech.glide:compiler:${versions.glide}"
kapt "com.github.bumptech.glide:compiler:${versions.glide}"
//状态栏管理
api "com.gyf.immersionbar:immersionbar:${versions.immersionbar}"
api "com.gyf.immersionbar:immersionbar-components:${versions.immersionbar}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public class ConfigConstants {
public static final String PATH_MAIN = "/main/activity";
public static final String PATH_HOME_PROVIDER = "/home/main/service";
//user模块路由路径
public static final String PATH_KOTLIN = "/user/kotlin";
public static final String PATH_LOGIN = "/user/login";
public static final String PATH_USER = "/user/activity";
public static final String PATH_USER_PROVIDER = "/user/main/service";
Expand Down
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ buildscript {
classpath 'com.android.tools.build:gradle:' + versions.gradlePlugin
classpath 'com.meituan.android.walle:plugin:' + versions.walle
classpath 'com.alibaba:arouter-register:' + versions.arouterRegister
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:" + versions.kotlinVersion

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
3 changes: 3 additions & 0 deletions config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ ext {

//Plugins
gradlePlugin : '3.4.1',
kotlinVersion : '1.3.50',
coreKtx : '1.0.2',

//Library
androidx : '1.1.0-rc01',
Expand All @@ -23,6 +25,7 @@ ext {
multidex : '1.0.3',
walle : '1.1.6',
arouterApi : '1.5.0',
arouterAnnotation : '1.0.6',
arouterCompiler : '1.2.2',
arouterRegister : '1.0.2',
retrofit : '2.6.1',
Expand Down
17 changes: 13 additions & 4 deletions main/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ if (rootProject.ext.isRunAloneHome) {
} else {
apply plugin: 'com.android.library'
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion versions.compileSdk

Expand All @@ -16,11 +20,16 @@ android {
versionName versions.publishVersion

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [AROUTER_MODULE_NAME: project.getName()]
// }
// }
}

signingConfigs {
Expand Down Expand Up @@ -82,7 +91,7 @@ dependencies {
implementation project(':base')
implementation project(':network')
//Arouter路由
annotationProcessor "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
kapt "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
implementation "com.aurelhubert:ahbottomnavigation:${versions.ahbottomnavigation}"

testImplementation 'junit:junit:4.12'
Expand Down
17 changes: 12 additions & 5 deletions module/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ if (rootProject.ext.isRunAloneModule) {
} else {
apply plugin: 'com.android.library'
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion versions.compileSdk
Expand All @@ -17,12 +20,16 @@ android {
versionName versions.publishVersion

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [AROUTER_MODULE_NAME: project.getName()]
// }
// }
}

signingConfigs {
Expand Down Expand Up @@ -85,7 +92,7 @@ dependencies {
implementation project(':base')
implementation project(':network')
//Arouter路由
annotationProcessor "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
kapt "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
//视频框架
implementation "cn.jzvd:jiaozivideoplayer:${versions.jiaozivideoplayer}"

Expand Down
17 changes: 12 additions & 5 deletions module2/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ if (rootProject.ext.isRunAloneModule2) {
} else {
apply plugin: 'com.android.library'
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion versions.compileSdk
Expand All @@ -17,12 +20,16 @@ android {
versionName versions.publishVersion

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [AROUTER_MODULE_NAME: project.getName()]
// }
// }
}

signingConfigs {
Expand Down Expand Up @@ -84,7 +91,7 @@ dependencies {
implementation project(':base')
implementation project(':network')
//Arouter路由
annotationProcessor "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
kapt "com.alibaba:arouter-compiler:${versions.arouterCompiler}"

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
Expand Down
3 changes: 3 additions & 0 deletions network/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion versions.compileSdk
Expand Down
17 changes: 12 additions & 5 deletions user/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ if (rootProject.ext.isRunAloneUser) {
} else {
apply plugin: 'com.android.library'
}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
compileSdkVersion versions.compileSdk
Expand All @@ -17,12 +20,16 @@ android {
versionName versions.publishVersion

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [AROUTER_MODULE_NAME: project.getName()]
// }
// }
}

signingConfigs {
Expand Down Expand Up @@ -85,7 +92,7 @@ dependencies {
implementation project(':base')
implementation project(':network')
//Arouter路由
annotationProcessor "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
kapt "com.alibaba:arouter-compiler:${versions.arouterCompiler}"
//3D球形控件
implementation "com.moxun:tagcloudlib:${versions.tagcloudlib}"

Expand Down
5 changes: 4 additions & 1 deletion user/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@
<application>
<activity
android:name=".UserActivity"
android:theme="@style/BaseAppTheme"></activity>
android:theme="@style/BaseAppTheme" />
<activity
android:name=".LoginActivity"
android:theme="@style/BaseAppTheme" />
<activity
android:name=".KotlinActivity"
android:theme="@style/BaseAppTheme" />
</application>

</manifest>
3 changes: 3 additions & 0 deletions user/src/main/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
<activity
android:name=".LoginActivity"
android:theme="@style/BaseAppTheme" />
<activity
android:name=".KotlinActivity"
android:theme="@style/BaseAppTheme" />
</application>

</manifest>
52 changes: 52 additions & 0 deletions user/src/main/java/com/heyongrui/user/KotlinActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.heyongrui.user

import android.os.Bundle
import android.view.View
import android.widget.ImageView
import com.alibaba.android.arouter.facade.annotation.Route
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.request.RequestOptions
import com.heyongrui.base.assist.ConfigConstants
import com.heyongrui.base.base.BaseActivity
import com.heyongrui.base.base.BasePresenter
import com.heyongrui.base.base.BaseView
import com.heyongrui.base.glide.GlideApp
import kotlinx.android.synthetic.main.activity_kotlin.*

@Route(path = ConfigConstants.PATH_KOTLIN)
class KotlinActivity<T : BasePresenter<out BaseView<*>>?> : BaseActivity<T>(), View.OnClickListener {

var currentState = -1;

override fun getLayoutId(): Int {
return R.layout.activity_kotlin;
}

override fun init(savedInstanceState: Bundle?) {
bg.setOnClickListener(this);
iv.loadCircle("https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2551393832.jpg")
iv2.loadCircle("https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2563780504.jpg")
}

fun ImageView.loadCircle(resource: Any) {
val options = RequestOptions()
.dontAnimate()
.fitCenter()
.circleCrop()
.diskCacheStrategy(DiskCacheStrategy.NONE)
GlideApp.with(this).load(resource).apply(options).into(this)
}

override fun onClick(view: View?) {
val id = view?.id;
if (id == R.id.bg) {
if (-1 == currentState) {
motionLayout.transitionToEnd();
currentState = 1;
} else if (1 == currentState) {
motionLayout.transitionToStart();
currentState = -1;
}
}
}
}
13 changes: 7 additions & 6 deletions user/src/main/java/com/heyongrui/user/UserFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,13 @@ protected void initView(Bundle savedInstanceState) {
public void onClick(View view) {
int id = view.getId();
if (id == R.id.tv_user) {
Bundle bundle = new Bundle();
bundle.putString("test", "this is value");
ARouter.getInstance().build(ConfigConstants.PATH_USER)
.withBundle("bundle", bundle)
.withString("key3", "888")
.navigation();
// Bundle bundle = new Bundle();
// bundle.putString("test", "this is value");
// ARouter.getInstance().build(ConfigConstants.PATH_USER)
// .withBundle("bundle", bundle)
// .withString("key3", "888")
// .navigation();
ARouter.getInstance().build(ConfigConstants.PATH_KOTLIN).navigation();
}
}
}, R.id.tv_user);
Expand Down
Loading

0 comments on commit 56bd0e4

Please sign in to comment.