From d58fef21801eb0bc651e663ea6bf7c0cb74ac171 Mon Sep 17 00:00:00 2001 From: developerraman Date: Sun, 23 May 2021 02:47:03 +0530 Subject: [PATCH] Added sharing and downloading button for previous results. Date of birth format change from month-date-year to date-month-year --- .../arrest_tb/PatientDetail.java | 2 +- .../in/sminnovations/arrest_tb/Report.java | 2 +- .../sminnovations/arrest_tb/TestDetails.java | 274 ++++++++++++++++++ app/src/main/res/layout/activity_about.xml | 2 +- .../main/res/layout/activity_spin__test.xml | 31 ++ app/src/main/res/values/strings.xml | 2 +- 6 files changed, 309 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/in/sminnovations/arrest_tb/PatientDetail.java b/app/src/main/java/in/sminnovations/arrest_tb/PatientDetail.java index b0f5559..7d677f6 100644 --- a/app/src/main/java/in/sminnovations/arrest_tb/PatientDetail.java +++ b/app/src/main/java/in/sminnovations/arrest_tb/PatientDetail.java @@ -127,7 +127,7 @@ public class PatientDetail extends NavigationTop implements AdapterView.OnItemSe public void onDateSet(DatePicker datePicker, int year, int month, int day) { month = month + 1; - String date = month + "-" + day + "-" + year; + String date = day + "-" + month + "-" + year; mDisplayDate.setText(date); patientdob=date; /* int year1 = Calendar.getInstance().get(Calendar.YEAR); diff --git a/app/src/main/java/in/sminnovations/arrest_tb/Report.java b/app/src/main/java/in/sminnovations/arrest_tb/Report.java index a0d1221..ad3872e 100644 --- a/app/src/main/java/in/sminnovations/arrest_tb/Report.java +++ b/app/src/main/java/in/sminnovations/arrest_tb/Report.java @@ -122,7 +122,7 @@ public class Report extends NavigationTop { Intent intent=new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT,"Report"); if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) { - Uri path= FileProvider.getUriForFile(Report.this,"in.sminnovations.arresttb_testing.fileprovider",filePath); + Uri path= FileProvider.getUriForFile(Report.this,"in.sminnovations.arrest_tb.fileprovider",filePath); intent.putExtra(Intent.EXTRA_STREAM,path); } else{ diff --git a/app/src/main/java/in/sminnovations/arrest_tb/TestDetails.java b/app/src/main/java/in/sminnovations/arrest_tb/TestDetails.java index 887b3d2..746cec8 100644 --- a/app/src/main/java/in/sminnovations/arrest_tb/TestDetails.java +++ b/app/src/main/java/in/sminnovations/arrest_tb/TestDetails.java @@ -1,15 +1,33 @@ package in.sminnovations.arrest_tb; +import android.Manifest; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; +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.os.Environment; import android.util.Log; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; + +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; import com.bumptech.glide.Glide; import com.google.firebase.database.DataSnapshot; @@ -19,6 +37,8 @@ import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; @@ -32,7 +52,9 @@ public class TestDetails extends NavigationTop { String date,time,number; private String TestID = ""; + ImageButton shared ,dowbloadd; + File filePath=null; @Override @@ -42,7 +64,10 @@ public class TestDetails extends NavigationTop { .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View contentView = inflater.inflate(R.layout.activity_spin__test, null, false); draw.addView(contentView, 0); + shared=findViewById(R.id.share); + + dowbloadd=findViewById(R.id.downlaod); patient_id=findViewById(R.id.patient_idr); patient_dob=findViewById(R.id.patien_dobr); patientnikshayid=findViewById(R.id.patient_nikshayidr); @@ -75,6 +100,63 @@ public class TestDetails extends NavigationTop { getTestDetails(TestID); + + shared.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(ContextCompat.checkSelfPermission(TestDetails.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(TestDetails.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + createPdf(); + + Intent intent=new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT,"Report"); + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) { + Uri path= FileProvider.getUriForFile(TestDetails.this,"in.sminnovations.arrest_tb.fileprovider",filePath); + intent.putExtra(Intent.EXTRA_STREAM,path); + } + else{ + + intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(filePath)); + } + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setType("application/pdf"); + startActivity(intent); + + + + + } + + + } + }); + + dowbloadd.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(ContextCompat.checkSelfPermission(TestDetails.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(TestDetails.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + createPdf(); + Toast.makeText(TestDetails.this, "File Downloaded", Toast.LENGTH_LONG).show(); + + + + } + } + + }); + + } private void getTestDetails(String TestID) { @@ -115,5 +197,197 @@ public class TestDetails extends NavigationTop { } }); } + private void createPdf(){ + + + + + + + + + + + + + + + + + + + PdfDocument document = new PdfDocument(); + + PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(1000, 2000, 1).create(); + + PdfDocument.Page page = document.startPage(pageInfo); + Canvas canvas = page.getCanvas(); + Paint paint = new Paint(); + paint.setTextSize(80); + canvas.drawText("Arrest TB",40,80,paint); + paint.setTextSize(30); + canvas.drawText("ShanMukha Innovations Pvt Ltd",30,120,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText(dated.getText().toString(),canvas.getWidth()-40,40,paint); + canvas.drawText(timed.getText().toString(),canvas.getWidth()-40,80,paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.rgb(150,150,150)); + canvas.drawRect(30,250,canvas.getWidth()-30,300,paint); + paint.setColor(Color.WHITE); + canvas.drawText("Result",50,285,paint); + // canvas.drawText("name 2",450,435,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText(resultd.getText().toString(),canvas.getWidth()-40,285,paint); + paint.setTextAlign(Paint.Align.LEFT); + + + paint.setColor(Color.rgb(150,150,150)); + // canvas.drawRect(30,150,canvas.getWidth()-30,160,paint); + + + canvas.drawRect(30,400,canvas.getWidth()-30,450,paint); + paint.setColor(Color.WHITE); + canvas.drawText("Patient ID",50,435,paint); + canvas.drawText("Patient Gender",450,435,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText("Date of Birth",canvas.getWidth()-40,435,paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.BLACK); + + canvas.drawText(patient_id.getText().toString(),50,480,paint); + canvas.drawText(patientgender.getText().toString(),450,480,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText(patient_dob.getText().toString()+".",canvas.getWidth()-40,480,paint); + + paint.setTextAlign(Paint.Align.RIGHT); + + paint.setColor(Color.rgb(150,150,150)); + // canvas.drawRect(30,150,canvas.getWidth()-30,160,paint); + + // canvas.drawRect(30,550,canvas.getWidth()-30,560,paint); + canvas.drawRect(30,570,canvas.getWidth()-30,620,paint); + + + paint.setColor(Color.WHITE); + canvas.drawText("Age",100,605,paint); + canvas.drawText("Nikshay ID ",540,605,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText("NIRT Lab Number",canvas.getWidth()-40,605,paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.BLACK); + + canvas.drawText(agepatient.getText().toString(),50,650,paint); + canvas.drawText(patientnikshayid.getText().toString(),440,650,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText(nirtlab.getText().toString(),canvas.getWidth()-40,650,paint); + + paint.setTextAlign(Paint.Align.RIGHT); + paint.setColor(Color.rgb(150,150,150)); + + canvas.drawRect(30,740,canvas.getWidth()-30,790,paint); + + paint.setColor(Color.WHITE); + canvas.drawText("SPIN Tube ID",220,775,paint); + canvas.drawText("Type of Sample",540,775,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText("Tube Validity",canvas.getWidth()-40,775,paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.BLACK); + + canvas.drawText(spintubeid.getText().toString(),50,820,paint); + canvas.drawText(patientsample.getText().toString(),440,820,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText(validatyd.getText().toString(),canvas.getWidth()-40,820,paint); + + paint.setTextAlign(Paint.Align.RIGHT); + paint.setColor(Color.rgb(150,150,150)); + + // finish the page + document.finishPage(page); + + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/ArrestTb/"; + File file = new File(directory_path); + if (!file.exists()) { + file.mkdirs(); + } + String targetPdf = directory_path+"Report_"+patient_id.getText().toString()+".pdf"; + filePath = new File(targetPdf); + + try { + document.writeTo(new FileOutputStream(filePath)); + } catch (IOException e) { + Log.e("main", "error "+e.toString()); + } + + document.close(); + + } + + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater=getMenuInflater(); + inflater.inflate(R.menu.download,menu); + MenuItem item = menu.findItem(R.id.share); + MenuItem item1=menu.findItem(R.id.download1); + item1.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + if(ContextCompat.checkSelfPermission(TestDetails.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(TestDetails.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + //startCropImageActivity(); + createPdf(); + Toast.makeText(TestDetails.this, "File Downloaded", Toast.LENGTH_LONG).show(); + + + + } + + return true; + } + }); + item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + if(ContextCompat.checkSelfPermission(TestDetails.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(TestDetails.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + createPdf(); + + Intent intent=new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT,"Report"); + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) { + Uri path= FileProvider.getUriForFile(TestDetails.this,"in.sminnovations.arrest_tb.fileprovider",filePath); + intent.putExtra(Intent.EXTRA_STREAM,path); + } + else{ + + intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(filePath)); + } + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setType("application/pdf"); + startActivity(intent); + + //startCropImageActivity(); + // createPdf(editText.getText().toString()); + + + } + + return true; + } + }); + + + return super.onCreateOptionsMenu(menu); + } + } diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index bc41553..230c6a8 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -50,7 +50,7 @@ android:layout_marginTop="10dp" android:layout_gravity="center_horizontal" android:src="@drawable/shanmukha_logo_small" - android:text="Arrest TB 1.0.0" + android:text="SpinTube App 1.0.0" android:textColor="#131313" android:textSize="@dimen/heading_size" android:textStyle="bold"> diff --git a/app/src/main/res/layout/activity_spin__test.xml b/app/src/main/res/layout/activity_spin__test.xml index 5dec212..ce2c152 100644 --- a/app/src/main/res/layout/activity_spin__test.xml +++ b/app/src/main/res/layout/activity_spin__test.xml @@ -6,6 +6,37 @@ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical"> + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3935f6d..c13c853 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - Arrest TB + SpinTube App Open navigation drawer Close navigation drawer *