Add javadoc, rename FindUserThread -> NetworkThread, introduce AbstractScannerActivity.handleBarcode, refs #9991

This commit is contained in:
anonymouzz
2017-08-04 10:41:54 +07:00
parent 2a40d033dc
commit d192f5b376
5 changed files with 62 additions and 26 deletions

View File

@@ -29,9 +29,11 @@ android {
} }
buildTypes { buildTypes {
debug {
debuggable true
signingConfig signingConfigs.debug
}
release { release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug signingConfig signingConfigs.debug
} }
} }

View File

@@ -33,6 +33,7 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.Toast;
import com.dinect.net.ApiClient; import com.dinect.net.ApiClient;
@@ -47,12 +48,12 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
static final String TAG = "C.ScannerActivity"; static final String TAG = "C.ScannerActivity";
protected ApiClient apiClient; protected ApiClient apiClient;
protected FindUserThread findUserThread; protected NetworkThread networkThread;
LogoutDialogFragment logoutDialog; LogoutDialogFragment logoutDialog;
boolean isCameraAvailable() { boolean isCameraAvailable() {
Log.d(TAG, "isCamerAvailable"); Log.d(TAG, "isCameraAvailable");
PackageManager pm = getPackageManager(); PackageManager pm = getPackageManager();
return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA); return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
} }
@@ -64,6 +65,12 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
setResult(RESULT_CANCELED, response); setResult(RESULT_CANCELED, response);
} }
/**
* initialize activity
* - removes windows title
* - set content view to layout id
* @param layoutID layout to use
* */
protected final boolean init(final int layoutID) { protected final boolean init(final int layoutID) {
Log.d(TAG, "init"); Log.d(TAG, "init");
if (!isCameraAvailable()) { if (!isCameraAvailable()) {
@@ -77,6 +84,9 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
return true; return true;
} }
/**
* Configure toolbar of app
* */
protected final void setupToolbar(final int toolbarId, final @NonNull String title) { protected final void setupToolbar(final int toolbarId, final @NonNull String title) {
Log.d(TAG, "setupToolbar"); Log.d(TAG, "setupToolbar");
final Toolbar toolbar = (Toolbar) findViewById(toolbarId); final Toolbar toolbar = (Toolbar) findViewById(toolbarId);
@@ -90,12 +100,18 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
} }
} }
/**
* Adds scanner view to target frame layout
* */
protected final void setupScanner(final View view, final int targetFrameId) { protected final void setupScanner(final View view, final int targetFrameId) {
Log.d(TAG, "setupScanner"); Log.d(TAG, "setupScanner");
final FrameLayout root = (FrameLayout) findViewById(targetFrameId); final FrameLayout root = (FrameLayout) findViewById(targetFrameId);
root.addView(view, 0); root.addView(view, 0);
} }
/**
* Initialize network client
* */
protected final void setupApiClient(final Intent intent) { protected final void setupApiClient(final Intent intent) {
Log.d(TAG, "setupApiClient"); Log.d(TAG, "setupApiClient");
final String url = intent.getStringExtra(MainActivity.PREF_API_URL); final String url = intent.getStringExtra(MainActivity.PREF_API_URL);
@@ -106,20 +122,34 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
+ url + ", appToken " + appToken + ", token " + token); + url + ", appToken " + appToken + ", token " + token);
apiClient = new ApiClient(url, appToken, token); apiClient = new ApiClient(url, appToken, token);
networkThread = new NetworkThread(this, apiClient);
} }
protected final void networkCallback(final @NonNull Pair<String, String> result) { /**
* Handles barcode.
* Makes network call in separate thread and call
* networkResponseCallback
* @param card scanned card number
* */
public void handleBarcode(final @NonNull String card) {
Log.d(TAG, "handleBarcode");
if (BuildConfig.DEBUG) {
Toast.makeText(this, card, Toast.LENGTH_SHORT).show();
}
networkThread.card(card).start();
}
protected final void networkResponseCallback(final @NonNull Pair<String, String> result) {
Log.d(TAG, "networkResponseCallback");
if (null != result.first) { if (null != result.first) {
Log.d(TAG, "user found, finish activity with result"); Log.d(TAG, "user found, finish activity with result");
final Intent intent = new Intent(); final Intent intent = new Intent();
intent.putExtra("user", result.second); intent.putExtra("user", result.second);
intent.putExtra("card", result.first); intent.putExtra("card", result.first);
setResult(RESULT_OK, intent); setResult(RESULT_OK, intent);
networkThread.close();
finish(); finish();
} }
findUserThread.close();
findUserThread = null;
} }
@Override @Override

View File

@@ -62,7 +62,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
} }
@Override @Override
protected void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (!isCameraAvailable()) { if (!isCameraAvailable()) {
@@ -119,7 +119,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
} }
@Override @Override
protected void onResume() { public void onResume() {
super.onResume(); super.onResume();
// Open the default i.e. the first rear facing camera. // Open the default i.e. the first rear facing camera.
@@ -137,7 +137,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
} }
@Override @Override
protected void onPause() { public void onPause() {
super.onPause(); super.onPause();
// Because the Camera object is a shared resource, it's very // Because the Camera object is a shared resource, it's very
@@ -248,6 +248,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
} }
void handleResult(Response response, String card) { void handleResult(Response response, String card) {
Log.d("CameraActivity", "handleResult");
if (response == null) { if (response == null) {
mPreviewing = true; mPreviewing = true;
mCamera.startPreview(); mCamera.startPreview();
@@ -317,6 +318,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
@Override @Override
public void run() { public void run() {
Log.d("CameraActivity", "NetworkThread.run");
Request request = new Request.Builder() Request request = new Request.Builder()
.addHeader("DM-Authorization", "dmapptoken " + mAppToken) .addHeader("DM-Authorization", "dmapptoken " + mAppToken)
.addHeader("Authorization", "dmtoken " + mToken) .addHeader("Authorization", "dmtoken " + mToken)

View File

@@ -19,30 +19,27 @@ import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
import android.util.Pair; import android.util.Pair;
import com.dinect.checker.zxing.*;
import com.dinect.net.ApiClient; import com.dinect.net.ApiClient;
/** /**
* Created by anonymous on 03.08.17. * Created by anonymous on 03.08.17.
*/ */
public final class FindUserThread extends Thread { public final class NetworkThread extends Thread {
private static final String TAG = "C.FindUserThread"; private static final String TAG = "C.NetworkThread";
private com.dinect.checker.zxing.ScannerActivity activity; private AbstractScannerActivity activity;
private final ApiClient client; private final ApiClient client;
private final String card; private String card;
/** /**
* @param activity caller activity * @param activity caller activity (with networkResponseCallback())
* @param client ApiClient instance * @param client ApiClient instance
* @param card card number
*/ */
public FindUserThread(final @NonNull com.dinect.checker.zxing.ScannerActivity activity, final @NonNull ApiClient client, final @NonNull String card) { public NetworkThread(final @NonNull AbstractScannerActivity activity, final @NonNull ApiClient client) {
this.activity = activity; this.activity = activity;
this.client = client; this.client = client;
this.card = card;
} }
@Override @Override
@@ -53,12 +50,21 @@ public final class FindUserThread extends Thread {
activity.runOnUiThread(new Runnable() { activity.runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {
activity.networkCallback(response); activity.networkResponseCallback(response);
} }
}); });
} }
} }
/**
* Set card for network call
* @parm card number to search
* */
public NetworkThread card(final @NonNull String card) {
this.card = card;
return this;
}
void close() { void close() {
activity = null; activity = null;
} }

View File

@@ -17,10 +17,8 @@ package com.dinect.checker.zxing;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.widget.Toast;
import com.dinect.checker.AbstractScannerActivity; import com.dinect.checker.AbstractScannerActivity;
import com.dinect.checker.FindUserThread;
import com.dinect.checker.R; import com.dinect.checker.R;
import com.google.zxing.Result; import com.google.zxing.Result;
@@ -68,10 +66,8 @@ public class ScannerActivity extends AbstractScannerActivity
@Override @Override
public void handleResult(Result raw) { public void handleResult(Result raw) {
final String card = raw.getText(); final String card = raw.getText();
Toast.makeText(this, card, Toast.LENGTH_SHORT).show();
findUserThread = new FindUserThread(this, apiClient, card); handleBarcode(card);
findUserThread.start();
final Handler handler = new Handler(); final Handler handler = new Handler();
handler.postDelayed(new Runnable() { handler.postDelayed(new Runnable() {
@@ -79,6 +75,6 @@ public class ScannerActivity extends AbstractScannerActivity
public void run() { public void run() {
scannerView.resumeCameraPreview(ScannerActivity.this); scannerView.resumeCameraPreview(ScannerActivity.this);
} }
}, 2000); }, 500);
} }
} }