aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-04 17:40:54 +0100
committerDanilo M. <danix@danix.xyz>2026-11-04 17:40:54 +0100
commit4e771dd5e04bf40abfd3db16801865a5d1f953a2 (patch)
tree56e07e91188cb11fcc681a506cb30cc88e6ba843
parent104c07f0bcc37d87ddc371d06827ff93ee3fe504 (diff)
downloadHardenedPass-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.kts6
-rw-r--r--app/lint.xml5
-rw-r--r--app/src/main/res/layout/map_preference_widget_switch.xml13
-rw-r--r--app/src/main/res/values/attrs.xml10
-rw-r--r--app/src/main/res/values/styles_material3.xml12
-rw-r--r--app/src/main/res/values/themes_material3.xml8
-rw-r--r--build-logic/src/main/kotlin/app/passwordstore/gradle/ApplicationPlugin.kt5
-rw-r--r--build-logic/src/main/kotlin/app/passwordstore/gradle/LintConfig.kt4
-rw-r--r--gradle/libs.versions.toml5
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" } }