fix: double delimters in activity view

This commit is contained in:
poka 2023-02-10 22:54:36 +01:00
parent 60427463b5
commit 22c59613ee
2 changed files with 17 additions and 16 deletions

View File

@ -253,7 +253,7 @@ Future<QueryResult> _execQuery(
return await client.query(options); return await client.query(options);
} }
Map computeHistoryView(repository, lastDateDelimiter, isDouble) { Map computeHistoryView(repository) {
bool isTody = false; bool isTody = false;
bool isYesterday = false; bool isYesterday = false;
bool isThisWeek = false; bool isThisWeek = false;
@ -281,27 +281,26 @@ Map computeHistoryView(repository, lastDateDelimiter, isDouble) {
final yesterdayDate = DateTime(now.year, now.month, now.day - 1); final yesterdayDate = DateTime(now.year, now.month, now.day - 1);
if (transactionDate == todayDate && !isTody) { if (transactionDate == todayDate && !isTody) {
dateDelimiter = lastDateDelimiter = "today".tr(); dateDelimiter = "today".tr();
isTody = true; isTody = true;
} else if (transactionDate == yesterdayDate && !isYesterday) { } else if (transactionDate == yesterdayDate && !isYesterday) {
dateDelimiter = lastDateDelimiter = "yesterday".tr(); dateDelimiter = "yesterday".tr();
isYesterday = true; isYesterday = true;
} else if (weekNumber(date) == weekNumber(now) && } else if (weekNumber(date) == weekNumber(now) &&
date.year == now.year && date.year == now.year &&
transactionDate != yesterdayDate && transactionDate != yesterdayDate &&
transactionDate != todayDate && transactionDate != todayDate &&
!isThisWeek) { !isThisWeek) {
dateDelimiter = lastDateDelimiter = "thisWeek".tr(); dateDelimiter = "thisWeek".tr();
isThisWeek = true; isThisWeek = true;
} else if (lastDateDelimiter != "${monthsInYear[date.month]} ${date.year}" && } else if (dateDelimiter != "${monthsInYear[date.month]} ${date.year}" &&
transactionDate != todayDate && transactionDate != todayDate &&
transactionDate != yesterdayDate && transactionDate != yesterdayDate &&
!(weekNumber(date) == weekNumber(now) && date.year == now.year)) { !(weekNumber(date) == weekNumber(now) && date.year == now.year)) {
if (date.year == now.year) { if (date.year == now.year) {
dateDelimiter = lastDateDelimiter = monthsInYear[date.month]; dateDelimiter = monthsInYear[date.month];
} else { } else {
dateDelimiter = dateDelimiter = "${monthsInYear[date.month]} ${date.year}";
lastDateDelimiter = "${monthsInYear[date.month]} ${date.year}";
} }
} else { } else {
isDelimiter = false; isDelimiter = false;

View File

@ -141,9 +141,8 @@ class HistoryQuery extends StatelessWidget {
final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false); final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false);
int keyID = 0; int keyID = 0;
const double avatarSize = 200; const double avatarSize = 200;
String? lastDateDelimiter;
bool? isDouble;
bool isMigrationPassed = false; bool isMigrationPassed = false;
List<String> pastDelimiters = [];
return duniterIndexer.transBC == null return duniterIndexer.transBC == null
? Column(children: <Widget>[ ? Column(children: <Widget>[
@ -156,11 +155,9 @@ class HistoryQuery extends StatelessWidget {
: Column(children: <Widget>[ : Column(children: <Widget>[
Column( Column(
children: duniterIndexer.transBC!.map((repository) { children: duniterIndexer.transBC!.map((repository) {
final answer = final answer = computeHistoryView(repository);
computeHistoryView(repository, lastDateDelimiter, isDouble); pastDelimiters.add(answer['dateDelimiter']);
isDouble = lastDateDelimiter == answer['dateDelimiter'] ||
answer['dateDelimiter'] == '';
lastDateDelimiter = answer['dateDelimiter'];
bool isMigrationTime = false; bool isMigrationTime = false;
if (answer['isMigrationTime'] && !isMigrationPassed) { if (answer['isMigrationTime'] && !isMigrationPassed) {
isMigrationPassed = true; isMigrationPassed = true;
@ -190,7 +187,12 @@ class HistoryQuery extends StatelessWidget {
], ],
), ),
), ),
if (!isDouble!) // if ((countsDelimiter[answer['dateDelimiter']] ?? 0) >= 1)
if (pastDelimiters.length == 1 ||
pastDelimiters.length >= 2 &&
!(pastDelimiters[pastDelimiters.length - 2] ==
answer['dateDelimiter']))
Padding( Padding(
padding: const EdgeInsets.symmetric(vertical: 30), padding: const EdgeInsets.symmetric(vertical: 30),
child: Text( child: Text(