From f797f6ec557d273a8b500369df8b3e1256614eab Mon Sep 17 00:00:00 2001 From: Jonas <git@jonas.app> Date: Wed, 30 Nov 2022 21:27:56 +0100 Subject: [PATCH] =?UTF-8?q?Upgrade=20Gradle=20and=20linked=20stuff=20?= =?UTF-8?q?=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upgrade AGP dependency from 3.2.1 to 7.3.1 Upgrade Gradle version to 7.4 Upgrade Gradle plugins Update default Java language level Move package from Android manifest to build files --- .idea/gradle.xml | 3 +-- .idea/misc.xml | 2 +- .idea/runConfigurations.xml | 13 ------------- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 3 +-- .../app/jonas/adventofcode2018/d04/ReposeRecord.kt | 6 +++--- .../adventofcode2018/d05/AlchemicalReduction.kt | 2 +- .../adventofcode2018/d06/ChronalCoordinates.kt | 2 +- .../jonas/adventofcode2018/d07/TheSumOfItsParts.kt | 2 +- .../app/jonas/adventofcode2018/d09/MarbleMania.kt | 2 +- .../app/jonas/adventofcode2018/d11/ChronalCharge.kt | 2 +- .../jonas/adventofcode2020/d05/BinaryBoarding.kt | 2 +- .../app/jonas/adventofcode2020/d09/EncodingError.kt | 2 +- .../jonas/adventofcode2020/d13/ShuttleSearchTest.kt | 2 +- build.gradle | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- 16 files changed, 18 insertions(+), 32 deletions(-) delete mode 100644 .idea/runConfigurations.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 5cd135a..a2d7c21 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,7 @@ <component name="GradleSettings"> <option name="linkedExternalProjectsSettings"> <GradleProjectSettings> - <option name="testRunner" value="PLATFORM" /> + <option name="testRunner" value="GRADLE" /> <option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="modules"> @@ -13,7 +13,6 @@ <option value="$PROJECT_DIR$/app" /> </set> </option> - <option name="resolveModulePerSourceSet" value="false" /> </GradleProjectSettings> </option> </component> diff --git a/.idea/misc.xml b/.idea/misc.xml index 9ffcaa9..30d8673 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -43,7 +43,7 @@ </value> </option> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Embedded JDK" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType"> diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index e497da9..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="RunConfigurationProducerService"> - <option name="ignoredProducers"> - <set> - <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" /> - <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> - <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> - <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> - </set> - </option> - </component> -</project> \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index cdc7d7b..f5e7b3b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,6 +20,7 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + namespace 'app.jonas.adventofcode2020' } dependencies { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9020969..3d87666 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="app.jonas.adventofcode2020"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" diff --git a/app/src/main/java/app/jonas/adventofcode2018/d04/ReposeRecord.kt b/app/src/main/java/app/jonas/adventofcode2018/d04/ReposeRecord.kt index a8b2ec4..f795759 100644 --- a/app/src/main/java/app/jonas/adventofcode2018/d04/ReposeRecord.kt +++ b/app/src/main/java/app/jonas/adventofcode2018/d04/ReposeRecord.kt @@ -45,13 +45,13 @@ fun extractSleepRanges(entries: List<Entry>): MutableMap<Int, MutableList<IntRan fun sleepiestMinute(ranges: List<IntRange>) = (0..59).map { it to ranges.fold(0) { acc, range -> if (it in range) acc + 1 else acc } } - .maxBy { (_, count) -> count } + .maxByOrNull { (_, count) -> count } ?: throw IllegalArgumentException("Sleepiest min not parsable") fun part1(file: File): Int { val sortedInput = parseInput(file).sorted() val sleepRanges = extractSleepRanges(sortedInput) - val (id, ranges) = sleepRanges.maxBy { (_, ranges) -> ranges.fold(0) { acc, r -> acc + r.count() } } + val (id, ranges) = sleepRanges.maxByOrNull { (_, ranges) -> ranges.fold(0) { acc, r -> acc + r.count() } } ?: throw IllegalArgumentException("Sleep ranges not parsable") return id * sleepiestMinute(ranges).first } @@ -62,6 +62,6 @@ fun part2(file: File): Int { val (id, min) = sleepRanges.map { (id, ranges) -> val (minute, count) = sleepiestMinute(ranges) Triple(id, minute, count) - }.maxBy { (_, _, count) -> count } ?: throw IllegalArgumentException("Sleep ranges not parsable") + }.maxByOrNull { (_, _, count) -> count } ?: throw IllegalArgumentException("Sleep ranges not parsable") return id * min } \ No newline at end of file diff --git a/app/src/main/java/app/jonas/adventofcode2018/d05/AlchemicalReduction.kt b/app/src/main/java/app/jonas/adventofcode2018/d05/AlchemicalReduction.kt index 3b9b071..d2ca987 100644 --- a/app/src/main/java/app/jonas/adventofcode2018/d05/AlchemicalReduction.kt +++ b/app/src/main/java/app/jonas/adventofcode2018/d05/AlchemicalReduction.kt @@ -42,5 +42,5 @@ fun part2(file: File): Int? { val input = file.readLines().single() return input.toList().distinctBy { it.toLowerCase() } .map { react(input.replace(it.toString(), "", true)).length } - .min() + .minOrNull() } diff --git a/app/src/main/java/app/jonas/adventofcode2018/d06/ChronalCoordinates.kt b/app/src/main/java/app/jonas/adventofcode2018/d06/ChronalCoordinates.kt index 25a48ef..ec3812f 100644 --- a/app/src/main/java/app/jonas/adventofcode2018/d06/ChronalCoordinates.kt +++ b/app/src/main/java/app/jonas/adventofcode2018/d06/ChronalCoordinates.kt @@ -46,7 +46,7 @@ fun part1(file: File): Int { } } infinite.forEach { counts.remove(it) } - return counts.values.max() ?: throw IllegalArgumentException("Max not found") + return counts.values.maxOrNull() ?: throw IllegalArgumentException("Max not found") } fun part2(file: File, maxDistance: Int): Int { diff --git a/app/src/main/java/app/jonas/adventofcode2018/d07/TheSumOfItsParts.kt b/app/src/main/java/app/jonas/adventofcode2018/d07/TheSumOfItsParts.kt index 636352f..d38810c 100644 --- a/app/src/main/java/app/jonas/adventofcode2018/d07/TheSumOfItsParts.kt +++ b/app/src/main/java/app/jonas/adventofcode2018/d07/TheSumOfItsParts.kt @@ -87,7 +87,7 @@ fun part2(file: File, workerCount: Int, additionalStepDuration: Int): Int { second += if (someoneFinished) { 1 } else { - val minWorkingTime = workers.mapNotNull { it.timeLeft(second) }.min() + val minWorkingTime = workers.mapNotNull { it.timeLeft(second) }.minOrNull() minWorkingTime ?: throw Error("Nobody is working: shouldn't happen!") } } diff --git a/app/src/main/java/app/jonas/adventofcode2018/d09/MarbleMania.kt b/app/src/main/java/app/jonas/adventofcode2018/d09/MarbleMania.kt index dac080a..ecbf859 100644 --- a/app/src/main/java/app/jonas/adventofcode2018/d09/MarbleMania.kt +++ b/app/src/main/java/app/jonas/adventofcode2018/d09/MarbleMania.kt @@ -48,7 +48,7 @@ private fun getHighscore(file: File, lastMarbleValueMultiplier: Int = 1): Long { next.previous = currentMarble } } - return scores.max() ?: throw Error("No highscore!") + return scores.maxOrNull() ?: throw Error("No highscore!") } fun part1(file: File)= getHighscore(file) diff --git a/app/src/main/java/app/jonas/adventofcode2018/d11/ChronalCharge.kt b/app/src/main/java/app/jonas/adventofcode2018/d11/ChronalCharge.kt index 3a3c5fd..41d96c5 100644 --- a/app/src/main/java/app/jonas/adventofcode2018/d11/ChronalCharge.kt +++ b/app/src/main/java/app/jonas/adventofcode2018/d11/ChronalCharge.kt @@ -66,7 +66,7 @@ fun part1(serialNumber: Int): String { fun part2(serialNumber: Int): String { val plane = getPowerLevelPlane(serialNumber) val largestTotalPowers = (1..300).map { size -> size to plane.sumWindowed(size).getLargestTotalPower() } - val (size, largestTotalPower) = largestTotalPowers.maxBy { (_, largestTotalPower) -> largestTotalPower.second } + val (size, largestTotalPower) = largestTotalPowers.maxByOrNull { (_, largestTotalPower) -> largestTotalPower.second } ?: throw Error("No maximum found!") val (coordinates) = largestTotalPower return "$coordinates,$size" diff --git a/app/src/main/java/app/jonas/adventofcode2020/d05/BinaryBoarding.kt b/app/src/main/java/app/jonas/adventofcode2020/d05/BinaryBoarding.kt index 99602fb..9c4a611 100644 --- a/app/src/main/java/app/jonas/adventofcode2020/d05/BinaryBoarding.kt +++ b/app/src/main/java/app/jonas/adventofcode2020/d05/BinaryBoarding.kt @@ -16,7 +16,7 @@ fun boardingPassToSeatID(boardingPass: String): Int {// BFFFBBFRRR return row * 8 + column } -fun part1(file: File) = file.readLines().map(::boardingPassToSeatID).max() +fun part1(file: File) = file.readLines().maxOfOrNull(::boardingPassToSeatID) fun part2(file: File): Int { val seatIDs = file.readLines().map(::boardingPassToSeatID) diff --git a/app/src/main/java/app/jonas/adventofcode2020/d09/EncodingError.kt b/app/src/main/java/app/jonas/adventofcode2020/d09/EncodingError.kt index e64fffa..bc689ca 100644 --- a/app/src/main/java/app/jonas/adventofcode2020/d09/EncodingError.kt +++ b/app/src/main/java/app/jonas/adventofcode2020/d09/EncodingError.kt @@ -42,5 +42,5 @@ fun part2(file: File, preamble: Int): Long { } } val contiguousSummands = numbers.subList(startIndex, endIndex) - return contiguousSummands.max()!! + contiguousSummands.min()!! + return contiguousSummands.maxOrNull()!! + contiguousSummands.minOrNull()!! } diff --git a/app/src/test/java/app/jonas/adventofcode2020/d13/ShuttleSearchTest.kt b/app/src/test/java/app/jonas/adventofcode2020/d13/ShuttleSearchTest.kt index 1accc6f..5974db6 100644 --- a/app/src/test/java/app/jonas/adventofcode2020/d13/ShuttleSearchTest.kt +++ b/app/src/test/java/app/jonas/adventofcode2020/d13/ShuttleSearchTest.kt @@ -12,7 +12,7 @@ class ShuttleSearchTest { fun testPart1Input() = assertEquals(4782, part1(load("input.txt"))) @Test - fun testPart2Example() = assertEquals(1068781, part2(load("example.txt"))) + fun testPart2Example() = assertEquals(1068781.toBigInteger(), part2(load("example.txt"))) @Test fun testPart2Input() = assertEquals(1118684865113056.toBigInteger(), part2(load("input.txt"))) diff --git a/build.gradle b/build.gradle index a3176b9..0d113b3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,13 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.2.71' + ext.kotlin_version = '1.6.21' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:7.3.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2d80b69..41dfb87 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -- GitLab