Files
Amber/app/src/main/AndroidManifest.xml
T
Claude e7b52f512b Fix all Android Lint warnings and enforce lint in git hooks
Lint reported 113 warnings; this fixes them and turns on warningsAsErrors
so new ones fail the build. The pre-commit hook now runs `ktlintCheck lint`
and the pre-push hook runs `test lint`.

Fixes:
- Replace "..." with the typographic ellipsis in every locale's strings.xml
- Remove unused resources: psbt_amount_sats and enable_applications_backup
  strings, white/amber/gray colors, ic_launcher_background_white drawable
- Remove launcher bitmap fallbacks (background/foreground/monochrome/round
  and density ic_launcher.webp): minSdk 26 always resolves the adaptive icon
- Move ic_qrcode.png to drawable-nodpi
- Shrink ic_tor from a declared 512dp to 24dp (only ever drawn at 20dp)
- Make modifier the first optional parameter of RemoteAppIcon
- Use the lambda Modifier.offset overload for the animated toggle indicator
- Replace deprecated Icons.Default.Article with the AutoMirrored version
- Drop a redundant when branch, opt in to resetReplayCache's experimental API

Suppressed with a stated reason: ScopedStorage (legacy backup import),
InsecureBaseConfiguration (local/onion ws:// relays), PluralsCandidate,
VectorPath/VectorRaster (artwork), and ObsoleteSdkInt for mipmap-anydpi-v26
(AAPT cannot resolve the launcher icon from plain mipmap-anydpi). Version
freshness checks are disabled so hooks stay deterministic over time.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VZCeWRzzk4dxptDiEZyXjM
2026-07-06 10:40:15 +00:00

124 lines
5.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<queries>
<package android:name="com.greenart7c3.nostrsigner.debug" />
<package android:name="com.greenart7c3.nostrsigner" />
<package android:name="dev.zapstore.app" />
</queries>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<!-- Kept for backup import/export on older devices; newer APIs use the Storage Access Framework -->
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<application
android:name=".Amber"
android:allowBackup="false"
android:configChanges="orientation|screenSize|screenLayout"
android:dataExtractionRules="@xml/data_extraction_rules"
android:enableOnBackInvokedCallback="true"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:launchMode="singleTop"
android:localeConfig="@xml/locales_config"
android:supportsRtl="true"
android:theme="@style/Theme.NostrSigner"
android:networkSecurityConfig="@xml/network_security_config"
android:windowSoftInputMode="adjustResize"
tools:targetApi="33">
<receiver
android:name=".service.KillSwitchReceiver"
android:enabled="true"
android:exported="false"></receiver>
<receiver
android:name=".service.ReconnectReceiver"
android:enabled="true"
android:exported="false" />
<receiver
android:name=".service.StopServiceReceiver"
android:enabled="true"
android:exported="false" />
<receiver
android:name=".service.TorRestartReceiver"
android:enabled="true"
android:exported="false" />
<receiver
android:name=".service.BootReceiver"
android:enabled="true"
android:exported="false"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<provider
android:name=".SignerProvider"
android:authorities="${applicationId}.PING;${applicationId}.SIGN_EVENT;${applicationId}.NIP04_ENCRYPT;${applicationId}.NIP04_DECRYPT;${applicationId}.NIP44_ENCRYPT;${applicationId}.NIP44_DECRYPT;${applicationId}.NIP44_V3_ENCRYPT;${applicationId}.NIP44_V3_DECRYPT;${applicationId}.GET_PUBLIC_KEY;${applicationId}.DECRYPT_ZAP_EVENT"
android:enabled="true"
android:exported="true"
tools:ignore="ExportedContentProvider" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths" />
</provider>
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SignerActivity"
android:exported="true"
android:launchMode="singleTask"
android:taskAffinity=""
android:theme="@style/Theme.NostrSigner.Modal">
<intent-filter>
<action android:name="com.greenart7c3.nostrsigner.MAIN_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="nostrsigner" />
</intent-filter>
</activity>
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="fullSensor"
tools:ignore="DiscouragedApi"
tools:replace="screenOrientation" />
</application>
</manifest>