diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-04 17:40:54 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-04 17:40:54 +0100 |
| commit | 4e771dd5e04bf40abfd3db16801865a5d1f953a2 (patch) | |
| tree | 56e07e91188cb11fcc681a506cb30cc88e6ba843 | |
| parent | 104c07f0bcc37d87ddc371d06827ff93ee3fe504 (diff) | |
| download | HardenedPass-4e771dd5e04bf40abfd3db16801865a5d1f953a2.tar.gz HardenedPass-4e771dd5e04bf40abfd3db16801865a5d1f953a2.zip | |
build(app): drop the View-era dependencies and view binding
Nothing uses preference, recyclerview, recyclerview-selection,
fastscroll or modernandroidpreferences since the Compose screens
replaced the Views, nor view binding. fragment-ktx stays as the pin
that keeps androidx.fragment at 1.8.4. The preference widget override,
the multiselect attribute, the toolbar and bottom sheet styles and the
lint ignores for deleted layouts go. Lint checks unused ids again.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| -rw-r--r-- | app/build.gradle.kts | 6 | ||||
| -rw-r--r-- | app/lint.xml | 5 | ||||
| -rw-r--r-- | app/src/main/res/layout/map_preference_widget_switch.xml | 13 | ||||
| -rw-r--r-- | app/src/main/res/values/attrs.xml | 10 | ||||
| -rw-r--r-- | app/src/main/res/values/styles_material3.xml | 12 | ||||
| -rw-r--r-- | app/src/main/res/values/themes_material3.xml | 8 | ||||
| -rw-r--r-- | build-logic/src/main/kotlin/app/passwordstore/gradle/ApplicationPlugin.kt | 5 | ||||
| -rw-r--r-- | build-logic/src/main/kotlin/app/passwordstore/gradle/LintConfig.kt | 4 | ||||
| -rw-r--r-- | gradle/libs.versions.toml | 5 |
9 files changed, 2 insertions, 66 deletions
diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5f7a8ee8..053d7478 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -63,6 +63,7 @@ dependencies { implementation(libs.androidx.constraintlayout) implementation(libs.androidx.core.ktx) implementation(libs.androidx.documentfile) + // Pins androidx.fragment (FragmentActivity, BiometricPrompt): appcompat alone resolves 1.5.4. implementation(libs.androidx.fragment.ktx) implementation(libs.androidx.hilt.navigation.compose) implementation(libs.bundles.androidxLifecycle) @@ -70,9 +71,6 @@ dependencies { implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.material) implementation(libs.androidx.navigation.compose) - implementation(libs.androidx.preference) - implementation(libs.androidx.recyclerview) - implementation(libs.androidx.recyclerviewSelection) implementation(libs.compose.ui.tooling) implementation(libs.dagger.hilt.android) @@ -84,13 +82,11 @@ dependencies { implementation(libs.aps.sublimeFuzzy) implementation(libs.aps.zxingAndroidEmbedded) - implementation(libs.thirdparty.fastscroll) implementation(libs.thirdparty.jgit) { exclude(group = "org.apache.httpcomponents", module = "httpclient") } implementation(libs.thirdparty.kotlinResult) implementation(libs.thirdparty.logcat) - implementation(libs.thirdparty.modernAndroidPrefs) implementation(libs.thirdparty.leakcanary.plumber) implementation(libs.thirdparty.sshj) implementation(libs.thirdparty.bouncycastle.bcprov) diff --git a/app/lint.xml b/app/lint.xml index 8834cbd7..44b84e59 100644 --- a/app/lint.xml +++ b/app/lint.xml @@ -5,7 +5,6 @@ <lint> <issue id="ContentDescription"> <ignore path="src/main/res/layout/oreo_autofill_dataset.xml" /> - <ignore path="src/main/res/layout/oreo_autofill_filter_row.xml" /> </issue> <issue id="InvalidPackage"> <ignore regexp="X509LDAPCertStoreSpi" /> @@ -20,10 +19,6 @@ <issue id="UnusedResources"> <ignore path="src/main/res/values/bools.xml" /> <ignore path="src/main/res/values/colors_material3.xml" /> - <ignore path="src/main/res/layout/map_preference_widget_switch.xml" /> - </issue> - <issue id="PrivateResource"> - <ignore path="src/main/res/layout/map_preference_widget_switch.xml" /> </issue> <issue id="VectorPath"> <ignore path="src/main/res/drawable/app_settings_alt_24px.xml" /> diff --git a/app/src/main/res/layout/map_preference_widget_switch.xml b/app/src/main/res/layout/map_preference_widget_switch.xml deleted file mode 100644 index 566e72d4..00000000 --- a/app/src/main/res/layout/map_preference_widget_switch.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved. - ~ SPDX-License-Identifier: GPL-3.0-only - --> - -<com.google.android.material.materialswitch.MaterialSwitch xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@android:id/checkbox" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:background="@null" - android:clickable="false" - android:focusable="false" /> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml deleted file mode 100644 index a1d3c974..00000000 --- a/app/src/main/res/values/attrs.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved. - ~ SPDX-License-Identifier: GPL-3.0-only - --> - -<resources> - <declare-styleable name="Multiselected"> - <attr name="state_multiselected" format="boolean" /> - </declare-styleable> -</resources> diff --git a/app/src/main/res/values/styles_material3.xml b/app/src/main/res/values/styles_material3.xml deleted file mode 100644 index 329905e1..00000000 --- a/app/src/main/res/values/styles_material3.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved. - ~ SPDX-License-Identifier: GPL-3.0-only - --> - -<resources> - - <style name="APSThemeM3.Toolbar" parent="Widget.Material3.Toolbar"> - <item name="android:background">?android:colorBackground</item> - </style> - -</resources> diff --git a/app/src/main/res/values/themes_material3.xml b/app/src/main/res/values/themes_material3.xml index 0ce3796f..0ec74a45 100644 --- a/app/src/main/res/values/themes_material3.xml +++ b/app/src/main/res/values/themes_material3.xml @@ -10,8 +10,6 @@ <item name="android:windowLightStatusBar">@bool/light_status_bar</item> <item name="android:statusBarColor">?android:colorBackground</item> <item name="android:navigationBarColor">?android:colorBackground</item> - <item name="toolbarStyle">@style/APSThemeM3.Toolbar</item> - <item name="bottomSheetDialogTheme">@style/APSThemeM3.BottomSheetDialog</item> </style> <!-- AppCompat activities whose whole UI is Compose --> @@ -43,12 +41,6 @@ <item name="windowNoTitle">true</item> </style> - <style name="APSThemeM3.BottomSheetDialog" parent="ThemeOverlay.Material3.BottomSheetDialog"> - <item name="android:windowIsFloating">false</item> - <item name="android:statusBarColor">@android:color/transparent</item> - <item name="android:navigationBarColor">@android:color/transparent</item> - </style> - <style name="APSThemeM3" parent="Theme.Material3.DayNight"> <item name="colorPrimary">@color/md_theme_light_primary</item> <item name="colorOnPrimary">@color/md_theme_light_onPrimary</item> diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/ApplicationPlugin.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/ApplicationPlugin.kt index 6d38d1fc..051645d1 100644 --- a/build-logic/src/main/kotlin/app/passwordstore/gradle/ApplicationPlugin.kt +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/ApplicationPlugin.kt @@ -28,10 +28,7 @@ class ApplicationPlugin : Plugin<Project> { includeInApk = false } - buildFeatures { - viewBinding = true - buildConfig = true - } + buildFeatures { buildConfig = true } buildTypes { named("release") { diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/LintConfig.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/LintConfig.kt index ba3c32e8..6f12065a 100644 --- a/build-logic/src/main/kotlin/app/passwordstore/gradle/LintConfig.kt +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/LintConfig.kt @@ -33,8 +33,6 @@ object LintConfig { disable += "SyntheticAccessor" // Noisy, not particularly actionable disable += "TypographyQuotes" - // False-positives abound due to use of ViewBinding - disable += "UnusedIds" // False-positive, not relevant on the API levels we support disable += "TrulyRandom" // I can't do anything about this @@ -45,8 +43,6 @@ object LintConfig { error += "ComposeM2Api" // slack-lint-checks' checker for deprecations is useless to me disable += "DeprecatedCall" - // Hilt only does field injection for fragments - disable += "FragmentFieldInjection" // Too pedantic disable += "ArgInFormattedQuantityStringRes" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 13d866e4..1e3d50ea 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,9 +29,6 @@ androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle- androidx-lifecycle-viewmodelKtx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" } androidx-navigation-compose = "androidx.navigation:navigation-compose:2.8.9" androidx-material = "com.google.android.material:material:1.12.0" -androidx-preference = "androidx.preference:preference:1.2.1" -androidx-recyclerview = "androidx.recyclerview:recyclerview:1.4.0" -androidx-recyclerviewSelection = "androidx.recyclerview:recyclerview-selection:1.2.0" aps-sublimeFuzzy = "com.github.android-password-store:sublime-fuzzy:2.3.4" aps-zxingAndroidEmbedded = "com.github.android-password-store:zxing-android-embedded:4.2.1" build-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" } @@ -74,7 +71,6 @@ thirdparty-bouncycastle-bcutil = { module = "org.bouncycastle:bcutil-jdk18on", v # noinspection GradleDependency thirdparty-commons_codec = "commons-codec:commons-codec:1.14" thirdparty-compose-lints = "com.slack.lint.compose:compose-lint-checks:1.4.1" -thirdparty-fastscroll = "me.zhanghai.android.fastscroll:library:1.3.0" # JGit upgrades also raise its minimum Java runtime requirements that we cannot satisfy on Android # noinspection GradleDependency thirdparty-jgit = "org.eclipse.jgit:org.eclipse.jgit:5.13.5.202508271544-r" @@ -82,7 +78,6 @@ thirdparty-kotlinResult = { module = "com.michael-bull.kotlin-result:kotlin-resu thirdparty-kotlinResult-coroutines = { module = "com.michael-bull.kotlin-result:kotlin-result-coroutines", version.ref = "kotlinResult" } thirdparty-leakcanary-plumber = "com.squareup.leakcanary:plumber-android-startup:2.14" thirdparty-logcat = "com.squareup.logcat:logcat:0.1" -thirdparty-modernAndroidPrefs = "de.maxr1998:modernandroidpreferences:2.4.0-beta2" thirdparty-pgpainless = "org.pgpainless:pgpainless-core:1.7.8" thirdparty-slack-lints = "com.slack.lint:slack-lint-checks:0.8.0" thirdparty-slf4j-api = { module = "org.slf4j:slf4j-api", version = { strictly = "[1.7, 1.8[", prefer = "1.7.36" } } |
