Wownero: dispatch getCurrentAccount by wallet.type in AccountCustomizer

The "Wallet Accounts" reorder modal threw on open for Wownero wallets:
account_customizer.dart unconditionally called monero!.getCurrentAccount,
which casts the wallet to MoneroWallet internally. WowneroWallet is a
sibling type, not a subtype, so the cast blew up before the active-card
swap logic ran.

Dispatch on wallet.type and use the wownero! proxy for Wownero, matching
the pattern already in card_customizer_bloc.dart, addresses_page.dart,
and dashboard_view_model.dart. Skip the swap entirely for any other
wallet type rather than guessing.

Bump 1.0.0+5 -> 1.0.0+6.
This commit is contained in:
jwinterm
2026-06-03 09:15:10 -04:00
parent a1b3add2a6
commit 21f3a75aa5
2 changed files with 10 additions and 2 deletions
+9 -1
View File
@@ -2,6 +2,7 @@ import 'dart:ui';
import 'package:hash_wallet/di.dart';
import 'package:hash_wallet/generated/i18n.dart';
import 'package:hash_wallet/monero/monero.dart';
import 'package:hash_wallet/wownero/wownero.dart';
import 'package:hash_wallet/new-ui/pages/card_customizer.dart';
import 'package:hash_wallet/new-ui/viewmodels/card_customizer/card_customizer_bloc.dart';
import 'package:hash_wallet/new-ui/widgets/coins_page/cards/balance_card.dart';
@@ -21,6 +22,7 @@ import 'package:cw_core/card_design.dart';
import 'package:cw_core/generate_name.dart';
import 'package:cw_core/sync_status.dart';
import 'package:cw_core/utils/print_verbose.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -62,7 +64,13 @@ class _AccountCustomizerState extends State<AccountCustomizer> {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
loadCards();
final activeId = monero!.getCurrentAccount(widget.dashboardViewModel.wallet).id;
final wallet = widget.dashboardViewModel.wallet;
final int? activeId = wallet.type == WalletType.monero
? monero?.getCurrentAccount(wallet).id
: wallet.type == WalletType.wownero
? wownero?.getCurrentAccount(wallet).id
: null;
if (activeId == null) return;
for (int i = 0; i < _items.length-1; i++) {
if(_items[i].accountListItem.id == activeId) {
final lastIndex = _items.length - 1;
+1 -1
View File
@@ -1,6 +1,6 @@
name: hash_wallet
description: Hash Bags — a noncustodial multi-currency wallet by Such Software LLC.
version: 1.0.0+5
version: 1.0.0+6
publish_to: none
environment: