Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package camp.dev.kasirqueapps;
- import android.Manifest;
- import android.content.ActivityNotFoundException;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.graphics.Bitmap;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.graphics.pdf.PdfDocument;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.util.DisplayMetrics;
- import android.util.Log;
- import android.view.View;
- import android.view.WindowManager;
- import android.widget.AdapterView;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.ListView;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.google.android.material.floatingactionbutton.FloatingActionButton;
- import com.itextpdf.text.Document;
- import com.itextpdf.text.DocumentException;
- import com.itextpdf.text.Image;
- import com.itextpdf.text.Paragraph;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AlertDialog;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.coordinatorlayout.widget.CoordinatorLayout;
- import androidx.core.app.ActivityCompat;
- import camp.dev.kasirqueapps.adapter.Adapter;
- import camp.dev.kasirqueapps.helper.DbHelper;
- import camp.dev.kasirqueapps.model.Data;
- public class KasirActivity extends AppCompatActivity {
- private static final String TAG = "PdfCreatorActivity";
- private static final int STORAGE_CODE = 1000;
- final private int REQUEST_CODE_ASK_PERMISSIONS = 111;
- private File pdfFile;
- Context context;
- Bitmap bitmap;
- CoordinatorLayout layout;
- ListView listView;
- AlertDialog.Builder dialog;
- List<Data> itemList = new ArrayList<Data>();
- Adapter adapter;
- DbHelper SQLite = new DbHelper( this );
- TextView jumlah, harga;
- static ImageView gambar,strip,strip1;
- static Image gmb, str, st1;
- static byte[] bArray;
- private TextView txt,ttl,byr, kembali, ttl1, kembali1;
- private EditText byr1;
- public static final String TAG_ID = "id";
- public static final String TAG_PRODUCT = "product";
- public static final String TAG_PRICE = "price";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate( savedInstanceState );
- setContentView( R.layout.activity_kasir );
- ActivityCompat.requestPermissions(KasirActivity.this, new String[]
- {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
- PackageManager.PERMISSION_GRANTED);
- context = this;
- layout = (CoordinatorLayout)findViewById( R.id.activity_kasir );
- SQLite = new DbHelper( getApplicationContext() );
- gambar = (ImageView) findViewById( R.id.logo );
- strip = (ImageView)findViewById( R.id.garis );
- strip1= (ImageView) findViewById( R.id.garis2 );
- txt = (TextView)findViewById( R.id.text );
- ttl = (TextView)findViewById( R.id.total );
- byr = (TextView)findViewById( R.id.bayar );
- ttl1 = (TextView)findViewById( R.id.total1 );
- kembali = (TextView)findViewById( R.id.kembalian );
- kembali1 = (TextView)findViewById( R.id.kembalian1 );
- jumlah = (TextView)findViewById( R.id.total1 );
- harga = (TextView)findViewById( R.id.harga );
- byr1 = (EditText)findViewById( R.id.bayar1 );
- FloatingActionButton print = (FloatingActionButton)findViewById( R.id.print );
- print.setOnClickListener( new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- CoordinatorLayout view = findViewById( R.id.activity_kasir );
- Bitmap bitmap1 = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888 );
- Canvas canvas = new Canvas( bitmap1 );
- view.draw( canvas );
- try {
- Log.d( "size" , " " + layout.getWidth() + " " + layout.getHeight() );
- bitmap = loadBitmapFromView( layout , layout.getWidth() , layout.getHeight() );
- savePdf();
- }
- catch (Exception e){
- }
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M){
- if (checkSelfPermission( Manifest.permission.WRITE_EXTERNAL_STORAGE ) ==
- PackageManager.PERMISSION_DENIED){
- String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
- requestPermissions( permissions, STORAGE_CODE );
- }
- else{
- savePdf();
- }
- }
- else {
- savePdf();
- }
- }
- } );
- FloatingActionButton fab = (FloatingActionButton) findViewById( R.id.fab );
- listView = (ListView) findViewById( R.id.list_view );
- fab.setOnClickListener( new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent( KasirActivity.this , AddEditActivity.class );
- startActivity( intent );
- }
- } );
- adapter = new Adapter( KasirActivity.this , itemList );
- listView.setAdapter( adapter );
- listView.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() {
- @Override
- public boolean onItemLongClick(AdapterView<?> parent , View view , int position , long id) {
- final String idx = itemList.get( position ).getId();
- final String product = itemList.get( position ).getProduct();
- final String price = itemList.get( position ).getPrice();
- final CharSequence[] dialogitem = {"Edit" , "Delete"};
- dialog = new AlertDialog.Builder( KasirActivity.this );
- dialog.setCancelable( true );
- dialog.setItems( dialogitem , new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog , int which) {
- switch (which) {
- case 0:
- Intent intent = new Intent( KasirActivity.this , AddEditActivity.class );
- intent.putExtra( TAG_ID , idx );
- intent.putExtra( TAG_PRODUCT , product );
- intent.putExtra( TAG_PRICE , price );
- startActivity( intent );
- break;
- case 1:
- SQLite.delete( Integer.parseInt( idx ) );
- itemList.clear();
- getAllData();
- break;
- }
- }
- } ).show();
- return false;
- }
- } );
- getAllData();
- }
- public static Bitmap loadBitmapFromView(View v, int width, int heiht){
- Bitmap b = Bitmap.createBitmap( width,heiht, Bitmap.Config.ARGB_8888 );
- Canvas canvas = new Canvas( b );
- v.draw( canvas );
- return b;
- }
- private void savePdf() {
- Document convert = new Document();
- WindowManager wm = (WindowManager)getSystemService( Context.WINDOW_SERVICE );
- DisplayMetrics displayMetrics = new DisplayMetrics();
- this.getWindowManager().getDefaultDisplay().getMetrics( displayMetrics );
- float hight = displayMetrics.heightPixels;
- float widht = displayMetrics.widthPixels;
- int convertHight = (int) hight, convertWidth = (int) widht;
- PdfDocument pdfDocument = new PdfDocument();
- PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder( convertWidth, convertHight, 1 ).create();
- PdfDocument.Page page = pdfDocument.startPage( pageInfo );
- String tx = txt.getText().toString();
- String ls = listView.getAdapter().toString();
- String tl = ttl.getText().toString();
- String by = byr.getText().toString();
- String kmb = kembali.getText().toString();
- String tl1 = ttl1.getText().toString();
- String by1 = byr1.getText().toString();
- String kmb1 = kembali1.getText().toString();
- Canvas canvas = new Canvas( );
- Paint paint = new Paint( );
- canvas.drawPaint( paint );
- bitmap = Bitmap.createScaledBitmap( bitmap, convertHight, convertWidth, true );
- paint.setColor( Color.BLUE );
- canvas.drawBitmap( bitmap,0,0, null );
- pdfDocument.finishPage( page );
- String targetPdf = "kasirque.pdf";
- File filePath;
- filePath = new File( targetPdf );
- try{
- pdfDocument.writeTo( new FileOutputStream( filePath ) );
- convert.addAuthor( "Fernando Teguh" );
- convert.add( new Paragraph( tx ) );
- convert.add( new Paragraph( ls ) );
- convert.add( new Paragraph( tl ) );
- convert.add( new Paragraph( by ) );
- convert.add( new Paragraph( kmb ) );
- convert.add( new Paragraph( tl1 ) );
- convert.add( new Paragraph(by1 ) );
- convert.add( new Paragraph( kmb1) );
- } catch (IOException | DocumentException e){
- e.printStackTrace();
- Toast.makeText( this , "Something Wrong" + e.toString() , Toast.LENGTH_SHORT ).show();
- }
- pdfDocument.close();
- Toast.makeText( this, "PDF is Created!!!" , Toast.LENGTH_SHORT ).show();
- openGeneratePDF();
- }
- private void openGeneratePDF(){
- File file = new File( "kasirque.pdf" );
- if (file.exists()){
- Intent intent = new Intent( Intent.ACTION_VIEW );
- Uri uri = Uri.fromFile( file );
- intent.setDataAndType( uri, "application/pdf" );
- intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
- try{
- startActivity( intent );
- }
- catch (ActivityNotFoundException e)
- {
- Toast.makeText( KasirActivity.this , "No Application Available to view PDF" , Toast.LENGTH_SHORT ).show();
- }
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode , @NonNull String[] permissions , @NonNull int[] grantResults) {
- switch (requestCode){
- case STORAGE_CODE: {
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_DENIED){
- savePdf();
- }
- else{
- Toast.makeText( this , "Permission Denied.." , Toast.LENGTH_SHORT ).show();
- }
- }
- }
- }
- private void getAllData() {
- ArrayList<HashMap<String, String>> row = SQLite.getAllData();
- for (int i = 0; i < row.size(); i++) {
- String id = row.get( i ).get( TAG_ID );
- String barang = row.get( i ).get( TAG_PRODUCT );
- String harga = row.get( i ).get( TAG_PRICE );
- Data data = new Data();
- data.setId( id );
- data.setProduct( barang );
- data.setPrice( harga );
- itemList.add( data );
- }
- adapter.notifyDataSetChanged();
- }
- private int getTotal(){
- ArrayList<HashMap<String, String>> row = SQLite.getAllData();
- int total = 0;
- for (int i = 0; i < itemList.size(); i++){
- String harga = row.get( i ).get( TAG_PRICE );
- int hasil = Integer.parseInt( harga );
- jumlah = (TextView)findViewById( R.id.total1 );
- total = total + hasil;
- jumlah.setText( total );
- }
- return total;
- }
- @Override
- protected void onResume(){
- super.onResume();
- itemList.clear();
- getAllData();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement