Skip to content
Snippets Groups Projects
Commit 33635d92 authored by poka's avatar poka
Browse files

WIP: display changeOwnerkey event on activity screen

parent f4144362
Branches
Tags
No related merge requests found
Pipeline #19006 waiting for manual action
...@@ -8,6 +8,7 @@ import 'package:gecko/globals.dart'; ...@@ -8,6 +8,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/models/queries_indexer.dart'; import 'package:gecko/models/queries_indexer.dart';
import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/substrate_sdk.dart';
import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:provider/provider.dart';
class DuniterIndexer with ChangeNotifier { class DuniterIndexer with ChangeNotifier {
Map<String, String?> walletNameIndexer = {}; Map<String, String?> walletNameIndexer = {};
...@@ -253,15 +254,18 @@ Future<QueryResult> _execQuery( ...@@ -253,15 +254,18 @@ Future<QueryResult> _execQuery(
return await client.query(options); return await client.query(options);
} }
Map computeHistoryView(repository) { Map computeHistoryView(repository, String address) {
bool isTody = false; bool isTody = false;
bool isYesterday = false; bool isYesterday = false;
bool isThisWeek = false; bool isThisWeek = false;
bool isMigrationTime = false; bool isMigrationTime = false;
bool isChangeOwnerkeyTime = false;
String? dateDelimiter; String? dateDelimiter;
DateTime now = DateTime.now(); DateTime now = DateTime.now();
final bool isUdUnit = configBox.get('isUdUnit') ?? false; final bool isUdUnit = configBox.get('isUdUnit') ?? false;
final sub = Provider.of<SubstrateSdk>(homeContext, listen: false);
late double amount; late double amount;
late String finalAmount; late String finalAmount;
DateTime date = repository[0]; DateTime date = repository[0];
...@@ -321,12 +325,21 @@ Map computeHistoryView(repository) { ...@@ -321,12 +325,21 @@ Map computeHistoryView(repository) {
isMigrationTime = false; isMigrationTime = false;
} }
log.d('taaaaaaaaaaaaaa: $date');
log.d('taaaaaaa: ${sub.oldOwnerKeys[address]?[1]}');
if (date.compareTo(sub.oldOwnerKeys[address]?[1] ?? DateTime(2000)) < 0) {
isChangeOwnerkeyTime = true;
} else {
isChangeOwnerkeyTime = false;
}
return { return {
'finalAmount': finalAmount, 'finalAmount': finalAmount,
'isMigrationTime': isMigrationTime, 'isMigrationTime': isMigrationTime,
'dateDelimiter': dateDelimiter ?? '', 'dateDelimiter': dateDelimiter ?? '',
'isDelimiter': isDelimiter, 'isDelimiter': isDelimiter,
'dateForm': dateForm, 'dateForm': dateForm,
'isChangeOwnerkeyTime': isChangeOwnerkeyTime
}; };
} }
......
...@@ -46,6 +46,7 @@ class SubstrateSdk with ChangeNotifier { ...@@ -46,6 +46,7 @@ class SubstrateSdk with ChangeNotifier {
bool isCesiumAddresLoading = false; bool isCesiumAddresLoading = false;
late int udValue; late int udValue;
Map<String, List<int>> certsCounterCache = {}; Map<String, List<int>> certsCounterCache = {};
Map<String, List> oldOwnerKeys = {};
///////////////////////////////////// /////////////////////////////////////
////////// 1: API METHODS /////////// ////////// 1: API METHODS ///////////
...@@ -330,6 +331,29 @@ class SubstrateSdk with ChangeNotifier { ...@@ -330,6 +331,29 @@ class SubstrateSdk with ChangeNotifier {
return certMeta; return certMeta;
} }
Future<List> getOldOwnerKey(String address) async {
// final walletOptions =
// Provider.of<WalletOptionsProvider>(homeContext, listen: false);
var idtyIndex = await _getIdentityIndexOf(address);
if (idtyIndex == 0) return [];
final Map? idtyData = await _getStorage('identity.identities($idtyIndex)');
if (idtyData == null || idtyData['oldOwnerKey'] == null) return [];
List oldKeys = idtyData['oldOwnerKey'] ?? [];
if (oldKeys.isEmpty) return [];
oldKeys[1] = blocNumberToDate(oldKeys[1]);
oldOwnerKeys.putIfAbsent(address, () => oldKeys);
return oldKeys;
}
DateTime blocNumberToDate(int blocNumber) {
return startBlockchainTime.add(Duration(seconds: blocNumber * 6));
}
Future<String> idtyStatus(String address) async { Future<String> idtyStatus(String address) async {
// final walletOptions = // final walletOptions =
// Provider.of<WalletOptionsProvider>(homeContext, listen: false); // Provider.of<WalletOptionsProvider>(homeContext, listen: false);
......
...@@ -5,18 +5,32 @@ import 'package:gecko/globals.dart'; ...@@ -5,18 +5,32 @@ import 'package:gecko/globals.dart';
import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/models/widgets_keys.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gecko/providers/duniter_indexer.dart'; import 'package:gecko/providers/duniter_indexer.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:gecko/widgets/bottom_app_bar.dart'; import 'package:gecko/widgets/bottom_app_bar.dart';
import 'package:gecko/widgets/header_profile.dart'; import 'package:gecko/widgets/header_profile.dart';
import 'package:gecko/widgets/history_query.dart'; import 'package:gecko/widgets/history_query.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class ActivityScreen extends StatelessWidget with ChangeNotifier { class ActivityScreen extends StatefulWidget {
ActivityScreen({required this.address, required this.avatar, this.username}) const ActivityScreen(
{required this.address, required this.avatar, this.username})
: super(key: keyActivityScreen); : super(key: keyActivityScreen);
final String address; final String address;
final String? username; final String? username;
final Image avatar; final Image avatar;
@override
State<ActivityScreen> createState() => _ActivityScreenState();
}
class _ActivityScreenState extends State<ActivityScreen> {
@override
void initState() {
final sub = Provider.of<SubstrateSdk>(homeContext, listen: false);
sub.getOldOwnerKey(widget.address);
super.initState();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: true); final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: true);
...@@ -45,8 +59,8 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier { ...@@ -45,8 +59,8 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
), ),
bottomNavigationBar: const GeckoBottomAppBar(), bottomNavigationBar: const GeckoBottomAppBar(),
body: Column(children: <Widget>[ body: Column(children: <Widget>[
HeaderProfile(address: address, username: username), HeaderProfile(address: widget.address, username: widget.username),
HistoryQuery(address: address), HistoryQuery(address: widget.address),
])), ])),
); );
} }
......
...@@ -53,8 +53,6 @@ class WalletViewScreen extends StatelessWidget { ...@@ -53,8 +53,6 @@ class WalletViewScreen extends StatelessWidget {
walletProfile.address = address; walletProfile.address = address;
sub.setCurrentWallet(defaultWallet); sub.setCurrentWallet(defaultWallet);
log.d('aaaaaaaaaaaaaaaaaaa: $username');
return Scaffold( return Scaffold(
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
......
...@@ -116,7 +116,12 @@ class HistoryQuery extends StatelessWidget { ...@@ -116,7 +116,12 @@ class HistoryQuery extends StatelessWidget {
child: ListView( child: ListView(
key: keyListTransactions, key: keyListTransactions,
controller: scrollController, controller: scrollController,
children: <Widget>[HistoryView(result: result)], children: <Widget>[
HistoryView(
result: result,
address: address,
)
],
), ),
), ),
), ),
......
...@@ -10,8 +10,10 @@ class HistoryView extends StatelessWidget { ...@@ -10,8 +10,10 @@ class HistoryView extends StatelessWidget {
const HistoryView({ const HistoryView({
Key? key, Key? key,
required this.result, required this.result,
required this.address,
}) : super(key: key); }) : super(key: key);
final QueryResult result; final QueryResult result;
final String address;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -32,7 +34,7 @@ class HistoryView extends StatelessWidget { ...@@ -32,7 +34,7 @@ class HistoryView extends StatelessWidget {
: Column(children: <Widget>[ : Column(children: <Widget>[
Column( Column(
children: duniterIndexer.transBC!.map((repository) { children: duniterIndexer.transBC!.map((repository) {
final answer = computeHistoryView(repository); final answer = computeHistoryView(repository, address);
pastDelimiters.add(answer['dateDelimiter']); pastDelimiters.add(answer['dateDelimiter']);
bool isMigrationTime = false; bool isMigrationTime = false;
...@@ -64,8 +66,28 @@ class HistoryView extends StatelessWidget { ...@@ -64,8 +66,28 @@ class HistoryView extends StatelessWidget {
], ],
), ),
), ),
// if ((countsDelimiter[answer['dateDelimiter']] ?? 0) >= 1) if (answer['isChangeOwnerkeyTime'])
Padding(
padding: const EdgeInsets.symmetric(vertical: 30),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Image(
image: AssetImage('assets/party.png'), height: 40),
const SizedBox(width: 40),
Text(
'Identité migré !'.tr(),
style: const TextStyle(
fontSize: 25,
color: Colors.blueAccent,
fontWeight: FontWeight.w500),
),
const SizedBox(width: 40),
const Image(
image: AssetImage('assets/party.png'), height: 40),
],
),
),
if (pastDelimiters.length == 1 || if (pastDelimiters.length == 1 ||
pastDelimiters.length >= 2 && pastDelimiters.length >= 2 &&
!(pastDelimiters[pastDelimiters.length - 2] == !(pastDelimiters[pastDelimiters.length - 2] ==
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment