im developing an app to create products and save them directly to a Google Spreadsheet. My problem is that the name and brand are saving correctly, but i cant find a way to also save the QR code. The QR code is encrypted using AES encryption.
Here is the CreateProduct.java activity:
public class CreateProduct extends AppCompatActivity {
EditText editBrand,editName;
Button buttonCreateProduct;
ImageView imageQR;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_product);
editBrand = findViewById(R.id.product_brand);
editName = findViewById(R.id.product_name);
buttonCreateProduct = findViewById(R.id.button_create);
imageQR = findViewById(R.id.image_qr);
buttonCreateProduct.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
if (!editBrand.getText().toString().isEmpty()&&!editName.getText().toString().isEmpty()){
String qrTextBrand;
String qrTextName;
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
qrTextBrand = editBrand.getText().toString();
qrTextName = editName.getText().toString();
BitMatrix bitMatrix = multiFormatWriter.encode(Crypto.encrypt("Marca: "+ qrTextBrand +
"\nNombre: "+qrTextName), BarcodeFormat.QR_CODE, 300, 300);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
imageQR.setImageBitmap(bitmap);
}catch (Exception e){e.printStackTrace();}
}
addProduct();
}
});
}
public void addProduct(){
String sBrand = editBrand.getText().toString();
String sName = editName.getText().toString();
StringRequest stringRequest = new StringRequest(Request.Method.POST, "https://script.google.com/macros/s/AKfycbz4Tu7febkY3EGhQfVvXIa_GGKFgCZbPza7MMZJeEnEPllQEDV9SyaUWeSTyhOq8cq7/exec", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Nullable
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("action", "addProduct");
params.put("vBrand",sBrand);
params.put("vName",sName);
return params;
}
};
int socketTimeOut = 50000;
RetryPolicy retryPolicy = new DefaultRetryPolicy(socketTimeOut, 0,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(retryPolicy);
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
}
And the AppScript code:
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1Utf6HKqvaSoUd_Ep9vu2qqIKSqHwYbi13jDGrz9QBzo/edit?usp=sharing");
var sheet = ss.getSheetByName("ProductData");
function doPost(e) {
var action = e.parameter.action;
if (action == "addProduct") {
return addItem(e);
}
}
function addItem(e) {
var ID = sheet.getLastRow();
var Brand = e.parameter.vBrand;
var Name = e.parameter.vName;
var Date = new Date();
var QR = e.parameter.vQR;
sheet.appendRow([ID, Brand, Name, Date, QR]);
return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
}