Advertisement
Guest User

KasirActivity.java

a guest
Feb 21st, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.33 KB | None | 0 0
  1. package camp.dev.kasirqueapps;
  2.  
  3. import android.Manifest;
  4. import android.content.ActivityNotFoundException;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.content.pm.PackageManager;
  9. import android.graphics.Bitmap;
  10. import android.graphics.Canvas;
  11. import android.graphics.Color;
  12. import android.graphics.Paint;
  13. import android.graphics.pdf.PdfDocument;
  14. import android.net.Uri;
  15. import android.os.Build;
  16. import android.os.Bundle;
  17. import android.util.DisplayMetrics;
  18. import android.util.Log;
  19. import android.view.View;
  20. import android.view.WindowManager;
  21. import android.widget.AdapterView;
  22. import android.widget.EditText;
  23. import android.widget.ImageView;
  24. import android.widget.ListView;
  25. import android.widget.TextView;
  26. import android.widget.Toast;
  27.  
  28. import com.google.android.material.floatingactionbutton.FloatingActionButton;
  29. import com.itextpdf.text.Document;
  30. import com.itextpdf.text.DocumentException;
  31. import com.itextpdf.text.Image;
  32. import com.itextpdf.text.Paragraph;
  33.  
  34. import java.io.File;
  35. import java.io.FileOutputStream;
  36. import java.io.IOException;
  37. import java.util.ArrayList;
  38. import java.util.HashMap;
  39. import java.util.List;
  40.  
  41. import androidx.annotation.NonNull;
  42. import androidx.appcompat.app.AlertDialog;
  43. import androidx.appcompat.app.AppCompatActivity;
  44. import androidx.coordinatorlayout.widget.CoordinatorLayout;
  45. import androidx.core.app.ActivityCompat;
  46. import camp.dev.kasirqueapps.adapter.Adapter;
  47. import camp.dev.kasirqueapps.helper.DbHelper;
  48. import camp.dev.kasirqueapps.model.Data;
  49.  
  50. public class KasirActivity extends AppCompatActivity {
  51.  
  52.  
  53.  
  54. private static final String TAG = "PdfCreatorActivity";
  55. private static final int STORAGE_CODE = 1000;
  56. final private int REQUEST_CODE_ASK_PERMISSIONS = 111;
  57. private File pdfFile;
  58. Context context;
  59. Bitmap bitmap;
  60. CoordinatorLayout layout;
  61. ListView listView;
  62. AlertDialog.Builder dialog;
  63. List<Data> itemList = new ArrayList<Data>();
  64. Adapter adapter;
  65. DbHelper SQLite = new DbHelper( this );
  66. TextView jumlah, harga;
  67. static ImageView gambar,strip,strip1;
  68. static Image gmb, str, st1;
  69. static byte[] bArray;
  70. private TextView txt,ttl,byr, kembali, ttl1, kembali1;
  71. private EditText byr1;
  72.  
  73.  
  74. public static final String TAG_ID = "id";
  75. public static final String TAG_PRODUCT = "product";
  76. public static final String TAG_PRICE = "price";
  77.  
  78. @Override
  79. protected void onCreate(Bundle savedInstanceState) {
  80. super.onCreate( savedInstanceState );
  81. setContentView( R.layout.activity_kasir );
  82.  
  83. ActivityCompat.requestPermissions(KasirActivity.this, new String[]
  84. {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},
  85. PackageManager.PERMISSION_GRANTED);
  86.  
  87. context = this;
  88.  
  89.  
  90. layout = (CoordinatorLayout)findViewById( R.id.activity_kasir );
  91. SQLite = new DbHelper( getApplicationContext() );
  92.  
  93. gambar = (ImageView) findViewById( R.id.logo );
  94. strip = (ImageView)findViewById( R.id.garis );
  95. strip1= (ImageView) findViewById( R.id.garis2 );
  96. txt = (TextView)findViewById( R.id.text );
  97. ttl = (TextView)findViewById( R.id.total );
  98. byr = (TextView)findViewById( R.id.bayar );
  99. ttl1 = (TextView)findViewById( R.id.total1 );
  100. kembali = (TextView)findViewById( R.id.kembalian );
  101. kembali1 = (TextView)findViewById( R.id.kembalian1 );
  102. jumlah = (TextView)findViewById( R.id.total1 );
  103. harga = (TextView)findViewById( R.id.harga );
  104. byr1 = (EditText)findViewById( R.id.bayar1 );
  105.  
  106. FloatingActionButton print = (FloatingActionButton)findViewById( R.id.print );
  107. print.setOnClickListener( new View.OnClickListener() {
  108. @Override
  109. public void onClick(View v) {
  110.  
  111.  
  112. CoordinatorLayout view = findViewById( R.id.activity_kasir );
  113. Bitmap bitmap1 = Bitmap.createBitmap( view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888 );
  114. Canvas canvas = new Canvas( bitmap1 );
  115. view.draw( canvas );
  116.  
  117. try {
  118.  
  119. Log.d( "size" , " " + layout.getWidth() + " " + layout.getHeight() );
  120. bitmap = loadBitmapFromView( layout , layout.getWidth() , layout.getHeight() );
  121.  
  122.  
  123. savePdf();
  124. }
  125. catch (Exception e){
  126.  
  127. }
  128.  
  129.  
  130. if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M){
  131. if (checkSelfPermission( Manifest.permission.WRITE_EXTERNAL_STORAGE ) ==
  132. PackageManager.PERMISSION_DENIED){
  133.  
  134. String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
  135. requestPermissions( permissions, STORAGE_CODE );
  136.  
  137. }
  138. else{
  139.  
  140. savePdf();
  141.  
  142. }
  143. }
  144. else {
  145.  
  146. savePdf();
  147. }
  148.  
  149.  
  150. }
  151. } );
  152.  
  153. FloatingActionButton fab = (FloatingActionButton) findViewById( R.id.fab );
  154. listView = (ListView) findViewById( R.id.list_view );
  155.  
  156. fab.setOnClickListener( new View.OnClickListener() {
  157. @Override
  158. public void onClick(View v) {
  159. Intent intent = new Intent( KasirActivity.this , AddEditActivity.class );
  160. startActivity( intent );
  161.  
  162.  
  163. }
  164. } );
  165.  
  166. adapter = new Adapter( KasirActivity.this , itemList );
  167. listView.setAdapter( adapter );
  168.  
  169. listView.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() {
  170. @Override
  171. public boolean onItemLongClick(AdapterView<?> parent , View view , int position , long id) {
  172. final String idx = itemList.get( position ).getId();
  173. final String product = itemList.get( position ).getProduct();
  174. final String price = itemList.get( position ).getPrice();
  175.  
  176. final CharSequence[] dialogitem = {"Edit" , "Delete"};
  177. dialog = new AlertDialog.Builder( KasirActivity.this );
  178. dialog.setCancelable( true );
  179. dialog.setItems( dialogitem , new DialogInterface.OnClickListener() {
  180. @Override
  181. public void onClick(DialogInterface dialog , int which) {
  182. switch (which) {
  183. case 0:
  184. Intent intent = new Intent( KasirActivity.this , AddEditActivity.class );
  185. intent.putExtra( TAG_ID , idx );
  186. intent.putExtra( TAG_PRODUCT , product );
  187. intent.putExtra( TAG_PRICE , price );
  188. startActivity( intent );
  189. break;
  190. case 1:
  191. SQLite.delete( Integer.parseInt( idx ) );
  192. itemList.clear();
  193. getAllData();
  194. break;
  195. }
  196. }
  197. } ).show();
  198. return false;
  199. }
  200. } );
  201.  
  202. getAllData();
  203. }
  204.  
  205.  
  206.  
  207. public static Bitmap loadBitmapFromView(View v, int width, int heiht){
  208. Bitmap b = Bitmap.createBitmap( width,heiht, Bitmap.Config.ARGB_8888 );
  209. Canvas canvas = new Canvas( b );
  210. v.draw( canvas );
  211.  
  212.  
  213. return b;
  214. }
  215. private void savePdf() {
  216. Document convert = new Document();
  217. WindowManager wm = (WindowManager)getSystemService( Context.WINDOW_SERVICE );
  218. DisplayMetrics displayMetrics = new DisplayMetrics();
  219. this.getWindowManager().getDefaultDisplay().getMetrics( displayMetrics );
  220. float hight = displayMetrics.heightPixels;
  221. float widht = displayMetrics.widthPixels;
  222.  
  223. int convertHight = (int) hight, convertWidth = (int) widht;
  224.  
  225.  
  226.  
  227. PdfDocument pdfDocument = new PdfDocument();
  228. PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder( convertWidth, convertHight, 1 ).create();
  229. PdfDocument.Page page = pdfDocument.startPage( pageInfo );
  230.  
  231. String tx = txt.getText().toString();
  232. String ls = listView.getAdapter().toString();
  233.  
  234. String tl = ttl.getText().toString();
  235. String by = byr.getText().toString();
  236. String kmb = kembali.getText().toString();
  237. String tl1 = ttl1.getText().toString();
  238. String by1 = byr1.getText().toString();
  239. String kmb1 = kembali1.getText().toString();
  240.  
  241.  
  242. Canvas canvas = new Canvas( );
  243. Paint paint = new Paint( );
  244. canvas.drawPaint( paint );
  245.  
  246. bitmap = Bitmap.createScaledBitmap( bitmap, convertHight, convertWidth, true );
  247.  
  248. paint.setColor( Color.BLUE );
  249. canvas.drawBitmap( bitmap,0,0, null );
  250.  
  251.  
  252.  
  253. pdfDocument.finishPage( page );
  254.  
  255.  
  256. String targetPdf = "kasirque.pdf";
  257. File filePath;
  258. filePath = new File( targetPdf );
  259. try{
  260. pdfDocument.writeTo( new FileOutputStream( filePath ) );
  261.  
  262. convert.addAuthor( "Fernando Teguh" );
  263.  
  264. convert.add( new Paragraph( tx ) );
  265. convert.add( new Paragraph( ls ) );
  266. convert.add( new Paragraph( tl ) );
  267. convert.add( new Paragraph( by ) );
  268. convert.add( new Paragraph( kmb ) );
  269. convert.add( new Paragraph( tl1 ) );
  270. convert.add( new Paragraph(by1 ) );
  271. convert.add( new Paragraph( kmb1) );
  272. } catch (IOException | DocumentException e){
  273. e.printStackTrace();
  274. Toast.makeText( this , "Something Wrong" + e.toString() , Toast.LENGTH_SHORT ).show();
  275. }
  276.  
  277. pdfDocument.close();
  278. Toast.makeText( this, "PDF is Created!!!" , Toast.LENGTH_SHORT ).show();
  279.  
  280. openGeneratePDF();
  281. }
  282.  
  283. private void openGeneratePDF(){
  284. File file = new File( "kasirque.pdf" );
  285. if (file.exists()){
  286. Intent intent = new Intent( Intent.ACTION_VIEW );
  287. Uri uri = Uri.fromFile( file );
  288. intent.setDataAndType( uri, "application/pdf" );
  289. intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
  290.  
  291. try{
  292. startActivity( intent );
  293. }
  294. catch (ActivityNotFoundException e)
  295. {
  296. Toast.makeText( KasirActivity.this , "No Application Available to view PDF" , Toast.LENGTH_SHORT ).show();
  297. }
  298. }
  299. }
  300.  
  301. @Override
  302. public void onRequestPermissionsResult(int requestCode , @NonNull String[] permissions , @NonNull int[] grantResults) {
  303. switch (requestCode){
  304. case STORAGE_CODE: {
  305. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_DENIED){
  306. savePdf();
  307. }
  308. else{
  309. Toast.makeText( this , "Permission Denied.." , Toast.LENGTH_SHORT ).show();
  310. }
  311. }
  312. }
  313. }
  314.  
  315. private void getAllData() {
  316. ArrayList<HashMap<String, String>> row = SQLite.getAllData();
  317.  
  318. for (int i = 0; i < row.size(); i++) {
  319. String id = row.get( i ).get( TAG_ID );
  320. String barang = row.get( i ).get( TAG_PRODUCT );
  321. String harga = row.get( i ).get( TAG_PRICE );
  322.  
  323. Data data = new Data();
  324.  
  325. data.setId( id );
  326. data.setProduct( barang );
  327. data.setPrice( harga );
  328.  
  329. itemList.add( data );
  330. }
  331.  
  332. adapter.notifyDataSetChanged();
  333. }
  334.  
  335. private int getTotal(){
  336. ArrayList<HashMap<String, String>> row = SQLite.getAllData();
  337. int total = 0;
  338. for (int i = 0; i < itemList.size(); i++){
  339. String harga = row.get( i ).get( TAG_PRICE );
  340. int hasil = Integer.parseInt( harga );
  341.  
  342. jumlah = (TextView)findViewById( R.id.total1 );
  343. total = total + hasil;
  344. jumlah.setText( total );
  345. }
  346.  
  347. return total;
  348. }
  349.  
  350. @Override
  351. protected void onResume(){
  352. super.onResume();
  353. itemList.clear();
  354. getAllData();
  355. }
  356.  
  357.  
  358.  
  359. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement