diff --git a/.git-pr-release b/.git-pr-release index 6c5722a6..8e70cf73 100644 --- a/.git-pr-release +++ b/.git-pr-release @@ -1,4 +1,10 @@ Release <%= Time.now.strftime('%Y-%m-%d') %> -<% pull_requests.each do |pr| -%> + +<% pull_requests.reject {|item| item.pr.user ? item.pr.user.login =~ /\A(renovate|dependabot)/ : false }.each do |pr| -%> +<%= "- ##{pr.pr.number}" + pr.mention %> +<% end -%> + +## Dependency updates +<% pull_requests.select {|item| item.pr.user ? item.pr.user.login =~ /\A(renovate|dependabot)/ : false }.each do |pr| -%> <%= "- ##{pr.pr.number}" + pr.mention %> <% end -%> \ No newline at end of file diff --git a/.github/workflows/baseline-profiles.yml b/.github/workflows/baseline-profiles.yml index 0892c377..f111cb33 100644 --- a/.github/workflows/baseline-profiles.yml +++ b/.github/workflows/baseline-profiles.yml @@ -6,15 +6,15 @@ jobs: generate-baseline-profiles: runs-on: macos-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Android SDK - uses: android-actions/setup-android@v2 + uses: android-actions/setup-android@v3 - name: Setup JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - java-version: 11 + java-version: 17 distribution: zulu cache: gradle @@ -25,7 +25,7 @@ jobs: mv benchmark/build/outputs/managed_device_android_test_additional_output/pixel2Api31/BaselineProfileGenerator_startup-baseline-prof.txt app/src/main/baseline-prof.txt - name: Create pull request - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v7 with: commit-message: Updated baseline profiles title: Updated baseline profiles diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b58379cf..1f015d5f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,13 +9,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 + - uses: actions/checkout@v4 - name: set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - java-version: 11 + java-version: 17 distribution: zulu cache: gradle - name: Build with Gradle diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml index b083f534..9091a0e3 100644 --- a/.github/workflows/danger.yml +++ b/.github/workflows/danger.yml @@ -8,13 +8,11 @@ jobs: if: github.head_ref != 'develop' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 + - uses: actions/checkout@v4 - name: set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - java-version: 11 + java-version: 17 distribution: zulu cache: gradle - name: Setup Ruby diff --git a/.github/workflows/git-pr-release.yml b/.github/workflows/git-pr-release.yml index 32b4b4d5..e5c8683b 100644 --- a/.github/workflows/git-pr-release.yml +++ b/.github/workflows/git-pr-release.yml @@ -7,7 +7,7 @@ jobs: create-release-pr: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: ruby/setup-ruby@v1 diff --git a/.gitignore b/.gitignore index a04f512a..2aa9d0a8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ .externalNativeBuild *.apk output.json -*.aab \ No newline at end of file +*.aab +.kotlin/ \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 62199cd8..8ddeec14 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -55,7 +55,8 @@ GEM open4 (1.3.4) public_suffix (5.0.1) rchardet (1.8.0) - rexml (3.2.5) + rexml (3.2.8) + strscan (>= 3.0.9) ruby-ll (2.1.2) ansi ast @@ -63,6 +64,7 @@ GEM sawyer (0.9.2) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) + strscan (3.1.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) unicode-display_width (2.4.2) diff --git a/app/build.gradle b/app/build.gradle index 193318f4..d45e5286 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,7 +3,8 @@ plugins { id 'kotlin-android' id 'com.google.android.gms.oss-licenses-plugin' id 'dagger.hilt.android.plugin' - id 'kotlin-kapt' + alias libs.plugins.kspPlugin + alias libs.plugins.baselineProfilePlugin } android { @@ -32,17 +33,11 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } - benchmark { - initWith buildTypes.release - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-benchmark.pro' - signingConfig signingConfigs.debug - matchingFallbacks = ['release'] - debuggable false - } } buildFeatures { viewBinding = true + buildConfig = true } compileOptions { @@ -51,10 +46,6 @@ android { } } -kapt { - correctErrorTypes true -} - dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) @@ -87,7 +78,7 @@ dependencies { implementation libs.insetter implementation libs.dagger.hilt.android - kapt libs.dagger.hilt.android.compiler + ksp libs.dagger.hilt.android.compiler implementation libs.licenses @@ -97,6 +88,8 @@ dependencies { implementation libs.androidx.profileinstaller testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test:runner:1.5.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation 'androidx.test:runner:1.6.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' + + "baselineProfile"(projects.benchmark) } diff --git a/app/proguard-benchmark.pro b/app/proguard-benchmark.pro deleted file mode 100644 index 0a248ee5..00000000 --- a/app/proguard-benchmark.pro +++ /dev/null @@ -1,14 +0,0 @@ -# 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 - -# Repackage classes into the top-level. --repackageclasses - -# When generating the baseline profile we want the proper names of -# the methods and classes --dontobfuscate \ No newline at end of file diff --git a/app/src/main/java/com/numero/material_gallery/MainActivity.kt b/app/src/main/java/com/numero/material_gallery/MainActivity.kt index 95358c2e..1f833f0f 100644 --- a/app/src/main/java/com/numero/material_gallery/MainActivity.kt +++ b/app/src/main/java/com/numero/material_gallery/MainActivity.kt @@ -6,6 +6,7 @@ import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.* +import androidx.fragment.app.FragmentManager import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.findNavController @@ -78,6 +79,8 @@ class MainActivity : AppCompatActivity() { setContentView(binding.root) setSupportActionBar(binding.toolbar) + FragmentManager.enablePredictiveBack(BuildConfig.DEBUG) + WindowCompat.setDecorFitsSystemWindows(window, false) window.statusBarColor = Color.TRANSPARENT binding.appbar.applyInsetter { diff --git a/benchmark/build.gradle b/benchmark/build.gradle index 342355ed..daf468ed 100644 --- a/benchmark/build.gradle +++ b/benchmark/build.gradle @@ -1,6 +1,7 @@ plugins { id 'com.android.test' id 'org.jetbrains.kotlin.android' + alias libs.plugins.baselineProfilePlugin } android { @@ -9,23 +10,12 @@ android { compileSdkVersion versions.compileSdk defaultConfig { - minSdk versions.minSdk + minSdk 28 targetSdk versions.targetSdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } - buildTypes { - // This benchmark buildType is used for benchmarking, and should function like your - // release build (for example, with minification on). It's signed with a debug key - // for easy local/CI testing. - benchmark { - debuggable = true - signingConfig = debug.signingConfig - matchingFallbacks = ["release"] - } - } - compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 @@ -47,16 +37,15 @@ android { } } -dependencies { - implementation 'androidx.test.ext:junit:1.1.5' - implementation 'androidx.test.espresso:espresso-core:3.5.1' - implementation 'androidx.test.uiautomator:uiautomator:2.2.0' - implementation 'androidx.benchmark:benchmark-macro-junit4:1.1.1' - implementation libs.androidx.profileinstaller +baselineProfile { + managedDevices += "pixel2Api31" + useConnectedDevices = false } -androidComponents { - beforeVariants(selector().all()) { - enabled = buildType == "benchmark" - } +dependencies { + implementation 'androidx.test.ext:junit:1.2.1' + implementation 'androidx.test.espresso:espresso-core:3.6.1' + implementation 'androidx.test.uiautomator:uiautomator:2.3.0' + implementation libs.androidx.benchmark + implementation libs.androidx.profileinstaller } \ No newline at end of file diff --git a/benchmark/src/main/java/com/numero/material_gallery/benchmark/BaselineProfileGenerator.kt b/benchmark/src/main/java/com/numero/material_gallery/benchmark/BaselineProfileGenerator.kt index baeeca91..4a9398dd 100644 --- a/benchmark/src/main/java/com/numero/material_gallery/benchmark/BaselineProfileGenerator.kt +++ b/benchmark/src/main/java/com/numero/material_gallery/benchmark/BaselineProfileGenerator.kt @@ -1,25 +1,22 @@ package com.numero.material_gallery.benchmark -import androidx.benchmark.macro.ExperimentalBaselineProfilesApi import androidx.benchmark.macro.junit4.BaselineProfileRule import androidx.test.ext.junit.runners.AndroidJUnit4 import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -@ExperimentalBaselineProfilesApi @RunWith(AndroidJUnit4::class) class BaselineProfileGenerator { @get:Rule val baselineProfileRule = BaselineProfileRule() @Test - fun startup() = - baselineProfileRule.collectBaselineProfile( - packageName = "com.numero.material_gallery" - ) { - pressHome() + fun startup() = baselineProfileRule.collect( + packageName = "com.numero.material_gallery" + ) { + pressHome() - startActivityAndWait() - } + startActivityAndWait() + } } \ No newline at end of file diff --git a/build.gradle b/build.gradle index a4d5d3a9..277f5327 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,9 @@ buildscript { ext { versions = [ - compileSdk: 33, + compileSdk: 35, minSdk : 23, - targetSdk : 33, + targetSdk : 34, ] } @@ -16,6 +16,8 @@ plugins { alias(libs.plugins.androidGradlePlugin) apply false alias(libs.plugins.kotlinPlugin) apply false alias(libs.plugins.hiltPlugin) apply false + alias(libs.plugins.kspPlugin) apply false + alias(libs.plugins.baselineProfilePlugin) apply false } subprojects { diff --git a/core/build.gradle b/core/build.gradle index 5631a70d..cd64f82b 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -2,7 +2,7 @@ plugins { id 'com.android.library' id 'kotlin-android' id 'dagger.hilt.android.plugin' - id 'kotlin-kapt' + alias libs.plugins.kspPlugin } android { @@ -47,7 +47,7 @@ dependencies { implementation libs.material implementation libs.dagger.hilt.android - kapt libs.dagger.hilt.android.compiler + ksp libs.dagger.hilt.android.compiler testImplementation 'junit:junit:4.13.2' } \ No newline at end of file diff --git a/core/src/main/java/com/numero/material_gallery/core/MaterialContainerTransformFragment.kt b/core/src/main/java/com/numero/material_gallery/core/MaterialContainerTransformFragment.kt index 88ad9498..8cb735b5 100644 --- a/core/src/main/java/com/numero/material_gallery/core/MaterialContainerTransformFragment.kt +++ b/core/src/main/java/com/numero/material_gallery/core/MaterialContainerTransformFragment.kt @@ -4,7 +4,6 @@ import android.graphics.Color import android.os.Bundle import android.view.View import androidx.annotation.LayoutRes -import androidx.core.view.doOnPreDraw import androidx.fragment.app.Fragment import com.google.android.material.color.MaterialColors import com.google.android.material.transition.platform.Hold @@ -33,7 +32,5 @@ abstract class MaterialContainerTransformFragment : Fragment { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setHasOptionsMenu(true) - postponeEnterTransition() - view.doOnPreDraw { startPostponedEnterTransition() } } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index d4b1c779..c2c5574a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,4 +17,7 @@ org.gradle.vfs.watch=true android.enableJetifier=false android.enableR8.fullMode=true -android.useAndroidX=true \ No newline at end of file +android.useAndroidX=true + +android.nonTransitiveRClass=false +android.nonFinalResIds=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d7b5237d..d4d48440 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,26 +1,29 @@ [versions] -androidGradlePlugin = "7.4.2" -kotlin = "1.8.22" +androidGradlePlugin = "8.10.0" +kotlin = "2.1.21" -androidxLifecycle = "2.6.1" -androidxNavigation = "2.6.0" +androidxLifecycle = "2.8.7" +androidxNavigation = "2.8.3" -hilt = "2.46.1" +hilt = "2.56.2" -material = "1.9.0" +material = "1.12.0" + +baselineProfile = "1.3.4" [libraries] -coroutines-android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1" +coroutines-android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2" -androidx-appcompat = "androidx.appcompat:appcompat:1.6.1" -androidx-activity = "androidx.activity:activity-ktx:1.7.2" -androidx-fragment = "androidx.fragment:fragment-ktx:1.6.0" -androidx-core = "androidx.core:core-ktx:1.10.1" +androidx-appcompat = "androidx.appcompat:appcompat:1.7.0" +androidx-activity = "androidx.activity:activity-ktx:1.10.1" +androidx-fragment = "androidx.fragment:fragment-ktx:1.8.7" +androidx-core = "androidx.core:core-ktx:1.16.0" androidx-core-splashscreen = "androidx.core:core-splashscreen:1.0.1" -androidx-recyclerview = "androidx.recyclerview:recyclerview:1.3.0" -androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.1.4" -androidx-preference = "androidx.preference:preference:1.2.0" -androidx-profileinstaller = "androidx.profileinstaller:profileinstaller:1.3.1" +androidx-recyclerview = "androidx.recyclerview:recyclerview:1.4.0" +androidx-constraintlayout = "androidx.constraintlayout:constraintlayout:2.2.1" +androidx-preference = "androidx.preference:preference:1.2.1" +androidx-profileinstaller = "androidx.profileinstaller:profileinstaller:1.4.1" +androidx-benchmark = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "baselineProfile" } androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" } @@ -31,8 +34,8 @@ androidx-navigation-ui = { module = "androidx.navigation:navigation-ui-ktx", ver dagger-hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } dagger-hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } -androidx-test-runner = "androidx.test:runner:1.5.2" -androidx-test-junit = "androidx.test.ext:junit:1.1.5" +androidx-test-runner = "androidx.test:runner:1.6.2" +androidx-test-junit = "androidx.test.ext:junit:1.2.1" material = { module = "com.google.android.material:material", version.ref = "material" } flexbox = "com.google.android.flexbox:flexbox:3.0.0" @@ -42,12 +45,14 @@ insetter = "dev.chrisbanes.insetter:insetter:0.6.1" play-core = "com.google.android.play:core:1.10.3" play-core-ktx = "com.google.android.play:core-ktx:1.8.1" -licenses = "com.google.android.gms:play-services-oss-licenses:17.0.1" +licenses = "com.google.android.gms:play-services-oss-licenses:17.1.0" junit = "junit:junit:4.13.2" -robolectric = "org.robolectric:robolectric:4.10.3" +robolectric = "org.robolectric:robolectric:4.14.1" [plugins] androidGradlePlugin = { id = "com.android.application", version.ref = "androidGradlePlugin" } +baselineProfilePlugin = { id = "androidx.baselineprofile", version.ref = "baselineProfile" } kotlinPlugin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kspPlugin = { id = "com.google.devtools.ksp", version = "2.1.21-2.0.1" } hiltPlugin = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index c1962a79..1b33c55b 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d3..002b867c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index aeb74cbb..23d15a93 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -83,7 +85,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -111,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -130,10 +133,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -141,7 +147,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -149,7 +155,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -198,16 +204,16 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 6689b85b..5eed7ee8 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,22 +59,22 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/renovate.json b/renovate.json index 2150cd07..a09a64dd 100644 --- a/renovate.json +++ b/renovate.json @@ -2,5 +2,15 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "local>NUmeroAndDev/renovate-config" + ], + "packageRules": [ + { + "groupName": "Kotlin", + "matchPackageNames": [ + "/^org\\.jetbrains\\.kotlin:/", + "/^org\\.jetbrains\\.kotlin\\./", + "/^com\\.google\\.devtools\\.ksp:/" + ] + } ] } diff --git a/studies/base/src/main/java/com/numero/material_gallery/studies/base/ComponentGalleryFragment.kt b/studies/base/src/main/java/com/numero/material_gallery/studies/base/ComponentGalleryFragment.kt index bfbbea29..54031cd5 100644 --- a/studies/base/src/main/java/com/numero/material_gallery/studies/base/ComponentGalleryFragment.kt +++ b/studies/base/src/main/java/com/numero/material_gallery/studies/base/ComponentGalleryFragment.kt @@ -8,7 +8,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.annotation.StyleRes -import androidx.core.view.doOnPreDraw import androidx.fragment.app.Fragment import com.google.android.material.color.MaterialColors import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -61,9 +60,6 @@ abstract class ComponentGalleryFragment( override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - postponeEnterTransition() - view.doOnPreDraw { startPostponedEnterTransition() } - binding.appbar.applyInsetter { type(statusBars = true) { padding(top = true) diff --git a/studies/material2/src/main/java/com/numero/material_gallery/studies/material2/MaterialComponentFragment.kt b/studies/material2/src/main/java/com/numero/material_gallery/studies/material2/MaterialComponentFragment.kt index e7ed2740..0910c6c5 100644 --- a/studies/material2/src/main/java/com/numero/material_gallery/studies/material2/MaterialComponentFragment.kt +++ b/studies/material2/src/main/java/com/numero/material_gallery/studies/material2/MaterialComponentFragment.kt @@ -5,7 +5,6 @@ import android.graphics.Color import android.os.Bundle import android.view.ContextThemeWrapper import android.view.View -import androidx.core.view.doOnPreDraw import androidx.fragment.app.Fragment import com.google.android.material.color.MaterialColors import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -38,9 +37,6 @@ class MaterialComponentFragment : Fragment(R.layout.fragment_material2_component override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - postponeEnterTransition() - view.doOnPreDraw { startPostponedEnterTransition() } - binding.appbar.applyInsetter { type(statusBars = true) { padding(top = true) diff --git a/studies/material3/src/main/java/com/numero/material_gallery/studies/material3/MaterialComponentFragment.kt b/studies/material3/src/main/java/com/numero/material_gallery/studies/material3/MaterialComponentFragment.kt index 27bf1107..9b523b01 100644 --- a/studies/material3/src/main/java/com/numero/material_gallery/studies/material3/MaterialComponentFragment.kt +++ b/studies/material3/src/main/java/com/numero/material_gallery/studies/material3/MaterialComponentFragment.kt @@ -5,7 +5,6 @@ import android.graphics.Color import android.os.Bundle import android.view.ContextThemeWrapper import android.view.View -import androidx.core.view.doOnPreDraw import androidx.fragment.app.Fragment import com.google.android.material.color.MaterialColors import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -38,9 +37,6 @@ class MaterialComponentFragment : Fragment(R.layout.fragment_material3_component override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - postponeEnterTransition() - view.doOnPreDraw { startPostponedEnterTransition() } - binding.appbar.applyInsetter { type(statusBars = true) { padding(top = true)