@@ -24,6 +24,7 @@ public class ProductResolver {
2424 private Context context ;
2525 private OnShowListener onShowListener ;
2626 private OnDismissListener onDismissListener ;
27+ private OnShelfCodeScannedListener onShelfCodeScannedListener ;
2728 private OnProductNotFoundListener onProductNotFoundListener ;
2829 private OnNetworkErrorListener onNetworkErrorListener ;
2930 private BarcodeFormat barcodeFormat ;
@@ -127,13 +128,16 @@ private void handleProductAvailable(Product product, boolean wasOnlineProduct, S
127128 if (product .getBundleProducts ().length > 0 ){
128129 showBundleDialog (product );
129130 } else {
130- if (product .getType () == Product .Type .PreWeighed && !scannedCode .hasEmbeddedData ()) {
131- Toast .makeText (context ,
132- R .string .Snabble_Scanner_scannedShelfCode ,
133- Toast .LENGTH_LONG )
134- .show ();
131+ if (product .getType () == Product .Type .PreWeighed && (!scannedCode .hasEmbeddedData () || scannedCode .getEmbeddedData () == 0 )) {
132+ if (onShelfCodeScannedListener != null ) {
133+ onShelfCodeScannedListener .onShelfCodeScanned ();
134+ }
135135
136136 progressDialog .dismiss ();
137+
138+ if (onDismissListener != null ) {
139+ onDismissListener .onDismiss ();
140+ }
137141 } else {
138142 showProduct (product , scannedCode );
139143
@@ -220,6 +224,10 @@ public interface OnDismissListener {
220224 void onDismiss ();
221225 }
222226
227+ public interface OnShelfCodeScannedListener {
228+ void onShelfCodeScanned ();
229+ }
230+
223231 public interface OnProductNotFoundListener {
224232 void onProductNotFound ();
225233 }
@@ -265,6 +273,11 @@ public Builder setOnNetworkErrorListener(OnNetworkErrorListener listener) {
265273 return this ;
266274 }
267275
276+ public Builder setOnShelfCodeScannedListener (OnShelfCodeScannedListener listener ) {
277+ productResolver .onShelfCodeScannedListener = listener ;
278+ return this ;
279+ }
280+
268281 public ProductResolver create () {
269282 return productResolver ;
270283 }
0 commit comments