Advertisement
oim_trust

AddProduct

Dec 23rd, 2015
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.34 KB | None | 0 0
  1. package com.rohim.otrust.scanner_app;
  2.  
  3. import android.content.Context;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.support.v7.app.AlertDialog;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.view.View;
  10. import android.widget.Button;
  11. import android.widget.EditText;
  12.  
  13. import com.rohim.otrust.scanner_app.StartMenu.ProductData;
  14.  
  15. import java.math.BigDecimal;
  16.  
  17. public class AddProduct extends AppCompatActivity implements View.OnClickListener {
  18.  
  19.     private static final int REQUEST_BARCODE        = 0;
  20.     private static final ProductData mProductData   = new ProductData();
  21.     EditText mBarcodeEdit;
  22.     EditText mFormatEdit;
  23.     EditText mTitleEdit;
  24.     EditText mPriceEdit;
  25.     private Button mScanButton;
  26.     private Button mAddButton;
  27.     ProductDatabase mProductDb;
  28.  
  29.     @Override
  30.     protected void onCreate(Bundle savedInstanceState) {
  31.         super.onCreate(savedInstanceState);
  32.         setContentView(R.layout.activity_add_product);
  33.         mProductDb      = new ProductDatabase(this);
  34.  
  35.         mBarcodeEdit    = (EditText) findViewById(R.id.et_barcode);
  36.         mFormatEdit     = (EditText) findViewById(R.id.et_format);
  37.         mTitleEdit      = (EditText) findViewById(R.id.et_title);
  38.         mPriceEdit      = (EditText) findViewById(R.id.et_price);
  39.  
  40.         mScanButton     = (Button) findViewById(R.id.btn_scanbar);
  41.         mScanButton.setOnClickListener(this);
  42.  
  43.         mAddButton      = (Button) findViewById(R.id.btn_addproduct);
  44.         mAddButton.setOnClickListener(this);
  45.     }
  46.  
  47.     @Override
  48.     public void onClick(View v) {
  49.         switch (v.getId()){
  50.             case R.id.btn_scanbar:
  51.                 Intent intent = new Intent("com.google.zxing.client.android.SCAN");
  52.                 intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
  53.                 startActivityForResult(intent, REQUEST_BARCODE);
  54.                
  55.                 //Scann dengan menampilkan kamera...
  56. //                IntentIntegrator scanIntegrator = new IntentIntegrator(AddProduct.this);
  57. //                scanIntegrator.initiateScan();
  58.  
  59.  
  60.                 break;
  61.  
  62.             case R.id.btn_addproduct:
  63.                 String barcode      = mBarcodeEdit.getText().toString();
  64.                 String format       = mFormatEdit.getText().toString();
  65.                 String title        = mTitleEdit.getText().toString();
  66.                 String price        = mPriceEdit.getText().toString();
  67.  
  68.                 String errors       = validateFields(barcode, format, title, price);
  69.  
  70.                 if (errors.length() > 0){
  71.                     showInfoDialog(this, "Please Fix Errors", errors);
  72.                 }else {
  73.                     mProductData.barcode    = barcode;
  74.                     mProductData.format     = format;
  75.                     mProductData.title      = title;
  76.                     mProductData.Price      = new BigDecimal(price);
  77.  
  78.                     mProductDb.insert(mProductData);
  79.                     showInfoDialog(this, "Success", "Product saved successfully");
  80.                     resetForm();
  81.  
  82.                 }
  83.                 break;
  84.  
  85.         }
  86.  
  87.     }
  88.  
  89.     private void showInfoDialog(Context context, String title, String information){
  90.         new AlertDialog.Builder(context)
  91.                 .setMessage(information)
  92.                 .setTitle(title)
  93.                 .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
  94.                     @Override
  95.                     public void onClick(DialogInterface dialog, int which) {
  96.                         dialog.dismiss();
  97.                     }
  98.                 }).show();
  99.     }
  100.  
  101.     private void resetForm(){
  102.         mBarcodeEdit.getText().clear();
  103.         mFormatEdit.getText().clear();
  104.         mTitleEdit.getText().clear();
  105.         mPriceEdit.getText().clear();
  106.     }
  107.  
  108.     @Override
  109.     public void onActivityResult(int requestCode, int resultCode, Intent intent) {
  110.  
  111.         if (requestCode == REQUEST_BARCODE){
  112.             if (resultCode == RESULT_OK){
  113.                 String barcode  = intent.getStringExtra("SCAN_RESULT");
  114.                 mBarcodeEdit.setText(barcode);
  115.  
  116.                 String format   = intent.getStringExtra("SCAN_RESULT_FORMAT");
  117.                 mFormatEdit.setText(format);
  118. //
  119. //                Intent result   = new Intent(this.getApplicationContext(), Result.class);
  120. //                Bundle b        = new Bundle();
  121. //
  122. //                b.putString("barcode", barcode);
  123. //                intent.putExtras(b);
  124. //                startActivityForResult(result, REQUEST_BARCODE);
  125.  
  126.             }else if (resultCode == RESULT_CANCELED){
  127.                 finish();
  128.             }
  129.         }
  130.     }
  131.  
  132.     private static String validateFields(String barcode, String format, String title, String price){
  133.         StringBuilder errors    = new StringBuilder();
  134.         if (barcode.matches("^\\s*$")) {
  135.             errors.append("Barcode required\n");
  136.         }
  137.  
  138.         if (format.matches("^\\s*$")) {
  139.             errors.append("Format required\n");
  140.         }
  141.  
  142.         if (title.matches("^\\s*$")) {
  143.             errors.append("Title required\n");
  144.         }
  145.  
  146.         if (!price.matches("^-?\\d+(.\\d+)?$")) {
  147.             errors.append("Need numeric price\n");
  148.         }
  149.  
  150.         return errors.toString();
  151.  
  152.     }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement