mirror of
https://github.com/jfoucry/Pilldroid.git
synced 2024-11-22 04:29:22 +01:00
Merge branch 'bugfix/ScanCip7' into develop
This commit is contained in:
commit
5d41ab8807
4 changed files with 105 additions and 10 deletions
|
@ -2,6 +2,7 @@ package net.foucry.pilldroid;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
import android.database.DatabaseUtils;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.database.sqlite.SQLiteOpenHelper;
|
import android.database.sqlite.SQLiteOpenHelper;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
@ -27,11 +28,12 @@ class DBDrugs extends SQLiteOpenHelper {
|
||||||
private static final String TABLE_NAME = "drugs";
|
private static final String TABLE_NAME = "drugs";
|
||||||
private static final String DRUG_CIS = "cis";
|
private static final String DRUG_CIS = "cis";
|
||||||
private static final String DRUG_CIP13 = "cip13";
|
private static final String DRUG_CIP13 = "cip13";
|
||||||
|
private static final String DRUG_CIP7 = "cip7";
|
||||||
private static final String DRUG_ADMIN = "administration_mode";
|
private static final String DRUG_ADMIN = "administration_mode";
|
||||||
private static final String DRUG_NAME = "name";
|
private static final String DRUG_NAME = "name";
|
||||||
private static final String DRUG_PRES = "presentation";
|
private static final String DRUG_PRES = "presentation";
|
||||||
|
|
||||||
private static final String[] COLUMNS_NAMES = {DRUG_CIS, DRUG_CIP13, DRUG_ADMIN, DRUG_NAME, DRUG_PRES};
|
private static final String[] COLUMNS_NAMES = {DRUG_CIS, DRUG_CIP13, DRUG_CIP7, DRUG_ADMIN, DRUG_NAME, DRUG_PRES};
|
||||||
|
|
||||||
private static final String TAG = DBDrugs.class.getName();
|
private static final String TAG = DBDrugs.class.getName();
|
||||||
|
|
||||||
|
@ -141,9 +143,9 @@ class DBDrugs extends SQLiteOpenHelper {
|
||||||
// drug.setId(Integer.parseInt(cursor.getString(0)));
|
// drug.setId(Integer.parseInt(cursor.getString(0)));
|
||||||
drug.setCis(cursor.getString(0));
|
drug.setCis(cursor.getString(0));
|
||||||
drug.setCip13(cursor.getString(1));
|
drug.setCip13(cursor.getString(1));
|
||||||
drug.setAdministration_mode(cursor.getString(2));
|
drug.setAdministration_mode(cursor.getString(3));
|
||||||
drug.setName(cursor.getString(3));
|
drug.setName(cursor.getString(4));
|
||||||
drug.setPresentation(cursor.getString(4));
|
drug.setPresentation(cursor.getString(5));
|
||||||
|
|
||||||
// Set default values
|
// Set default values
|
||||||
drug.setStock(0);
|
drug.setStock(0);
|
||||||
|
@ -161,4 +163,72 @@ class DBDrugs extends SQLiteOpenHelper {
|
||||||
} else
|
} else
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getCIP13FromCIP7(String cip7) {
|
||||||
|
|
||||||
|
String cip13 = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
Cursor c = this.getReadableDatabase().rawQuery("SELECT cip13 FROM "+ TABLE_NAME + " where cip7 = "+cip7, null);
|
||||||
|
|
||||||
|
Log.d(TAG, "Cursor == " + DatabaseUtils.dumpCursorToString(c));
|
||||||
|
|
||||||
|
c.moveToFirst();
|
||||||
|
|
||||||
|
if(c.getCount()>0)
|
||||||
|
{
|
||||||
|
cip13 = c.getString(0);
|
||||||
|
}
|
||||||
|
c.close();
|
||||||
|
} catch(Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return cip13;
|
||||||
|
}
|
||||||
|
|
||||||
|
Drug getDrugByCIP7(String cip7) {
|
||||||
|
Log.d(TAG, "CIP7 - " + cip7);
|
||||||
|
|
||||||
|
SQLiteDatabase db = this.getReadableDatabase();
|
||||||
|
|
||||||
|
// Build query
|
||||||
|
Cursor cursor = db.query(TABLE_NAME, // Which table
|
||||||
|
COLUMNS_NAMES, // column names
|
||||||
|
" cip7 =?", // selections
|
||||||
|
new String[]{cip7}, // selections args
|
||||||
|
null, // group by
|
||||||
|
null, // having
|
||||||
|
null, // order by
|
||||||
|
null); // limits
|
||||||
|
//Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME + " where cip13 = " + cip13, null);
|
||||||
|
if (cursor.getCount() != 0) {
|
||||||
|
|
||||||
|
cursor.moveToFirst();
|
||||||
|
|
||||||
|
// Build drug object
|
||||||
|
Drug drug = new Drug();
|
||||||
|
// drug.setId(Integer.parseInt(cursor.getString(0)));
|
||||||
|
drug.setCis(cursor.getString(0));
|
||||||
|
drug.setCip13(cursor.getString(1));
|
||||||
|
drug.setAdministration_mode(cursor.getString(3));
|
||||||
|
drug.setName(cursor.getString(4));
|
||||||
|
drug.setPresentation(cursor.getString(5));
|
||||||
|
|
||||||
|
// Set default values
|
||||||
|
drug.setStock(0);
|
||||||
|
drug.setTake(0);
|
||||||
|
drug.setWarnThreshold(14);
|
||||||
|
drug.setAlertThreshold(7);
|
||||||
|
|
||||||
|
// Log
|
||||||
|
Log.d(TAG, "getDrug(" + cip7 + ")" + drug.toString());
|
||||||
|
|
||||||
|
// Return drug
|
||||||
|
|
||||||
|
cursor.close();
|
||||||
|
return drug;
|
||||||
|
} else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -274,10 +274,20 @@ public class DrugListActivity extends AppCompatActivity {
|
||||||
|
|
||||||
Log.d(TAG, "formatName = " + result.getFormatName());
|
Log.d(TAG, "formatName = " + result.getFormatName());
|
||||||
|
|
||||||
if (result.getFormatName().equals("CODE_128") || (result.getFormatName().equals("EAN_13"))) { //CODE_128 || EAN 13
|
switch (result.getFormatName()) {
|
||||||
cip13 = result.getContents();
|
case "CODE_128":
|
||||||
} else {
|
case "EAN_13": //CODE_128 || EAN 13
|
||||||
cip13 = result.getContents().substring(4, 17);
|
cip13 = result.getContents();
|
||||||
|
break;
|
||||||
|
case "CODE_39":
|
||||||
|
cip13 = dbDrug.getCIP13FromCIP7(result.getContents());
|
||||||
|
break;
|
||||||
|
case "DATA_MATRIX":
|
||||||
|
cip13 = result.getContents().substring(4, 17);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
scanNotOK();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Drug from database
|
// Get Drug from database
|
||||||
|
@ -362,6 +372,21 @@ public class DrugListActivity extends AppCompatActivity {
|
||||||
dlg.show();
|
dlg.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tell user that the barre code cannot be interpreted
|
||||||
|
*/
|
||||||
|
private void scanNotOK()
|
||||||
|
{
|
||||||
|
AlertDialog.Builder dlg = new AlertDialog.Builder(this);
|
||||||
|
dlg.setTitle(getString(R.string.app_name));
|
||||||
|
|
||||||
|
dlg.setMessage(R.string.notInterpreted);
|
||||||
|
dlg.setPositiveButton("OK", (dialog, which) -> {
|
||||||
|
// Nothing to do just dismiss dialog
|
||||||
|
});
|
||||||
|
dlg.show();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add New drug to the user database
|
* Add New drug to the user database
|
||||||
* @param aDrug Drug - drug to be added
|
* @param aDrug Drug - drug to be added
|
||||||
|
@ -378,7 +403,6 @@ public class DrugListActivity extends AppCompatActivity {
|
||||||
startActivityForResult(intent, CUSTOMIZED_REQUEST_CODE);
|
startActivityForResult(intent, CUSTOMIZED_REQUEST_CODE);
|
||||||
overridePendingTransition(R.anim.slide_from_right, R.anim.slide_to_left);
|
overridePendingTransition(R.anim.slide_from_right, R.anim.slide_to_left);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* setupRecyclerView (list of drugs
|
* setupRecyclerView (list of drugs
|
||||||
* @param recyclerView RecyclerView
|
* @param recyclerView RecyclerView
|
||||||
|
@ -389,7 +413,6 @@ public class DrugListActivity extends AppCompatActivity {
|
||||||
recyclerView.setAdapter(mAdapter);
|
recyclerView.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: remove in release
|
|
||||||
private String getAppName() {
|
private String getAppName() {
|
||||||
PackageManager packageManager = getApplicationContext().getPackageManager();
|
PackageManager packageManager = getApplicationContext().getPackageManager();
|
||||||
ApplicationInfo applicationInfo = null;
|
ApplicationInfo applicationInfo = null;
|
||||||
|
|
|
@ -63,4 +63,5 @@
|
||||||
<string name="Value">Valeur</string>
|
<string name="Value">Valeur</string>
|
||||||
<string name="label">Libellé</string>
|
<string name="label">Libellé</string>
|
||||||
<string name="drug_list">Attributs d\'un médicament</string>
|
<string name="drug_list">Attributs d\'un médicament</string>
|
||||||
|
<string name="notInterpreted">Le code barre ne peut pas être interprété</string>
|
||||||
</resources>
|
</resources>
|
|
@ -65,4 +65,5 @@
|
||||||
<string name="Value">Value</string>
|
<string name="Value">Value</string>
|
||||||
<string name="label">Label</string>
|
<string name="label">Label</string>
|
||||||
<string name="drug_list">Drug\'s attributes</string>
|
<string name="drug_list">Drug\'s attributes</string>
|
||||||
|
<string name="notInterpreted">Barre code cannot be intrepreted</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue