|
package com.densowave.barcodetorfid_hitachi.view;
|
|
|
|
import android.Manifest;
|
|
import android.app.AlertDialog;
|
|
import android.content.Context;
|
|
import android.content.DialogInterface;
|
|
import android.content.Intent;
|
|
import android.content.pm.ActivityInfo;
|
|
import android.content.pm.PackageManager;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.text.Editable;
|
|
import android.text.InputType;
|
|
import android.text.TextWatcher;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.view.inputmethod.InputMethodManager;
|
|
import android.widget.AdapterView;
|
|
import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.ImageButton;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.core.app.ActivityCompat;
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
|
|
import com.densowave.barcodetorfid_hitachi.R;
|
|
import com.densowave.barcodetorfid_hitachi.util.CommonUtil;
|
|
import com.densowave.barcodetorfid_hitachi.util.DataList;
|
|
import com.densowave.barcodetorfid_hitachi.util.Globals;
|
|
import com.densowave.barcodetorfid_hitachi.util.MasterList;
|
|
import com.densowave.barcodetorfid_hitachi.util.ProductList;
|
|
import com.densowave.barcodetorfid_hitachi.util.RegisterList;
|
|
import com.densowave.scannersdk.Barcode.BarcodeData;
|
|
import com.densowave.scannersdk.Barcode.BarcodeDataReceivedEvent;
|
|
import com.densowave.scannersdk.Barcode.BarcodeException;
|
|
import com.densowave.scannersdk.Barcode.BarcodeScanner;
|
|
import com.densowave.scannersdk.Common.CommManager;
|
|
import com.densowave.scannersdk.Common.CommScanner;
|
|
import com.densowave.scannersdk.Dto.BarcodeScannerSettings;
|
|
import com.densowave.scannersdk.Listener.BarcodeDataDelegate;
|
|
import com.densowave.scannersdk.Listener.ScannerAcceptStatusListener;
|
|
|
|
import java.text.DateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.TreeMap;
|
|
|
|
/*
|
|
*登録画面
|
|
*
|
|
*/
|
|
public class QRReadActivity extends AppCompatActivity implements ScannerAcceptStatusListener, BarcodeDataDelegate {
|
|
private Button bt_back,bt_ok,bt_check;
|
|
private ImageButton ib_edit_qr,ib_edit_rfid;
|
|
private EditText et_barcode,et_tagid,et_product;
|
|
private LinearLayout ll_panel;
|
|
private TextView tv_store_title,tv_store_name;
|
|
private FrameLayout fl_layout;
|
|
private TreeMap<String, String> readMap = new TreeMap<>();
|
|
private HashMap<String, String> doubleMap = new HashMap<>();
|
|
private CommScanner mScanner = null;
|
|
public BarcodeScanner mBarcodeScanner;
|
|
public static BarcodeScannerSettings mBarcodeScannerSettings;
|
|
private List<CommScanner> scanner_list1;
|
|
private List<String> list;
|
|
private int index = 0;
|
|
private boolean bBarcodeOpen;
|
|
private final String TAG = "ScannerSample";
|
|
private String start_time,store_no,area_no;
|
|
private int barcount = 1;
|
|
private AlertDialog mDialog;
|
|
private CommonUtil common = new CommonUtil();
|
|
private List<MasterList> masterList = new ArrayList<MasterList>();
|
|
private List<ProductList> productList = new ArrayList<ProductList>();
|
|
private List<RegisterList> registerList = new ArrayList<RegisterList>();
|
|
private Globals global;
|
|
private List<DataList> dataList = new ArrayList<DataList>();
|
|
private TreeMap<String,String> barproductMap = new TreeMap<>();
|
|
private boolean qr_edit_flg,rfid_edit_flg;
|
|
/*
|
|
*初回起動ロジック
|
|
*
|
|
*/
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_qrread);
|
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
|
|
//Intent intent = getIntent();
|
|
//store_no = intent.getStringExtra("STORE_NO");
|
|
//area_no = intent.getStringExtra("AREA_NAME");
|
|
//マスタ取得
|
|
//masterList = common.getMasterRead(this,store_no,area_no);
|
|
//productList = common.getProductRead(this);
|
|
//マスタの存在チェック
|
|
//if(masterList == null || masterList.size()<=0){
|
|
// new AlertDialog.Builder(QRReadActivity.this)
|
|
// .setMessage(getString(R.string.qr_dialog_dismiss))
|
|
// .setCancelable(false)
|
|
// .setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
// @Override
|
|
// public void onClick(DialogInterface dialog, int which) {
|
|
// finish();
|
|
// }
|
|
// })
|
|
// .setNegativeButton(getString(R.string.no),null)
|
|
// .show();
|
|
//}
|
|
//else{
|
|
tv_store_title = findViewById(R.id.tv_store_title);
|
|
tv_store_name = findViewById(R.id.tv_store_name);
|
|
//tv_store_title.setText(tv_store_title.getText());
|
|
//tv_store_name.setText("(" + masterList.get(0).getStoreName() + ")");
|
|
//}
|
|
// グローバル変数を扱うクラスを取得する
|
|
//global = (Globals) getApplication();
|
|
// グローバル変数を扱うクラスを初期化する
|
|
//global.init();
|
|
// グローバル変数に値をセット
|
|
//global.mMaster = masterList;
|
|
//global.mProduct = productList;
|
|
//for (MasterList row: masterList) {
|
|
// barproductMap.put(row.getManagementPlateNo(),row.getProductName());
|
|
//}
|
|
if (ContextCompat.checkSelfPermission(
|
|
this, Manifest.permission.WRITE_EXTERNAL_STORAGE)== PackageManager.PERMISSION_GRANTED){
|
|
// 許可されている時の処理
|
|
}else{
|
|
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
|
|
}
|
|
fl_layout = findViewById(R.id.fl_layout);
|
|
//設定ボタンの設定
|
|
et_product = findViewById(R.id.et_product);
|
|
et_barcode = findViewById(R.id.et_barcode);
|
|
et_barcode.setInputType(InputType.TYPE_NULL);
|
|
et_barcode.setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
|
|
|
@Override
|
|
public void onFocusChange(View v, boolean hasFocus) {
|
|
// EditTextのフォーカスが外れた場合
|
|
if (hasFocus == false) {
|
|
// ソフトキーボードを非表示にする
|
|
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
|
|
}
|
|
}
|
|
});
|
|
et_tagid = findViewById(R.id.et_tagid);
|
|
et_tagid.setInputType(InputType.TYPE_NULL);
|
|
et_tagid.setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
|
|
|
@Override
|
|
public void onFocusChange(View v, boolean hasFocus) {
|
|
// EditTextのフォーカスが外れた場合
|
|
if (hasFocus == false) {
|
|
// ソフトキーボードを非表示にする
|
|
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
|
|
}
|
|
}
|
|
});
|
|
ib_edit_qr = findViewById(R.id.ib_edit_qr);
|
|
ib_edit_qr.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if(!qr_edit_flg){
|
|
qr_edit_flg = true;
|
|
ib_edit_qr.setImageResource(R.drawable.edit);
|
|
et_barcode.setInputType(InputType.TYPE_CLASS_NUMBER);
|
|
}
|
|
else{
|
|
qr_edit_flg = false;
|
|
ib_edit_qr.setImageResource(R.drawable.noedit);
|
|
et_barcode.setInputType(InputType.TYPE_NULL);
|
|
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
imm.hideSoftInputFromWindow(et_barcode.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
|
|
}
|
|
}
|
|
});
|
|
ib_edit_rfid = findViewById(R.id.ib_edit_rfid);
|
|
ib_edit_rfid.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if(!rfid_edit_flg){
|
|
rfid_edit_flg = true;
|
|
ib_edit_rfid.setImageResource(R.drawable.edit);
|
|
et_tagid.setInputType(InputType.TYPE_CLASS_TEXT);
|
|
}
|
|
else{
|
|
rfid_edit_flg = false;
|
|
ib_edit_rfid.setImageResource(R.drawable.noedit);
|
|
et_tagid.setInputType(InputType.TYPE_NULL);
|
|
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
imm.hideSoftInputFromWindow(et_tagid.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
|
|
}
|
|
}
|
|
});
|
|
bt_ok = findViewById(R.id.bt_ok);
|
|
bt_ok.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
addData();
|
|
}
|
|
});
|
|
//終了ボタンの設定
|
|
bt_back = findViewById(R.id.bt_back);
|
|
bt_back.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setMessage(getString(R.string.dialog_exit))
|
|
.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
createCSV();
|
|
}
|
|
})
|
|
.setNegativeButton(getString(R.string.no), null)
|
|
.show();
|
|
}
|
|
});
|
|
bt_check = findViewById(R.id.bt_check);
|
|
bt_check.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
if(doubleMap.size()>0){
|
|
showCheckDialog();
|
|
}
|
|
}
|
|
});
|
|
|
|
et_barcode.setFocusable(true);
|
|
et_barcode.requestFocus();
|
|
ll_panel = findViewById(R.id.ll_panel);
|
|
try {
|
|
//ペアリストを取得
|
|
scanner_list1 = CommManager.getScanners();
|
|
list = new ArrayList<>();
|
|
for (int i = 0; i < scanner_list1.size(); ++i) {
|
|
Log.d("ExecuteRFIDActivity", "BT Address=" + scanner_list1.get(i).getBTAddress());
|
|
Log.d("ExecuteRFIDActivity", "BT LC=" + scanner_list1.get(i).getBTLocalName());
|
|
// Bluetoothローカル名を選択
|
|
if (scanner_list1.get(i).getBTLocalName().startsWith("SP1-")) {
|
|
list.add(scanner_list1.get(i).getBTLocalName());
|
|
}
|
|
}
|
|
//候補の中から接続対象を選択する
|
|
if (list.size()>0){
|
|
final String[] items = list.toArray(new String[list.size()]);
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setTitle(getString(R.string.inventory_connect))
|
|
.setCancelable(false)
|
|
.setItems(items, new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
// item_which pressed
|
|
index = which;
|
|
startSP1();
|
|
}
|
|
})
|
|
.show();
|
|
}
|
|
else{
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setMessage(getString(R.string.inventory_not_sp1))
|
|
.setCancelable(false)
|
|
.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
finish();
|
|
}
|
|
})
|
|
.show();
|
|
}
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
/*
|
|
*SP1接続開始処理
|
|
*ペアリング済みのSP1一覧から接続対象を選択した際に呼び出される
|
|
*接続結果を受信するaddAcceptStatusListenerを設定
|
|
*
|
|
*/
|
|
public void startSP1(){
|
|
for (CommScanner row: scanner_list1 ) {
|
|
if(row.getBTLocalName().equals(list.get(index))){
|
|
mScanner = row;
|
|
}
|
|
}
|
|
//デバイスが取得できた場合、接続する
|
|
// Start accept
|
|
CommManager.addAcceptStatusListener(this);
|
|
CommManager.startAccept();
|
|
}
|
|
public void createCSV(){
|
|
if(dataList.size()>0){
|
|
// OK button pressed
|
|
//CSV作成処理
|
|
if (ContextCompat.checkSelfPermission(
|
|
QRReadActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)== PackageManager.PERMISSION_GRANTED){
|
|
// 許可されている時の処理
|
|
common.CsvCreate(QRReadActivity.this,dataList,store_no,1,true);
|
|
}else{
|
|
if (ActivityCompat.shouldShowRequestPermissionRationale(QRReadActivity.this,
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
|
ActivityCompat.requestPermissions(QRReadActivity.this,
|
|
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},0);
|
|
} else {
|
|
Toast.makeText(QRReadActivity.this, getString(R.string.permission_error), Toast.LENGTH_LONG).show();
|
|
finish();
|
|
}
|
|
}
|
|
}
|
|
if (mScanner != null) {
|
|
try {
|
|
mScanner.close();
|
|
}
|
|
catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
finish();
|
|
}
|
|
/*
|
|
*バーコード初回立ち上げ処理
|
|
*
|
|
*/
|
|
@Override
|
|
public void OnScannerAppeared(CommScanner commScanner) {
|
|
Log.d("ExecuteConnectActivity", " OnScannerAppeared ");
|
|
Log.d("ExecuteConnectActivity", "BT Address=" + commScanner.getBTAddress()) ;
|
|
try {
|
|
CommManager.endAccept();
|
|
CommManager.removeAcceptStatusListener(this);
|
|
|
|
mScanner = commScanner;
|
|
mScanner.claim();
|
|
openbarcode();
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* バーコードスキャン設定
|
|
*
|
|
*/
|
|
private void openbarcode() {
|
|
if (bBarcodeOpen == false) {
|
|
try {
|
|
if(mScanner != null){
|
|
mBarcodeScanner = mScanner.getBarcodeScanner();
|
|
mBarcodeScanner.setDataDelegate(this);
|
|
// get scanner settings
|
|
mBarcodeScannerSettings = mBarcodeScanner.getSettings();
|
|
mBarcodeScanner.setSettings(common.setSettingsBarcodeScanner(mBarcodeScannerSettings));
|
|
}
|
|
if(mBarcodeScanner != null){
|
|
// open
|
|
mBarcodeScanner.openReader();
|
|
bBarcodeOpen = true;
|
|
}
|
|
} catch (BarcodeException e) {
|
|
e.printStackTrace();
|
|
Log.d("LightTag", "Error3");
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
*バーコードデータ受信処理
|
|
*
|
|
*/
|
|
@Override
|
|
public void onBarcodeDataReceived(CommScanner commScanner, BarcodeDataReceivedEvent barcodeDataReceivedEvent) {
|
|
List<BarcodeData> barcodeDataList = barcodeDataReceivedEvent.getBarcodeData();
|
|
try{
|
|
for (BarcodeData data : barcodeDataList) {
|
|
runOnUiThread(new Runnable() {
|
|
// Apply data to UI
|
|
String denso = "";
|
|
String data = "";
|
|
|
|
Runnable setData(String _denso, String _data) {
|
|
denso = _denso;
|
|
data = _data;
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
View current = QRReadActivity.this.getCurrentFocus();
|
|
switch (current.getId()) {
|
|
case R.id.et_tagid:
|
|
et_tagid.setText(data);
|
|
bt_ok.setFocusable(true);
|
|
bt_ok.requestFocus();
|
|
break;
|
|
case R.id.et_barcode:
|
|
et_barcode.setText(data);
|
|
et_tagid.setFocusable(true);
|
|
et_tagid.requestFocus();
|
|
break;
|
|
default:
|
|
et_tagid.setFocusable(true);
|
|
et_tagid.setFocusableInTouchMode(true);
|
|
et_tagid.requestFocus();
|
|
break;
|
|
}
|
|
} catch (Exception e) {
|
|
}
|
|
}
|
|
}.setData(data.getSymbologyDenso(), new String(data.getData(), "Shift-JIS"))
|
|
);
|
|
}
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
/*
|
|
*画面復帰時処理
|
|
*
|
|
*/
|
|
@Override
|
|
public void onRestart() {
|
|
super.onRestart();
|
|
}
|
|
/**
|
|
* 画面終了処理
|
|
*/
|
|
@Override
|
|
protected void onDestroy(){
|
|
super.onDestroy();
|
|
try{
|
|
CommManager.endAccept();
|
|
CommManager.removeAcceptStatusListener(this);
|
|
}catch (Exception e){
|
|
//未接続状態で切断する際にエラー発生
|
|
e.printStackTrace();
|
|
}
|
|
Log.v("LifeCycle", "onDestroy");
|
|
}
|
|
/*
|
|
*戻るボタン押下時処理
|
|
*
|
|
*/
|
|
@Override
|
|
public void onBackPressed() {
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setMessage(getString(R.string.dialog_exit))
|
|
.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
createCSV();
|
|
}
|
|
})
|
|
.setNegativeButton(getString(R.string.no), null)
|
|
.show();
|
|
}
|
|
/*
|
|
*画面終了時処理
|
|
*
|
|
*/
|
|
@Override
|
|
protected void onPause() {
|
|
super.onPause();
|
|
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
|
|
}
|
|
/*
|
|
*確定処理
|
|
*
|
|
*/
|
|
public void addData(){
|
|
final DateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
|
|
final Date date = new Date(System.currentTimeMillis());
|
|
DataList rowdata = new DataList();
|
|
final String bar = et_barcode.getText().toString();
|
|
final String tag = et_tagid.getText().toString();
|
|
final String pro = et_product.getText().toString();
|
|
//if(bar.trim().length()<=0){
|
|
// new AlertDialog.Builder(QRReadActivity.this)
|
|
// .setMessage(getString(R.string.qr_error_barcode))
|
|
// .setPositiveButton(getString(R.string.yes), null)
|
|
// .show();
|
|
// return;
|
|
//}
|
|
if(tag.trim().length()<=0){
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setMessage(getString(R.string.qr_error_tagid))
|
|
.setPositiveButton(getString(R.string.yes), null)
|
|
.show();
|
|
return;
|
|
}
|
|
if(pro.trim().length()<=0){
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setMessage(getString(R.string.qr_error_product))
|
|
.setPositiveButton(getString(R.string.yes), null)
|
|
.show();
|
|
return;
|
|
}
|
|
//タグ番号が重複するかチェック(重複時登録不可)
|
|
if(doubleMap.size() > 0 ) {
|
|
if (doubleMap.containsValue(tag) == false) {
|
|
//バーコード番号が重複するかチェック(重複時上書き確認
|
|
if (bar.length()>0 && doubleMap.containsKey(bar) == true) {
|
|
//上書き確認ダイアログを表示し「OK」であれば上書き登録
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setMessage(getString(R.string.rf_dialog))
|
|
.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
// OK button pressed
|
|
DataList rowdata = new DataList();
|
|
rowdata.setDateTime(df.format(date));
|
|
rowdata.setBarcode(bar);
|
|
rowdata.setTagID(tag);
|
|
rowdata.setProductName(pro);
|
|
doubleMap.remove(bar);
|
|
doubleMap.put(bar, tag);
|
|
//重複しているデータを削除する
|
|
for (int i = 0; i < dataList.size(); i++) {
|
|
if (dataList.get(i).getBarcode().equals(bar)) {
|
|
dataList.remove(i);
|
|
}
|
|
}
|
|
//新規で追加
|
|
dataList.add(rowdata);
|
|
//ダイアログ表示
|
|
ShowDialog();
|
|
refresh();
|
|
}
|
|
})
|
|
.setNegativeButton(getString(R.string.no), null)
|
|
.show();
|
|
} else {
|
|
//何も重複が発生していないので、そのまま登録
|
|
//新規追加データ
|
|
rowdata.setDateTime(df.format(date));
|
|
rowdata.setBarcode(bar);
|
|
rowdata.setTagID(tag);
|
|
rowdata.setProductName(pro);
|
|
if(bar.length()==0){
|
|
doubleMap.put(String.valueOf(barcount), tag);
|
|
barcount++;
|
|
}else{
|
|
doubleMap.put(bar, tag);
|
|
}
|
|
dataList.add(rowdata);
|
|
//ダイアログ表示
|
|
ShowDialog();
|
|
refresh();
|
|
}
|
|
} else {
|
|
//タグIDが重複している場合は登録不可
|
|
//重複先のバーコード情報を直してもらうよう誘導
|
|
String barcorde = "";
|
|
for (String row : doubleMap.keySet()) {
|
|
if (doubleMap.get(row).equals(tag)) {
|
|
barcorde = row;
|
|
}
|
|
}
|
|
//登録不可ダイアログ
|
|
new AlertDialog.Builder(QRReadActivity.this)
|
|
.setMessage(getString(R.string.rf_dialog_ng) + "\n(" + barcorde + ")\n"+getString(R.string.rf_dialog_ng2))
|
|
.setPositiveButton(getString(R.string.yes), null)
|
|
.show();
|
|
}
|
|
}else{
|
|
//1件もマスタに存在しない場合はそのまま保存
|
|
//新規追加データ
|
|
rowdata.setDateTime(df.format(date));
|
|
rowdata.setBarcode(bar);
|
|
rowdata.setTagID(tag);
|
|
rowdata.setProductName(pro);
|
|
if(bar.length()==0){
|
|
doubleMap.put(String.valueOf(barcount), tag);
|
|
barcount++;
|
|
}else{
|
|
doubleMap.put(bar, tag);
|
|
}
|
|
dataList.add(rowdata);
|
|
//ダイアログ表示
|
|
ShowDialog();
|
|
refresh();
|
|
}
|
|
}
|
|
/*
|
|
*画面項目のリフレッシュ
|
|
* 登録完了するたびに実行
|
|
*
|
|
*/
|
|
public void refresh(){
|
|
et_barcode.setText("");
|
|
et_tagid.setText("");
|
|
et_product.setText("");
|
|
et_barcode.requestFocus();
|
|
}
|
|
/*
|
|
*登録完了メッセージ出力
|
|
*
|
|
*/
|
|
public void ShowDialog(){
|
|
boolean show_flg = false;
|
|
if(mDialog == null){
|
|
show_flg = true;
|
|
}else if(!mDialog.isShowing()){
|
|
show_flg = true;
|
|
}
|
|
if(show_flg){
|
|
AlertDialog.Builder builder = null;
|
|
builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
|
|
builder.setMessage(getString(R.string.qr_commit));
|
|
builder.setCancelable(false);
|
|
mDialog = builder.create();
|
|
Handler handler = new Handler();
|
|
Runnable dialogDismiss = new Runnable() {
|
|
public void run() {
|
|
mDialog.dismiss();
|
|
}
|
|
};
|
|
mDialog.show();
|
|
TextView textView = (TextView) mDialog.findViewById(android.R.id.message);
|
|
textView.setTextSize(30.0f);
|
|
handler.postDelayed(dialogDismiss, 500);
|
|
}
|
|
}
|
|
public void showCheckDialog() {
|
|
List<String> listdata = new ArrayList<>();
|
|
List<String> keylist = new ArrayList<>();
|
|
for(String row:doubleMap.keySet()){
|
|
listdata.add("【管理プレートNo】\n"+row+"\n【タグ番号】\n"+doubleMap.get(row)+"\n");
|
|
keylist.add(row);
|
|
}
|
|
final List<String> keyList = keylist;
|
|
final String[] array = listdata.toArray(new String[listdata.size()]);
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(QRReadActivity.this)
|
|
.setItems(array, null) // これだとアイテム選択で閉じる
|
|
.setTitle("登録一覧です。問題なければOKで保存して終了")
|
|
.setNegativeButton(android.R.string.cancel,null)
|
|
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
createCSV();
|
|
}
|
|
});
|
|
final AlertDialog dlg = builder.create();
|
|
dlg.getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
|
|
@Override
|
|
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
|
|
String key = keyList.get(position);
|
|
String tag = doubleMap.get(key);
|
|
doubleMap.remove(key);
|
|
for(int i = 0; i<dataList.size();i++){
|
|
if(dataList.get(i).getTagID().equals(tag)){
|
|
dataList.remove(i);
|
|
}
|
|
}
|
|
dlg.dismiss();
|
|
Toast.makeText(QRReadActivity.this,getString(R.string.qr_delete_result),Toast.LENGTH_SHORT).show();
|
|
return false;
|
|
}
|
|
});
|
|
dlg.show();
|
|
}
|
|
}
|