Merge pull request #11893 from zfox23/commerce_sameInfoDontRefresh

Don't refresh Inventory or Recent Activity if data hasn't changed
This commit is contained in:
Howard Stearns 2017-12-01 13:57:34 -08:00 committed by GitHub
commit e2efe062fe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 10 deletions

View file

@ -343,6 +343,9 @@ Rectangle {
ListModel { ListModel {
id: previousPurchasesModel; id: previousPurchasesModel;
} }
HifiCommerceCommon.SortableListModel {
id: tempPurchasesModel;
}
HifiCommerceCommon.SortableListModel { HifiCommerceCommon.SortableListModel {
id: filteredPurchasesModel; id: filteredPurchasesModel;
} }
@ -635,20 +638,40 @@ Rectangle {
} }
function buildFilteredPurchasesModel() { function buildFilteredPurchasesModel() {
filteredPurchasesModel.clear(); var sameItemCount = 0;
tempPurchasesModel.clear();
for (var i = 0; i < purchasesModel.count; i++) { for (var i = 0; i < purchasesModel.count; i++) {
if (purchasesModel.get(i).title.toLowerCase().indexOf(filterBar.text.toLowerCase()) !== -1) { if (purchasesModel.get(i).title.toLowerCase().indexOf(filterBar.text.toLowerCase()) !== -1) {
if (purchasesModel.get(i).status !== "confirmed" && !root.isShowingMyItems) { if (purchasesModel.get(i).status !== "confirmed" && !root.isShowingMyItems) {
filteredPurchasesModel.insert(0, purchasesModel.get(i)); tempPurchasesModel.insert(0, purchasesModel.get(i));
} else if ((root.isShowingMyItems && purchasesModel.get(i).edition_number === "0") || } else if ((root.isShowingMyItems && purchasesModel.get(i).edition_number === "0") ||
(!root.isShowingMyItems && purchasesModel.get(i).edition_number !== "0")) { (!root.isShowingMyItems && purchasesModel.get(i).edition_number !== "0")) {
filteredPurchasesModel.append(purchasesModel.get(i)); tempPurchasesModel.append(purchasesModel.get(i));
} }
} }
} }
for (var i = 0; i < tempPurchasesModel.count; i++) {
if (!filteredPurchasesModel.get(i)) {
sameItemCount = -1;
break;
} else if (tempPurchasesModel.get(i).itemId === filteredPurchasesModel.get(i).itemId &&
tempPurchasesModel.get(i).edition_number === filteredPurchasesModel.get(i).edition_number &&
tempPurchasesModel.get(i).status === filteredPurchasesModel.get(i).status) {
sameItemCount++;
}
}
populateDisplayedItemCounts(); if (sameItemCount !== tempPurchasesModel.count) {
sortByDate(); filteredPurchasesModel.clear();
for (var i = 0; i < tempPurchasesModel.count; i++) {
filteredPurchasesModel.append(tempPurchasesModel.get(i));
}
populateDisplayedItemCounts();
sortByDate();
}
} }
function checkIfAnyItemStatusChanged() { function checkIfAnyItemStatusChanged() {

View file

@ -38,10 +38,28 @@ Item {
onHistoryResult : { onHistoryResult : {
historyReceived = true; historyReceived = true;
if (result.status === 'success') { if (result.status === 'success') {
transactionHistoryModel.clear(); var sameItemCount = 0;
transactionHistoryModel.append(result.data.history); tempTransactionHistoryModel.clear();
tempTransactionHistoryModel.append(result.data.history);
for (var i = 0; i < tempTransactionHistoryModel.count; i++) {
if (!transactionHistoryModel.get(i)) {
sameItemCount = -1;
break;
} else if (tempTransactionHistoryModel.get(i).transaction_type === transactionHistoryModel.get(i).transaction_type &&
tempTransactionHistoryModel.get(i).text === transactionHistoryModel.get(i).text) {
sameItemCount++;
}
}
calculatePendingAndInvalidated(); if (sameItemCount !== tempTransactionHistoryModel.count) {
transactionHistoryModel.clear();
for (var i = 0; i < tempTransactionHistoryModel.count; i++) {
transactionHistoryModel.append(tempTransactionHistoryModel.get(i));
}
calculatePendingAndInvalidated();
}
} }
refreshTimer.start(); refreshTimer.start();
} }
@ -143,10 +161,9 @@ Item {
Timer { Timer {
id: refreshTimer; id: refreshTimer;
interval: 4000; // Remove this after demo? interval: 4000;
onTriggered: { onTriggered: {
console.log("Refreshing Wallet Home..."); console.log("Refreshing Wallet Home...");
historyReceived = false;
commerce.balance(); commerce.balance();
commerce.history(); commerce.history();
} }
@ -187,6 +204,9 @@ Item {
// Style // Style
color: hifi.colors.baseGrayHighlight; color: hifi.colors.baseGrayHighlight;
} }
ListModel {
id: tempTransactionHistoryModel;
}
ListModel { ListModel {
id: transactionHistoryModel; id: transactionHistoryModel;
} }