- Add NFT metadata fetching via Koios asset_info endpoint - Parse CIP-25 onchain_metadata for image, name, description - Convert IPFS URLs to ipfs.io gateway URLs - Display 64dp thumbnails with 8dp rounded corners using Coil AsyncImage - Add bottom sheet detail view for NFT expansion (larger image + metadata) - Graceful fallback with placeholder icons on image load failure - Load metadata in presenter, cache results for 30 minutes - Parallel metadata fetching for better performance
64 lines
1.8 KiB
Kotlin
64 lines
1.8 KiB
Kotlin
/*
|
|
* Copyright (c) 2026 Sulkta Coop.
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import extension.setupDependencyInjection
|
|
|
|
plugins {
|
|
id("io.element.android-compose-library")
|
|
id("kotlin-parcelize")
|
|
alias(libs.plugins.kotlin.serialization)
|
|
}
|
|
|
|
android {
|
|
namespace = "io.element.android.features.wallet.impl"
|
|
|
|
testOptions {
|
|
unitTests {
|
|
isIncludeAndroidResources = true
|
|
}
|
|
}
|
|
}
|
|
|
|
setupDependencyInjection()
|
|
|
|
dependencies {
|
|
api(projects.features.wallet.api)
|
|
implementation(projects.libraries.architecture)
|
|
implementation(projects.libraries.core)
|
|
implementation(projects.libraries.matrix.api)
|
|
implementation(projects.libraries.matrix.impl)
|
|
implementation(projects.libraries.designsystem)
|
|
implementation(projects.libraries.cryptography.api)
|
|
implementation(projects.libraries.uiStrings)
|
|
|
|
// Cardano - using Koios backend (no API key required)
|
|
implementation("com.bloxbean.cardano:cardano-client-lib:0.7.1")
|
|
implementation("com.bloxbean.cardano:cardano-client-backend-koios:0.7.1")
|
|
implementation("com.bloxbean.cardano:cardano-client-crypto:0.7.1")
|
|
|
|
// Biometric
|
|
implementation(libs.androidx.biometric)
|
|
|
|
// JSON
|
|
implementation(libs.serialization.json)
|
|
// QR code generation
|
|
implementation(libs.google.zxing)
|
|
|
|
// Coroutines
|
|
implementation(libs.coroutines.core)
|
|
|
|
// Image loading for NFT thumbnails
|
|
implementation(libs.coil.compose)
|
|
implementation(libs.coil.network.okhttp)
|
|
|
|
// Testing
|
|
testImplementation(projects.features.wallet.test)
|
|
testImplementation(projects.libraries.matrix.test)
|
|
testImplementation(libs.test.junit)
|
|
testImplementation(libs.test.truth)
|
|
testImplementation(libs.coroutines.test)
|
|
testImplementation(libs.test.turbine)
|
|
}
|