Save QR code into Google Spreadsheet with Android Studio

Viewed 22

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

}
0 Answers
Related