@@ -50,27 +50,52 @@ public class Events {
5050 this .shoppingCart = shoppingCart ;
5151
5252 project .getShoppingCart ().addListener (new ShoppingCart .SimpleShoppingCartListener () {
53+
5354 @ Override
5455 public void onChanged (ShoppingCart cart ) {
55- if (cartId != null && !cart .getId ().equals (cartId )) {
56- PayloadSessionEnd payloadSessionEnd = new PayloadSessionEnd ();
57- payloadSessionEnd .session = cartId ;
58- post (payloadSessionEnd , false );
59- cartId = cart .getId ();
60- hasSentSessionStart = false ;
61- return ;
62- }
56+ updateShop (Snabble .getInstance ().getCheckedInShop ());
6357
6458 if (shop != null ) {
6559 if (!hasSentSessionStart ) {
6660 PayloadSessionStart payloadSessionStart = new PayloadSessionStart ();
6761 payloadSessionStart .session = cartId ;
6862 post (payloadSessionStart , false );
6963 }
70-
7164 post (Events .this .project .getShoppingCart ().toBackendCart (), true );
7265 }
7366 }
67+
68+ @ Override
69+ public void onCleared (ShoppingCart cart ) {
70+ final boolean isSameCartWithNewId = shoppingCart == cart && !cart .getId ().equals (cartId );
71+ if (isSameCartWithNewId ) {
72+ PayloadSessionEnd payloadSessionEnd = new PayloadSessionEnd ();
73+ payloadSessionEnd .session = cartId ;
74+ post (payloadSessionEnd , false );
75+ cartId = cart .getId ();
76+ hasSentSessionStart = false ;
77+ }
78+ }
79+
80+ @ Override
81+ public void onProductsUpdated (ShoppingCart list ) {
82+ // Override because it shouldn't trigger onChanged(Cart)
83+ }
84+
85+ @ Override
86+ public void onPricesUpdated (ShoppingCart list ) {
87+ // Override because it shouldn't trigger onChanged(Cart)
88+ }
89+
90+ @ Override
91+ public void onTaxationChanged (ShoppingCart list , ShoppingCart .Taxation taxation ) {
92+ // Override because it shouldn't trigger onChanged(Cart)
93+ }
94+
95+ @ Override
96+ public void onCartDataChanged (ShoppingCart list ) {
97+ // Override because it shouldn't trigger onChanged(Cart)
98+ }
7499 });
75100 }
76101
@@ -83,6 +108,7 @@ public void updateShop(Shop newShop) {
83108 shop = newShop ;
84109 } else {
85110 shop = null ;
111+ cartId = null ;
86112 hasSentSessionStart = false ;
87113 }
88114 }
0 commit comments