From ee456af51b95d929feb136b5c3a849ea546d3b75 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 03:50:47 +0200 Subject: [PATCH 1/9] gradle wrapper updated to 5.4.1 --- BasicSample/gradle/wrapper/gradle-wrapper.properties | 2 +- TwoWaySample/gradle/wrapper/gradle-wrapper.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/BasicSample/gradle/wrapper/gradle-wrapper.properties b/BasicSample/gradle/wrapper/gradle-wrapper.properties index 76ad7e3..2ff738a 100644 --- a/BasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/BasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip diff --git a/TwoWaySample/gradle/wrapper/gradle-wrapper.properties b/TwoWaySample/gradle/wrapper/gradle-wrapper.properties index 1d894de..bf38027 100644 --- a/TwoWaySample/gradle/wrapper/gradle-wrapper.properties +++ b/TwoWaySample/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Mar 29 14:34:40 CET 2019 +#Fri Oct 25 03:39:52 CEST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip From c8522a53fb723481e4a636a8d636b39dd8411b80 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 03:51:36 +0200 Subject: [PATCH 2/9] directory .idea ignored. --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85e7c1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea/ From ef13a63078b8a5c79b7bc1858aed38024bb41a38 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 03:52:26 +0200 Subject: [PATCH 3/9] added attribute formatted="false" to format string. --- TwoWaySample/app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TwoWaySample/app/src/main/res/values/strings.xml b/TwoWaySample/app/src/main/res/values/strings.xml index c72f5e0..a7c408f 100644 --- a/TwoWaySample/app/src/main/res/values/strings.xml +++ b/TwoWaySample/app/src/main/res/values/strings.xml @@ -21,7 +21,7 @@ Pause - + - Sets: %d/%d + Sets: %d/%d SHARED_PREFS_TIMEPERWORKSET SHARED_PREFS_TIMEPERRESTSET SHARED_PREFS_NUMBEROFSETS From d6969cc0b4bf9d0c447fa8e40ef51cc366e3ea20 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 03:52:49 +0200 Subject: [PATCH 4/9] versions updated. --- BasicSample/build.gradle | 15 ++++++--------- TwoWaySample/app/build.gradle | 1 - TwoWaySample/build.gradle | 12 ++++++------ 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/BasicSample/build.gradle b/BasicSample/build.gradle index 54b379a..5fa3718 100644 --- a/BasicSample/build.gradle +++ b/BasicSample/build.gradle @@ -17,23 +17,20 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.21' + ext.kotlin_version = '1.3.50' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.2' + classpath 'com.android.tools.build:gradle:3.5.1' 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 } ext { // SDK and tools - compileSdkVersion = 28 + compileSdkVersion = 29 minSdkVersion = 21 - targetSdkVersion = 28 + targetSdkVersion = 29 // App dependencies androidXTestVersion = '1.1.1' @@ -45,9 +42,9 @@ buildscript { kotlinVersion = '1.3.21' runnerExtVersion = '1.1.0' rulesVersion = '1.0.1' - appCompatVersion = '1.0.2' + appCompatVersion = '1.1.0' supportLibraryVersion = '1.0.2' - archLifecycleVersion = '2.1.0-alpha03' + archLifecycleVersion = '2.2.0-rc01' } } diff --git a/TwoWaySample/app/build.gradle b/TwoWaySample/app/build.gradle index d3d9876..0d567da 100644 --- a/TwoWaySample/app/build.gradle +++ b/TwoWaySample/app/build.gradle @@ -49,7 +49,6 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion" implementation "androidx.appcompat:appcompat:$appCompatVersion" implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion" - implementation "androidx.lifecycle:lifecycle-extensions:$archLifecycleVersion" testImplementation "junit:junit:$junitVersion" diff --git a/TwoWaySample/build.gradle b/TwoWaySample/build.gradle index 704200b..c39ce44 100644 --- a/TwoWaySample/build.gradle +++ b/TwoWaySample/build.gradle @@ -19,23 +19,23 @@ buildscript { ext { // SDK and tools - compileSdkVersion = 28 + compileSdkVersion = 29 minSdkVersion = 21 - targetSdkVersion = 28 + targetSdkVersion = 29 // App dependencies androidXTestVersion = '1.1.1' constraintLayoutVersion = '1.1.3' espressoVersion = '3.1.0-alpha4' - gradleVersion = '3.3.1' + gradleVersion = '3.5.1' junitVersion = '4.12' hamcrestVersion = '1.3' - kotlinVersion = '1.3.21' + kotlinVersion = '1.3.50' runnerExtVersion = '1.1.0' rulesVersion = '1.0.1' - appCompatVersion = '1.0.2' + appCompatVersion = '1.1.0' supportLibraryVersion = '1.0.2' - archLifecycleVersion = '2.1.0-alpha03' + archLifecycleVersion = '2.2.0-rc01' } repositories { From 81ba37533bfbc2102a409f856cf815a1a94c8234 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 04:42:05 +0200 Subject: [PATCH 5/9] import changed, so that BR.numberOfSets would become known. --- .../android/databinding/twowaysample/ui/MainActivity.kt | 4 ++-- .../twowaysample/ui/NumberOfSetsBindingAdapters.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/MainActivity.kt b/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/MainActivity.kt index 9bed1dc..3393eac 100644 --- a/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/MainActivity.kt +++ b/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/MainActivity.kt @@ -25,13 +25,12 @@ import androidx.databinding.ObservableInt import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import android.util.Log -import com.example.android.databinding.twowaysample.BR +import androidx.databinding.library.baseAdapters.BR import com.example.android.databinding.twowaysample.R import com.example.android.databinding.twowaysample.data.IntervalTimerViewModel import com.example.android.databinding.twowaysample.data.IntervalTimerViewModelFactory import com.example.android.databinding.twowaysample.databinding.IntervalTimerBinding - const val SHARED_PREFS_KEY = "timer" /** @@ -114,6 +113,7 @@ class MainActivity : AppCompatActivity() { private fun observeAndSaveNumberOfSets(viewModel: IntervalTimerViewModel) { viewModel.addOnPropertyChangedCallback(object : Observable.OnPropertyChangedCallback() { + @SuppressLint("CommitPrefEdits") override fun onPropertyChanged(observable: Observable?, p1: Int) { if (p1 == BR.numberOfSets) { diff --git a/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/NumberOfSetsBindingAdapters.kt b/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/NumberOfSetsBindingAdapters.kt index 5fa46a8..fcc0805 100644 --- a/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/NumberOfSetsBindingAdapters.kt +++ b/TwoWaySample/app/src/main/java/com/example/android/databinding/twowaysample/ui/NumberOfSetsBindingAdapters.kt @@ -124,7 +124,7 @@ object NumberOfSetsConverters { /** * This is the Inverse Method used in `numberOfSets`, to convert from String to array. * - * Note that Context is passed + * Note that Context must be passed. */ @JvmStatic fun stringToSetArray(unused: Context, value: String): Array { // Converts String to long From 9b2d64e00082c5fece92afb2208e9c10540cb305 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 05:03:59 +0200 Subject: [PATCH 6/9] namespace `app` removed, in order to skip warning: Application namespace for attribute app:*** will be ignored. --- .../databinding/basicsample/util/BindingAdapters.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingAdapters.kt b/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingAdapters.kt index 66760d7..6063651 100644 --- a/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingAdapters.kt +++ b/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingAdapters.kt @@ -35,7 +35,7 @@ object BindingAdapters { * A Binding Adapter that is called whenever the value of the attribute `app:popularityIcon` * changes. Receives a popularity level that determines the icon and tint color to use. */ - @BindingAdapter("app:popularityIcon") + @BindingAdapter("popularityIcon") @JvmStatic fun popularityIcon(view: ImageView, popularity: Popularity) { val color = getAssociatedColor(popularity, view.context) @@ -49,7 +49,7 @@ object BindingAdapters { * A Binding Adapter that is called whenever the value of the attribute `android:progressTint` * changes. Depending on the value it determines the color of the progress bar. */ - @BindingAdapter("app:progressTint") + @BindingAdapter("progressTint") @JvmStatic fun tintPopularity(view: ProgressBar, popularity: Popularity) { val color = getAssociatedColor(popularity, view.context) @@ -65,7 +65,7 @@ object BindingAdapters { * Showcases Binding Adapters with multiple attributes. Note that this adapter is called * whenever any of the attribute changes. */ - @BindingAdapter(value = ["app:progressScaled", "android:max"], requireAll = true) + @BindingAdapter(value = ["progressScaled", "android:max"], requireAll = true) @JvmStatic fun setProgress(progressBar: ProgressBar, likes: Int, max: Int) { progressBar.progress = (likes * max / 5).coerceAtMost(max) } @@ -74,7 +74,7 @@ object BindingAdapters { * Unused Binding Adapter to replace the Binding Converter that hides a view if the number * of likes is zero. */ - @BindingAdapter("app:hideIfZero") + @BindingAdapter("hideIfZero") @JvmStatic fun hideIfZero(view: View, number: Int) { view.visibility = if (number == 0) View.GONE else View.VISIBLE } From 22e575c208516dab5d4e5f81eee6afcc9879113f Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 05:06:48 +0200 Subject: [PATCH 7/9] namespace `app` removed, in order to skip warning: Application namespace for attribute app:*** will be ignored. --- .../android/databinding/basicsample/util/BindingMethods.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingMethods.kt b/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingMethods.kt index d0922b5..dc98bc0 100644 --- a/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingMethods.kt +++ b/BasicSample/app/src/main/java/com/example/android/databinding/basicsample/util/BindingMethods.kt @@ -38,6 +38,6 @@ import android.widget.ImageView */ @BindingMethods( BindingMethod(type = ImageView::class, - attribute = "app:srcCompat", + attribute = "srcCompat", method = "setImageResource")) class MyBindingMethods From e94cfaa18e208069a49247909c5bdae9c26c1aa2 Mon Sep 17 00:00:00 2001 From: Martin Zeitler Date: Fri, 25 Oct 2019 05:31:42 +0200 Subject: [PATCH 8/9] further lint warnings suppressed & ignored. --- BasicSample/app/build.gradle | 3 +++ BasicSample/app/src/main/AndroidManifest.xml | 2 +- BasicSample/app/src/main/res/values/strings.xml | 3 --- TwoWaySample/app/build.gradle | 3 +++ TwoWaySample/app/src/main/AndroidManifest.xml | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/BasicSample/app/build.gradle b/BasicSample/app/build.gradle index d3d9876..bfdadcf 100644 --- a/BasicSample/app/build.gradle +++ b/BasicSample/app/build.gradle @@ -39,6 +39,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + lintOptions { + disable 'GoogleAppIndexingWarning' + } dataBinding { enabled true } diff --git a/BasicSample/app/src/main/AndroidManifest.xml b/BasicSample/app/src/main/AndroidManifest.xml index c20a620..5d1b6e3 100644 --- a/BasicSample/app/src/main/AndroidManifest.xml +++ b/BasicSample/app/src/main/AndroidManifest.xml @@ -19,7 +19,7 @@ package="com.example.android.databinding.basicsample"> BasicSample Likes - TextView - NAME - LAST NAME Last name Name Profile\'s avatar diff --git a/TwoWaySample/app/build.gradle b/TwoWaySample/app/build.gradle index 0d567da..0861376 100644 --- a/TwoWaySample/app/build.gradle +++ b/TwoWaySample/app/build.gradle @@ -39,6 +39,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + lintOptions { + disable 'Autofill', 'GoogleAppIndexingWarning', 'LabelFor' + } dataBinding { enabled true } diff --git a/TwoWaySample/app/src/main/AndroidManifest.xml b/TwoWaySample/app/src/main/AndroidManifest.xml index 365374c..df453a6 100644 --- a/TwoWaySample/app/src/main/AndroidManifest.xml +++ b/TwoWaySample/app/src/main/AndroidManifest.xml @@ -19,7 +19,7 @@ package="com.example.android.databinding.twowaysample"> Date: Fri, 25 Oct 2019 05:42:01 +0200 Subject: [PATCH 9/9] incremental processing enabled, as require by kotlin-gradle-plugin 1.3.50. --- BasicSample/gradle.properties | 3 +++ TwoWaySample/gradle.properties | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/BasicSample/gradle.properties b/BasicSample/gradle.properties index 4cae328..6b08733 100644 --- a/BasicSample/gradle.properties +++ b/BasicSample/gradle.properties @@ -33,3 +33,6 @@ org.gradle.jvmargs=-Xmx1536m # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true + +android.databinding.incremental=true +android.lifecycleProcessor.incremental=true diff --git a/TwoWaySample/gradle.properties b/TwoWaySample/gradle.properties index 4cae328..2a1b5d4 100644 --- a/TwoWaySample/gradle.properties +++ b/TwoWaySample/gradle.properties @@ -32,4 +32,4 @@ org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true +# org.gradle.parallel=true \ No newline at end of file