Add javadoc, rename FindUserThread -> NetworkThread, introduce AbstractScannerActivity.handleBarcode, refs #9991
This commit is contained in:
@@ -33,6 +33,7 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.dinect.net.ApiClient;
|
||||
|
||||
@@ -47,12 +48,12 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
|
||||
static final String TAG = "C.ScannerActivity";
|
||||
|
||||
protected ApiClient apiClient;
|
||||
protected FindUserThread findUserThread;
|
||||
protected NetworkThread networkThread;
|
||||
|
||||
LogoutDialogFragment logoutDialog;
|
||||
|
||||
boolean isCameraAvailable() {
|
||||
Log.d(TAG, "isCamerAvailable");
|
||||
Log.d(TAG, "isCameraAvailable");
|
||||
PackageManager pm = getPackageManager();
|
||||
return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
|
||||
}
|
||||
@@ -64,6 +65,12 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
|
||||
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) {
|
||||
Log.d(TAG, "init");
|
||||
if (!isCameraAvailable()) {
|
||||
@@ -77,6 +84,9 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure toolbar of app
|
||||
* */
|
||||
protected final void setupToolbar(final int toolbarId, final @NonNull String title) {
|
||||
Log.d(TAG, "setupToolbar");
|
||||
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) {
|
||||
Log.d(TAG, "setupScanner");
|
||||
final FrameLayout root = (FrameLayout) findViewById(targetFrameId);
|
||||
root.addView(view, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize network client
|
||||
* */
|
||||
protected final void setupApiClient(final Intent intent) {
|
||||
Log.d(TAG, "setupApiClient");
|
||||
final String url = intent.getStringExtra(MainActivity.PREF_API_URL);
|
||||
@@ -106,20 +122,34 @@ public abstract class AbstractScannerActivity extends AppCompatActivity {
|
||||
+ url + ", appToken " + appToken + ", token " + 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) {
|
||||
Log.d(TAG, "user found, finish activity with result");
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra("user", result.second);
|
||||
intent.putExtra("card", result.first);
|
||||
setResult(RESULT_OK, intent);
|
||||
networkThread.close();
|
||||
finish();
|
||||
}
|
||||
findUserThread.close();
|
||||
findUserThread = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -62,7 +62,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
if (!isCameraAvailable()) {
|
||||
@@ -119,7 +119,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
// Open the default i.e. the first rear facing camera.
|
||||
@@ -137,7 +137,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
// 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) {
|
||||
Log.d("CameraActivity", "handleResult");
|
||||
if (response == null) {
|
||||
mPreviewing = true;
|
||||
mCamera.startPreview();
|
||||
@@ -317,6 +318,7 @@ public class CameraActivity extends AppCompatActivity implements Camera.PreviewC
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
Log.d("CameraActivity", "NetworkThread.run");
|
||||
Request request = new Request.Builder()
|
||||
.addHeader("DM-Authorization", "dmapptoken " + mAppToken)
|
||||
.addHeader("Authorization", "dmtoken " + mToken)
|
||||
|
||||
@@ -19,30 +19,27 @@ import android.support.annotation.NonNull;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.dinect.checker.zxing.*;
|
||||
import com.dinect.net.ApiClient;
|
||||
|
||||
/**
|
||||
* 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 String card;
|
||||
private String card;
|
||||
|
||||
/**
|
||||
* @param activity caller activity
|
||||
* @param activity caller activity (with networkResponseCallback())
|
||||
* @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.client = client;
|
||||
this.card = card;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -53,12 +50,21 @@ public final class FindUserThread extends Thread {
|
||||
activity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
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() {
|
||||
activity = null;
|
||||
}
|
||||
@@ -17,10 +17,8 @@ package com.dinect.checker.zxing;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.dinect.checker.AbstractScannerActivity;
|
||||
import com.dinect.checker.FindUserThread;
|
||||
import com.dinect.checker.R;
|
||||
import com.google.zxing.Result;
|
||||
|
||||
@@ -68,10 +66,8 @@ public class ScannerActivity extends AbstractScannerActivity
|
||||
@Override
|
||||
public void handleResult(Result raw) {
|
||||
final String card = raw.getText();
|
||||
Toast.makeText(this, card, Toast.LENGTH_SHORT).show();
|
||||
|
||||
findUserThread = new FindUserThread(this, apiClient, card);
|
||||
findUserThread.start();
|
||||
handleBarcode(card);
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@@ -79,6 +75,6 @@ public class ScannerActivity extends AbstractScannerActivity
|
||||
public void run() {
|
||||
scannerView.resumeCameraPreview(ScannerActivity.this);
|
||||
}
|
||||
}, 2000);
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user