diff --git a/.github/actions/build-android/action.yml b/.github/actions/build-android/action.yml new file mode 100644 index 0000000..b91b1d1 --- /dev/null +++ b/.github/actions/build-android/action.yml @@ -0,0 +1,68 @@ +name: Build (debug) +description: Builds debugging android apk +inputs: + KEYSTORE_BASE_64: + description: 'secrets.KEYSTORE_BASE_64' + required: false + RELEASE_KEYSTORE_ALIAS: + description: 'secrets.RELEASE_KEYSTORE_ALIAS' + required: false + RELEASE_KEYSTORE_PASSWORD: + description: 'secrets.RELEASE_KEYSTORE_PASSWORD' + required: false + RELEASE_KEY_PASSWORD: + description: 'secrets.RELEASE_KEY_PASSWORD' + required: false +runs: + using: "composite" + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + cache: 'gradle' + java-version: 17 + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + + - name: Download modified 33-34 SDK android.jar files + run: | + TARGET="$ANDROID_SDK_ROOT/platforms" + SOURCE='https://github.com/Reginer/aosp-android-jar/raw/main' + curl -Lo "$TARGET/android-33/android.jar" "$SOURCE/android-33/android.jar" + curl -Lo "$TARGET/android-34/android.jar" "$SOURCE/android-34/android.jar" + shell: bash + + - name: Set APP_NAME + shell: bash + run: | + + # Setup GITHUB_SHA + if [[ "$GITHUB_EVENT_NAME" = 'pull_request' ]]; then + GITHUB_SHA="${{ github.event.pull_request.head.sha }}" # Do not use last merge commit set in GITHUB_SHA + fi + GITHUB_SHA="${GITHUB_SHA:0:7}" + + # App/apk name + APP_NAME="${{ github.event.repository.name }}-${GITHUB_SHA}" + echo APP_NAME="$APP_NAME" >> "$GITHUB_ENV" + + - name: Build Debug + if: ${{ github.event_name != 'release' }} + uses: ./.github/actions/build-debug + + - name: Build Release + if: ${{ github.event_name == 'release' }} + uses: ./.github/actions/build-release + with: + KEYSTORE_BASE_64: ${{ inputs.KEYSTORE_BASE_64 }} + RELEASE_KEYSTORE_ALIAS: ${{ inputs.RELEASE_KEYSTORE_ALIAS }} + RELEASE_KEYSTORE_PASSWORD: ${{ inputs.RELEASE_KEYSTORE_PASSWORD }} + RELEASE_KEY_PASSWORD: ${{ inputs.RELEASE_KEY_PASSWORD }} + + + - name: Upload Release Build to Artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ env.APP_NAME }} + path: ${{ env.APK_FILE }} \ No newline at end of file diff --git a/.github/actions/build-debug/action.yml b/.github/actions/build-debug/action.yml index 1868ebd..f8ba91f 100644 --- a/.github/actions/build-debug/action.yml +++ b/.github/actions/build-debug/action.yml @@ -3,51 +3,20 @@ description: Builds debugging android apk runs: using: "composite" steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Setup Android SDK - uses: android-actions/setup-android@v3 - - - name: Download modified 33-34 SDK android.jar files - run: | - TARGET="$ANDROID_SDK_ROOT/platforms" - SOURCE='https://github.com/Reginer/aosp-android-jar/raw/main' - curl -Lo "$TARGET/android-33/android.jar" "$SOURCE/android-33/android.jar" - curl -Lo "$TARGET/android-34/android.jar" "$SOURCE/android-34/android.jar" - shell: bash - - - name: Set APP_NAME - shell: bash - run: | - - # Setup GITHUB_SHA - if [[ "$GITHUB_EVENT_NAME" = 'pull_request' ]]; then - GITHUB_SHA="${{ github.event.pull_request.head.sha }}" # Do not use last merge commit set in GITHUB_SHA - fi - GITHUB_SHA="${GITHUB_SHA:0:7}" - - # App/apk name - APP_NAME="${{ github.event.repository.name }}-${GITHUB_SHA}" - echo APP_NAME="$APP_NAME" >> "$GITHUB_ENV" - - name: Set BUILD_DIR shell: bash run: echo BUILD_DIR="app/build/outputs/apk/debug" >> "$GITHUB_ENV" + - name: Set APK_FILE location + shell: bash + run: echo "APK_FILE=${{ env.BUILD_DIR }}/${{ env.APP_NAME }}.apk" >> "$GITHUB_ENV" + + - uses: actions/checkout@v4 - name: Build debug apk shell: bash run: | ./gradlew assembleDebug --no-daemon || exit $? - mv ${{ env.BUILD_DIR }}/*.apk "${{ env.BUILD_DIR }}/${{ env.APP_NAME }}.apk" + mv ${{ env.BUILD_DIR }}/*.apk "${{ env.APK_FILE }}" # - name: Build debug bundle # run: ./gradlew bundleDebug --no-daemon - - - name: Upload Release Build to Artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ env.APP_NAME }} - path: ${{ env.BUILD_DIR }}/${{ env.APP_NAME }}.apk \ No newline at end of file diff --git a/.github/actions/build-release/action.yml b/.github/actions/build-release/action.yml index 060352a..4a727df 100644 --- a/.github/actions/build-release/action.yml +++ b/.github/actions/build-release/action.yml @@ -1,42 +1,27 @@ name: Build (release) description: Builds signed release android apk +inputs: + KEYSTORE_BASE_64: + description: 'secrets.KEYSTORE_BASE_64' + required: true + RELEASE_KEYSTORE_ALIAS: + description: 'secrets.RELEASE_KEYSTORE_ALIAS' + required: true + RELEASE_KEYSTORE_PASSWORD: + description: 'secrets.RELEASE_KEYSTORE_PASSWORD' + required: true + RELEASE_KEY_PASSWORD: + description: 'secrets.RELEASE_KEY_PASSWORD' + required: true + runs: using: composite steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Setup Android SDK - uses: android-actions/setup-android@v3 - - - name: Download modified 33-34 SDK android.jar files - run: | - TARGET="$ANDROID_SDK_ROOT/platforms" - SOURCE='https://github.com/Reginer/aosp-android-jar/raw/main' - curl -Lo "$TARGET/android-33/android.jar" "$SOURCE/android-33/android.jar" - curl -Lo "$TARGET/android-34/android.jar" "$SOURCE/android-34/android.jar" - shell: bash - - - name: Set APP_NAME - shell: bash - run: | - - # Setup GITHUB_SHA - if [[ "$GITHUB_EVENT_NAME" = 'pull_request' ]]; then - GITHUB_SHA="${{ github.event.pull_request.head.sha }}" # Do not use last merge commit set in GITHUB_SHA - fi - GITHUB_SHA="${GITHUB_SHA:0:7}" - - # App/apk name - APP_NAME="${{ github.event.repository.name }}-${GITHUB_SHA}" - echo APP_NAME="$APP_NAME" >> "$GITHUB_ENV" - - name: Set BUILD_DIR shell: bash run: echo BUILD_DIR="app/build/outputs/apk/release" >> "$GITHUB_ENV" + - uses: actions/checkout@v4 - name: Build release apk shell: bash run: | @@ -52,21 +37,13 @@ runs: id: sign_app with: releaseDirectory: ${{ env.BUILD_DIR }} - signingKeyBase64: ${{ secrets.KEYSTORE_BASE_64 }} - alias: ${{ secrets.RELEASE_KEYSTORE_ALIAS }} - keyStorePassword: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }} - keyPassword: ${{ secrets.RELEASE_KEY_PASSWORD }} + signingKeyBase64: ${{ inputs.KEYSTORE_BASE_64 }} + alias: ${{ inputs.RELEASE_KEYSTORE_ALIAS }} + keyStorePassword: ${{ inputs.RELEASE_KEYSTORE_PASSWORD }} + keyPassword: ${{ inputs.RELEASE_KEY_PASSWORD }} env: BUILD_TOOLS_VERSION: "34.0.0" - - name: Upload Release Build to Artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ env.APP_NAME }} - path: ${{steps.sign_app.outputs.signedReleaseFile}} - - - name: Upload Release Build to Artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ env.APP_NAME }} - path: ${{ env.BUILD_DIR }}/${{ env.APP_NAME }}.apk \ No newline at end of file + - name: Set APK_FILE location + shell: bash + run: echo "APK_FILE=${{steps.sign_app.outputs.signedReleaseFile}}" >> "$GITHUB_ENV" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7fdef34..ff4c08d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,30 +21,26 @@ jobs: - uses: actions/checkout@v4 - uses: gradle/actions/wrapper-validation@v3 - build-debug: + build: needs: validation - if: ${{ github.event_name != 'release' && needs.validation.result == 'success' }} + if: ${{ needs.validation.result == 'success' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: local-build-debug - uses: ./.github/actions/build-debug - - build-release: - needs: validation - if: ${{ github.event_name == 'release' && needs.validation.result == 'success' && (github.event_name != 'push' || !startsWith(github.event.head_commit.message, '[skip ci]')) }} - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: local-build-release - uses: ./.github/actions/build-release + - name: local-build-action + uses: ./.github/actions/build-android + with: + KEYSTORE_BASE_64: ${{ secrets.KEYSTORE_BASE_64 }} + RELEASE_KEYSTORE_ALIAS: ${{ secrets.RELEASE_KEYSTORE_ALIAS }} + RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }} + RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }} upload: name: Upload release runs-on: ubuntu-latest - needs: build-release + needs: build - if: ${{ needs.build-release.result == 'success' }} + if: ${{ github.event_name == 'release' && needs.build.result == 'success' }} steps: - uses: actions/download-artifact@v4 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cd2a60b..9b06b00 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,8 @@ android { applicationId = "tk.zwander.wifilist" minSdk = 30 targetSdk = 34 - versionCode = 12 - versionName = "1.3.1" + versionCode = 13 + versionName = "1.3.2" vectorDrawables { useSupportLibrary = true @@ -25,11 +25,11 @@ android { } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = "11" + jvmTarget = "17" } buildFeatures { compose = true diff --git a/app/src/androidTest/java/tk/zwander/wifilist/ExampleInstrumentedTest.kt b/app/src/androidTest/java/tk/zwander/wifilist/ExampleInstrumentedTest.kt deleted file mode 100644 index 733a011..0000000 --- a/app/src/androidTest/java/tk/zwander/wifilist/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package tk.zwander.wifilist - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("tk.zwander.wifilist", appContext.packageName) - } -} \ No newline at end of file diff --git a/app/src/main/java/tk/zwander/wifilist/MainActivity.kt b/app/src/main/java/tk/zwander/wifilist/MainActivity.kt index 8e0ff0c..ffca464 100644 --- a/app/src/main/java/tk/zwander/wifilist/MainActivity.kt +++ b/app/src/main/java/tk/zwander/wifilist/MainActivity.kt @@ -17,6 +17,10 @@ import androidx.activity.enableEdgeToEdge import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.expandIn +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.shrinkOut import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items @@ -57,6 +61,7 @@ import tk.zwander.wifilist.util.Preferences.cachedInfo import tk.zwander.wifilist.util.Preferences.updateCachedInfo import tk.zwander.wifilist.util.hasShizukuPermission import tk.zwander.wifilist.util.launchUrl +import tk.zwander.wifilist.util.plus class MainActivity : AppCompatActivity(), Shizuku.OnRequestPermissionResultListener, @@ -274,19 +279,21 @@ fun MainContent(networks: List) { val exportLaunchers = rememberExportChoiceLaunchers(choices = exportChoices) WiFiListTheme { - // A surface container using the 'background' color from the theme Surface( - modifier = Modifier.fillMaxSize() - .navigationBarsPadding() - .imePadding(), + modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background, ) { Scaffold( bottomBar = { BottomAppBar( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier.fillMaxWidth() + .imePadding(), ) { - AnimatedVisibility(visible = !searchExpanded) { + AnimatedVisibility( + visible = !searchExpanded, + enter = fadeIn() + expandIn(expandFrom = Alignment.CenterStart), + exit = fadeOut() + shrinkOut(shrinkTowards = Alignment.CenterStart), + ) { Text( text = stringResource(id = R.string.saved_wifi_networks), modifier = Modifier.padding(start = 16.dp), @@ -312,7 +319,11 @@ fun MainContent(networks: List) { tint = MaterialTheme.colorScheme.onSurface, ) - AnimatedVisibility(visible = !searchExpanded) { + AnimatedVisibility( + visible = !searchExpanded, + enter = fadeIn() + expandIn(expandFrom = Alignment.CenterEnd), + exit = fadeOut() + shrinkOut(shrinkTowards = Alignment.CenterEnd), + ) { IconButton(onClick = { showingPopup = !showingPopup }) { Icon( imageVector = Icons.Default.Menu, @@ -334,7 +345,7 @@ fun MainContent(networks: List) { }, ) { padding -> LazyVerticalStaggeredGrid( - contentPadding = padding, + contentPadding = padding + PaddingValues(horizontal = 8.dp), columns = StaggeredGridCells.Adaptive(minSize = 400.dp), ) { items( diff --git a/app/src/main/java/tk/zwander/wifilist/ui/components/ExpandableSearchField.kt b/app/src/main/java/tk/zwander/wifilist/ui/components/ExpandableSearchField.kt index d7a682c..53a069b 100644 --- a/app/src/main/java/tk/zwander/wifilist/ui/components/ExpandableSearchField.kt +++ b/app/src/main/java/tk/zwander/wifilist/ui/components/ExpandableSearchField.kt @@ -1,10 +1,16 @@ package tk.zwander.wifilist.ui.components -import androidx.compose.animation.Crossfade -import androidx.compose.animation.animateContentSize +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.animateColorAsState +import androidx.compose.animation.expandIn +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.shrinkOut import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Clear import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment @@ -31,39 +37,43 @@ fun ExpandableSearchView( expandedInitially: Boolean = false, tint: Color = MaterialTheme.colorScheme.onPrimary ) { - val (expanded, onExpandedChanged) = remember { + var expanded by remember { mutableStateOf(expandedInitially) } - Crossfade( - targetState = expanded, - modifier = Modifier.animateContentSize(), - label = "SearchIconCrossfade", - ) { isSearchFieldVisible -> - Box( - contentAlignment = Alignment.CenterStart, - modifier = modifier - .fillMaxHeight() + Box( + contentAlignment = Alignment.CenterStart, + modifier = modifier + .fillMaxHeight(), + ) { + AnimatedVisibility( + visible = expanded, + enter = fadeIn() + expandIn(expandFrom = Alignment.CenterEnd), + exit = fadeOut() + shrinkOut(shrinkTowards = Alignment.CenterEnd), ) { - when (isSearchFieldVisible) { - true -> ExpandedSearchView( - searchDisplay = searchDisplay, - onSearchDisplayChanged = onSearchDisplayChanged, - onSearchDisplayClosed = onSearchDisplayClosed, - onExpandedChanged = onExpandedChanged, - tint = tint - ) + ExpandedSearchView( + searchDisplay = searchDisplay, + onSearchDisplayChanged = onSearchDisplayChanged, + onSearchDisplayClosed = onSearchDisplayClosed, + onExpandedChanged = { expanded = it }, + tint = tint, + ) + } - false -> CollapsedSearchView( - onExpandedChanged = { - onExpandedChanged(it) - if (it) { - onSearchDisplayOpened() - } - }, - tint = tint - ) - } + AnimatedVisibility( + visible = !expanded, + enter = fadeIn(), + exit = fadeOut(), + ) { + CollapsedSearchView( + onExpandedChanged = { + expanded = it + if (it) { + onSearchDisplayOpened() + } + }, + tint = tint, + ) } } } @@ -118,17 +128,20 @@ fun ExpandedSearchView( horizontalArrangement = Arrangement.Start, verticalAlignment = Alignment.CenterVertically ) { - IconButton(onClick = { - onExpandedChanged(false) - onSearchDisplayClosed() - keyboardController?.hide() - }) { + IconButton( + onClick = { + onExpandedChanged(false) + onSearchDisplayClosed() + keyboardController?.hide() + }, + ) { Icon( painter = painterResource(id = R.drawable.ic_back), contentDescription = stringResource(id = R.string.back), - tint = tint + tint = tint, ) } + TextField( value = searchDisplay, onValueChange = { @@ -147,7 +160,7 @@ fun ExpandedSearchView( keyboardActions = KeyboardActions( onDone = { focusManager.clearFocus() - } + }, ), colors = TextFieldDefaults.colors( focusedContainerColor = Color.Transparent, @@ -155,7 +168,26 @@ fun ExpandedSearchView( disabledContainerColor = Color.Transparent, errorContainerColor = Color.Transparent, ), - singleLine = true + singleLine = true, + trailingIcon = { + IconButton( + onClick = { + onSearchDisplayChanged("") + }, + enabled = searchDisplay.isNotEmpty(), + ) { + val iconColor by animateColorAsState( + targetValue = if (searchDisplay.isNotEmpty()) tint else tint.copy(alpha = LocalContentColor.current.alpha), + label = "SearchClearIconColor", + ) + + Icon( + imageVector = Icons.Default.Clear, + contentDescription = stringResource(id = R.string.clear), + tint = iconColor, + ) + } + }, ) } } \ No newline at end of file diff --git a/app/src/main/java/tk/zwander/wifilist/ui/components/WiFiCard.kt b/app/src/main/java/tk/zwander/wifilist/ui/components/WiFiCard.kt index 394a5f2..51c08f6 100644 --- a/app/src/main/java/tk/zwander/wifilist/ui/components/WiFiCard.kt +++ b/app/src/main/java/tk/zwander/wifilist/ui/components/WiFiCard.kt @@ -36,6 +36,9 @@ fun WiFiCard( ) { val cbm = LocalClipboardManager.current val key = config.simpleKey ?: stringResource(id = R.string.no_password) + val securityParams = config.securityParamsObj + val insecure = securityParams?.type == ExportSecurityType.OPEN + val hasKey = config.simpleKey != null Card( modifier = modifier, @@ -49,8 +52,6 @@ fun WiFiCard( Row( verticalAlignment = Alignment.CenterVertically, ) { - val insecure = config.authType == WifiConfiguration.KeyMgmt.NONE - Icon( painter = painterResource(id = if (insecure) R.drawable.ic_unlocked else R.drawable.ic_locked), contentDescription = null, @@ -70,7 +71,7 @@ fun WiFiCard( FlowRow( modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceAround, + horizontalArrangement = Arrangement.SpaceBetween, verticalArrangement = Arrangement.spacedBy(4.dp), ) { TwoLineText( @@ -84,10 +85,10 @@ fun WiFiCard( TwoLineText( label = stringResource(id = R.string.password), value = key, - secure = config.authType != WifiConfiguration.KeyMgmt.NONE, + secure = hasKey, ) - if (config.authType != WifiConfiguration.KeyMgmt.NONE) { + if (hasKey) { IconButton( onClick = { cbm.setClip(ClipEntry(ClipData.newPlainText(config.SSID, key))) diff --git a/app/src/main/java/tk/zwander/wifilist/util/PaddingValues.kt b/app/src/main/java/tk/zwander/wifilist/util/PaddingValues.kt new file mode 100644 index 0000000..9a9a055 --- /dev/null +++ b/app/src/main/java/tk/zwander/wifilist/util/PaddingValues.kt @@ -0,0 +1,16 @@ +package tk.zwander.wifilist.util + +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.calculateEndPadding +import androidx.compose.foundation.layout.calculateStartPadding +import androidx.compose.ui.unit.LayoutDirection + +// https://stackoverflow.com/a/77030528/5496177 +operator fun PaddingValues.plus(other: PaddingValues): PaddingValues = PaddingValues( + start = this.calculateStartPadding(LayoutDirection.Ltr) + + other.calculateStartPadding(LayoutDirection.Ltr), + top = this.calculateTopPadding() + other.calculateTopPadding(), + end = this.calculateEndPadding(LayoutDirection.Ltr) + + other.calculateEndPadding(LayoutDirection.Ltr), + bottom = this.calculateBottomPadding() + other.calculateBottomPadding(), +) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bf83f19..66bf6ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -30,6 +30,7 @@ PLMN Realm Cert Suite + Clear Menu Patreon diff --git a/app/src/test/java/tk/zwander/wifilist/ExampleUnitTest.kt b/app/src/test/java/tk/zwander/wifilist/ExampleUnitTest.kt deleted file mode 100644 index 24a25f9..0000000 --- a/app/src/test/java/tk/zwander/wifilist/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package tk.zwander.wifilist - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 87b4d35..91d0fde 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,3 @@ -buildscript { - repositories { - google() - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") - } -} - plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.bugsnag) apply false @@ -13,5 +5,5 @@ plugins { } tasks.register("clean") { - delete(rootProject.buildDir) + delete(rootProject.layout.buildDirectory) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 871b393..5adcace 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,21 +1,21 @@ [versions] -activityCompose = "1.8.2" -androidGradlePlugin = "8.2.2" +activityCompose = "1.9.0" +androidGradlePlugin = "8.3.2" shizuku = "13.1.5" bugsnagAndroid = "6.4.0" bugsnagGradlePlugin = "8.1.0" -compose = "1.7.0-alpha06" -composeCompiler = "1.5.11" -coreKtx = "1.12.0" -datastorePreferences = "1.1.0-rc01" +compose = "1.7.0-alpha07" +composeCompiler = "1.5.12" +compose-material3 = "1.3.0-alpha05" +coreKtx = "1.13.0" +datastorePreferences = "1.1.0" fastcsv = "3.1.0" -fragmentKtx = "1.6.2" +fragmentKtx = "1.8.0-alpha02" gson = "2.10.1" hiddenapibypass = "4.3" kotlin = "1.9.23" -lifecycleRuntimeKtx = "2.7.0" -material = "1.11.0" -material3 = "1.2.1" +lifecycleRuntimeKtx = "2.8.0-beta01" +material = "1.13.0-alpha01" patreonsupportersretrieval = "8436bbdbdc" relinker = "1.4.5" @@ -23,7 +23,7 @@ relinker = "1.4.5" activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" } bugsnag-android = { module = "com.bugsnag:bugsnag-android", version.ref = "bugsnagAndroid" } compose-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "composeCompiler" } -compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "material3" } +compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "compose-material3" } compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" } core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" } datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a8eaa39..0fe73d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Aug 07 13:47:43 EDT 2021 +#Sun Apr 21 17:23:04 EDT 2024 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 7d2b5ca..96790cf 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,5 @@ +@file:Suppress("UnstableApiUsage") + pluginManagement { repositories { gradlePluginPortal() @@ -11,7 +13,6 @@ dependencyResolutionManagement { google() mavenCentral() maven("https://jitpack.io") - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") } } rootProject.name = "WiFiList"