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 {
debug {
debuggable true
signingConfig signingConfigs.debug
}
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
}
}

View File

@@ -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

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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);
}
}