Skip to content

Commit aabe97d

Browse files
committed
restore scanner product info banner
1 parent d328346 commit aabe97d

File tree

3 files changed

+58
-12
lines changed

3 files changed

+58
-12
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ allprojects {
2424
}
2525

2626
project.ext {
27-
sdkVersion='0.11.0-alpha4'
27+
sdkVersion='0.11.0-alpha5'
2828
versionCode=1
2929

3030
compileSdkVersion=28

ui/src/main/java/io/snabble/sdk/ui/scanner/ProductResolver.java

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public class ProductResolver {
2424
private Context context;
2525
private OnShowListener onShowListener;
2626
private OnDismissListener onDismissListener;
27+
private OnProductNotFoundListener onProductNotFoundListener;
28+
private OnNetworkErrorListener onNetworkErrorListener;
2729
private BarcodeFormat barcodeFormat;
2830

2931
public ProductResolver(Context context) {
@@ -167,16 +169,15 @@ public void onDismissed() {
167169

168170
private void handleProductNotFound(ScannableCode scannedCode) {
169171
progressDialog.dismiss();
172+
Telemetry.event(Telemetry.Event.ScannedUnknownCode, scannedCode.getCode());
170173

171174
if(onDismissListener != null) {
172175
onDismissListener.onDismiss();
173176
}
174177

175-
Telemetry.event(Telemetry.Event.ScannedUnknownCode, scannedCode.getCode());
176-
Toast.makeText(context,
177-
R.string.Snabble_Scanner_unknownBarcode,
178-
Toast.LENGTH_LONG)
179-
.show();
178+
if (onProductNotFoundListener != null) {
179+
onProductNotFoundListener.onProductNotFound();
180+
}
180181
}
181182

182183
private void handleProductError() {
@@ -186,10 +187,9 @@ private void handleProductError() {
186187
onDismissListener.onDismiss();
187188
}
188189

189-
Toast.makeText(context,
190-
R.string.Snabble_Scanner_networkError,
191-
Toast.LENGTH_LONG)
192-
.show();
190+
if (onNetworkErrorListener != null) {
191+
onNetworkErrorListener.onNetworkError();
192+
}
193193
}
194194

195195
private void showProduct(Product product, ScannableCode scannedCode) {
@@ -220,6 +220,14 @@ public interface OnDismissListener {
220220
void onDismiss();
221221
}
222222

223+
public interface OnProductNotFoundListener {
224+
void onProductNotFound();
225+
}
226+
227+
public interface OnNetworkErrorListener {
228+
void onNetworkError();
229+
}
230+
223231
public static class Builder {
224232
private ProductResolver productResolver;
225233

@@ -247,6 +255,16 @@ public Builder setOnDismissListener(OnDismissListener listener) {
247255
return this;
248256
}
249257

258+
public Builder setOnProductNotFoundListener(OnProductNotFoundListener listener) {
259+
productResolver.onProductNotFoundListener = listener;
260+
return this;
261+
}
262+
263+
public Builder setOnNetworkErrorListener(OnNetworkErrorListener listener) {
264+
productResolver.onNetworkErrorListener = listener;
265+
return this;
266+
}
267+
250268
public ProductResolver create() {
251269
return productResolver;
252270
}

ui/src/main/java/io/snabble/sdk/ui/scanner/SelfScanningView.java

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,22 @@ public void onShow() {
163163
.setOnDismissListener(new ProductResolver.OnDismissListener() {
164164
@Override
165165
public void onDismiss() {
166-
resumeBarcodeScanner();
167-
delayNextScan();
166+
if (!isShowingHint) {
167+
resumeBarcodeScanner();
168+
delayNextScan();
169+
}
170+
}
171+
})
172+
.setOnProductNotFoundListener(new ProductResolver.OnProductNotFoundListener() {
173+
@Override
174+
public void onProductNotFound() {
175+
showInfo(R.string.Snabble_Scanner_unknownBarcode);
176+
}
177+
})
178+
.setOnNetworkErrorListener(new ProductResolver.OnNetworkErrorListener() {
179+
@Override
180+
public void onNetworkError() {
181+
showInfo(R.string.Snabble_Scanner_networkError);
168182
}
169183
})
170184
.create()
@@ -192,6 +206,20 @@ private void handleBarcodeDetected(final Barcode barcode) {
192206
}
193207
}
194208

209+
private void showInfo(@StringRes int resId) {
210+
info.setVisibility(View.VISIBLE);
211+
info.setText(resId);
212+
info.animate().translationY(0).start();
213+
214+
infoHandler.removeCallbacksAndMessages(null);
215+
infoHandler.postDelayed(new Runnable() {
216+
@Override
217+
public void run() {
218+
info.animate().translationY(-info.getHeight()).start();
219+
}
220+
}, UIUtils.SNACKBAR_LENGTH_VERY_LONG);
221+
}
222+
195223
private void onClickEnterBarcode() {
196224
SnabbleUICallback callback = SnabbleUI.getUiCallback();
197225
if (callback != null) {

0 commit comments

Comments
 (0)