diff --git a/.travis.yml b/.travis.yml index 7fe9630e..16e359ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,23 +1,28 @@ language: android +sudo: required +jdk: oraclejdk8 env: global: - GRADLE_OPTS=-Xmx512m + - ANDROID_API_LEVEL=28 + - ANDROID_BUILD_TOOLS_VERSION=28.0.3 + - ANDROID_ABI=armeabi-v7a android: components: - tools - - build-tools-27.0.3 - - android-27 + - platform-tools + - tools - extra-android-m2repository licenses: + - 'android-sdk-preview-license-52d11cd2' - 'android-sdk-license-.+' + - 'google-gdk-license-.+' before_install: - yes | sdkmanager "platforms;android-28" - -jdk: - - oraclejdk8 + - yes | sdkmanager "build-tools;28.0.3" script: - ./gradlew assemble anvil:check --stacktrace diff --git a/anvil-appcompat-v7/build.gradle b/anvil-appcompat-v7/build.gradle index 2baf589b..f6ce6d4e 100644 --- a/anvil-appcompat-v7/build.gradle +++ b/anvil-appcompat-v7/build.gradle @@ -1,10 +1,3 @@ -buildscript { - dependencies { - classpath "com.android.tools.build:gradle:$agp_version" - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' - } -} - apply plugin: 'com.android.library' apply plugin: 'trikita.anvilgen' apply from: "$rootProject.projectDir/copyDeps.gradle" @@ -21,7 +14,7 @@ android { minSdkVersion 15 targetSdkVersion 27 - missingDimensionStrategy 'api', 'sdk15' + missingDimensionStrategy 'api', 'sdk21' } lintOptions { diff --git a/anvil-cardview-v7/build.gradle b/anvil-cardview-v7/build.gradle index f2fb2e99..88cbc5b3 100644 --- a/anvil-cardview-v7/build.gradle +++ b/anvil-cardview-v7/build.gradle @@ -1,10 +1,3 @@ -buildscript { - dependencies { - classpath "com.android.tools.build:gradle:$agp_version" - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' - } -} - apply plugin: 'com.android.library' apply plugin: 'trikita.anvilgen' apply from: "$rootProject.projectDir/copyDeps.gradle" diff --git a/anvil-design/build.gradle b/anvil-design/build.gradle index 44307421..6fff43b7 100644 --- a/anvil-design/build.gradle +++ b/anvil-design/build.gradle @@ -1,10 +1,3 @@ -buildscript { - dependencies { - classpath "com.android.tools.build:gradle:$agp_version" - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' - } -} - apply plugin: 'com.android.library' apply plugin: 'trikita.anvilgen' apply from: "$rootProject.projectDir/copyDeps.gradle" diff --git a/anvil-gridlayout-v7/build.gradle b/anvil-gridlayout-v7/build.gradle index cc93c68b..9f72e020 100644 --- a/anvil-gridlayout-v7/build.gradle +++ b/anvil-gridlayout-v7/build.gradle @@ -1,10 +1,3 @@ -buildscript { - dependencies { - classpath "com.android.tools.build:gradle:$agp_version" - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' - } -} - apply plugin: 'com.android.library' apply plugin: 'trikita.anvilgen' apply from: "$rootProject.projectDir/copyDeps.gradle" diff --git a/anvil-recyclerview-v7/build.gradle b/anvil-recyclerview-v7/build.gradle index ffd2f244..0bdce50e 100644 --- a/anvil-recyclerview-v7/build.gradle +++ b/anvil-recyclerview-v7/build.gradle @@ -1,10 +1,3 @@ -buildscript { - dependencies { - classpath "com.android.tools.build:gradle:$agp_version" - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' - } -} - apply plugin: 'com.android.library' apply plugin: 'trikita.anvilgen' apply from: "$rootProject.projectDir/copyDeps.gradle" diff --git a/anvil-support-v4/build.gradle b/anvil-support-v4/build.gradle index 6be521ca..3481fd15 100644 --- a/anvil-support-v4/build.gradle +++ b/anvil-support-v4/build.gradle @@ -1,10 +1,3 @@ -buildscript { - dependencies { - classpath "com.android.tools.build:gradle:$agp_version" - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' - } -} - apply plugin: 'com.android.library' apply plugin: 'trikita.anvilgen' apply from: "$rootProject.projectDir/copyDeps.gradle" @@ -21,7 +14,7 @@ android { minSdkVersion 15 targetSdkVersion 27 - missingDimensionStrategy 'api', 'sdk15' + missingDimensionStrategy 'api', 'sdk21' } lintOptions { diff --git a/anvil/build.gradle b/anvil/build.gradle index 9bec96bb..63fad4fb 100644 --- a/anvil/build.gradle +++ b/anvil/build.gradle @@ -1,10 +1,3 @@ -buildscript { - dependencies { - classpath "com.android.tools.build:gradle:$agp_version" - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' - } -} - apply plugin: 'com.android.library' apply plugin: 'trikita.anvilgen' diff --git a/build.gradle b/build.gradle index 28632606..df9b7b23 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,15 @@ +buildscript { + dependencies { + classpath "com.android.tools.build:gradle:3.3.2" + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.5' + } + + repositories { + google() + jcenter() + } +} + subprojects { ext { mockito_version = '2.23.0' @@ -6,6 +18,11 @@ subprojects { } buildscript { + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31" + classpath "com.android.tools.build:gradle:$agp_version" + } + repositories { google() jcenter() diff --git a/sample/.gitignore b/sample/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/sample/.gitignore @@ -0,0 +1 @@ +/build diff --git a/sample/build.gradle b/sample/build.gradle new file mode 100644 index 00000000..080e2323 --- /dev/null +++ b/sample/build.gradle @@ -0,0 +1,40 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 27 + + defaultConfig { + applicationId "trikita.anvil.sample" + minSdkVersion 21 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + + missingDimensionStrategy 'api', 'sdk21' + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31" + implementation "com.android.support:appcompat-v7:27.1.1" + implementation project(":anvil") + implementation project(":anvil-support-v4") + implementation project(":anvil-appcompat-v7") + + + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' +} diff --git a/sample/proguard-rules.pro b/sample/proguard-rules.pro new file mode 100644 index 00000000..f1b42451 --- /dev/null +++ b/sample/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml new file mode 100644 index 00000000..466103a6 --- /dev/null +++ b/sample/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sample/src/main/java/trikita/anvil/sample/MainActivity.kt b/sample/src/main/java/trikita/anvil/sample/MainActivity.kt new file mode 100644 index 00000000..da53854e --- /dev/null +++ b/sample/src/main/java/trikita/anvil/sample/MainActivity.kt @@ -0,0 +1,56 @@ +package trikita.anvil.sample + +import android.os.Bundle +import android.support.v7.app.AppCompatActivity +import android.widget.LinearLayout +import trikita.anvil.BaseDSL.MATCH +import trikita.anvil.BaseDSL.WRAP +import trikita.anvil.BaseDSL.dip +import trikita.anvil.BaseDSL.padding +import trikita.anvil.BaseDSL.size +import trikita.anvil.DSL.button +import trikita.anvil.DSL.frameLayout +import trikita.anvil.DSL.linearLayout +import trikita.anvil.DSL.onClick +import trikita.anvil.DSL.orientation +import trikita.anvil.DSL.text +import trikita.anvil.DSL.textView +import trikita.anvil.RenderableView + + +class MainActivity : AppCompatActivity() { + + var ticktock = 0 + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(object : RenderableView(this) { + override fun view() { + linearLayout { + size(MATCH, MATCH) + padding(dip(8)) + orientation(LinearLayout.VERTICAL) + + textView { + size(MATCH, WRAP) + text("Tick-tock: $ticktock") + } + + frameLayout { + size(MATCH, WRAP) + + button { + size(WRAP, WRAP) + text("Tick") + onClick { v -> + ticktock++ + } + } + } + + } + } + }) + } + +} diff --git a/sample/src/main/res/drawable-v24/ic_launcher_foreground.xml b/sample/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 00000000..1f6bb290 --- /dev/null +++ b/sample/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/sample/src/main/res/drawable/ic_launcher_background.xml b/sample/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000..0d025f9b --- /dev/null +++ b/sample/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..eca70cfe --- /dev/null +++ b/sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..eca70cfe --- /dev/null +++ b/sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/sample/src/main/res/mipmap-hdpi/ic_launcher.png b/sample/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 00000000..898f3ed5 Binary files /dev/null and b/sample/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/sample/src/main/res/mipmap-hdpi/ic_launcher_round.png b/sample/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 00000000..dffca360 Binary files /dev/null and b/sample/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/sample/src/main/res/mipmap-mdpi/ic_launcher.png b/sample/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 00000000..64ba76f7 Binary files /dev/null and b/sample/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/sample/src/main/res/mipmap-mdpi/ic_launcher_round.png b/sample/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 00000000..dae5e082 Binary files /dev/null and b/sample/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/sample/src/main/res/mipmap-xhdpi/ic_launcher.png b/sample/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 00000000..e5ed4659 Binary files /dev/null and b/sample/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 00000000..14ed0af3 Binary files /dev/null and b/sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png b/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 00000000..b0907cac Binary files /dev/null and b/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 00000000..d8ae0315 Binary files /dev/null and b/sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 00000000..2c18de9e Binary files /dev/null and b/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 00000000..beed3cdd Binary files /dev/null and b/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/sample/src/main/res/values/colors.xml b/sample/src/main/res/values/colors.xml new file mode 100644 index 00000000..34e9269d --- /dev/null +++ b/sample/src/main/res/values/colors.xml @@ -0,0 +1,8 @@ + + + #008577 + #00574B + #D81B60 + #ffffff + #000000 + diff --git a/sample/src/main/res/values/strings.xml b/sample/src/main/res/values/strings.xml new file mode 100644 index 00000000..cbdb06fa --- /dev/null +++ b/sample/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Anvil Sample + diff --git a/sample/src/main/res/values/styles.xml b/sample/src/main/res/values/styles.xml new file mode 100644 index 00000000..5885930d --- /dev/null +++ b/sample/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/settings.gradle b/settings.gradle index 9c28a352..fb64f53a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,4 +5,5 @@ include 'anvil-cardview-v7' include 'anvil-gridlayout-v7' include 'anvil-design' include 'anvil-recyclerview-v7' +include ':sample'