Added sharing and downloading button for previous results.

Date of birth format change from month-date-year to date-month-year
This commit is contained in:
developerraman
2021-05-23 02:47:03 +05:30
parent 52df04a5c9
commit d58fef2180
6 changed files with 309 additions and 4 deletions

View File

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

View File

@@ -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{

View File

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

View File

@@ -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">

View File

@@ -6,6 +6,37 @@
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<RelativeLayout
android:layout_width="fill_parent"
android:background="@android:color/holo_blue_light"
android:layout_height="@android:dimen/app_icon_size"
android:orientation="vertical">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="@android:dimen/app_icon_size"
android:id="@+id/share"
android:tint="@android:color/white"
android:layout_alignParentEnd="true"
android:backgroundTint="@android:color/transparent"
android:src="@android:drawable/ic_menu_share"
android:layout_alignParentRight="true" />
<ImageButton
android:id="@+id/downlaod"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginHorizontal="50dp"
android:backgroundTint="@android:color/transparent"
android:src="@android:drawable/stat_sys_download"
android:tint="@android:color/white" />
</RelativeLayout>

View File

@@ -1,5 +1,5 @@
<resources>
<string name="app_name">Arrest TB </string>
<string name="app_name">SpinTube App</string>
<string name="open_navigation_drawer">Open navigation drawer</string>
<string name="close_navigation_drawer">Close navigation drawer</string>
<string name="asteriskred"><font color='#cc0029'>*</font></string>