package
com.example.pdfpicker;
import
android.Manifest;
import
android.content.Intent;
import
android.content.pm.PackageManager;
import
android.net.Uri;
import
android.os.Bundle;
import
android.text.Html;
import
android.view.View;
import
android.widget.Button;
import
android.widget.TextView;
import
android.widget.Toast;
import
androidx.activity.result.ActivityResult;
import
androidx.activity.result.ActivityResultCallback;
import
androidx.activity.result.ActivityResultLauncher;
import
androidx.activity.result.contract.ActivityResultContracts;
import
androidx.annotation.NonNull;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.core.app.ActivityCompat;
public
class
MainActivity
extends
AppCompatActivity {
Button btSelect;
TextView tvUri, tvPath;
ActivityResultLauncher<Intent> resultLauncher;
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btSelect = findViewById(R.id.bt_select);
tvUri = findViewById(R.id.tv_uri);
tvPath = findViewById(R.id.tv_path);
resultLauncher = registerForActivityResult(
new
ActivityResultContracts
.StartActivityForResult(),
new
ActivityResultCallback<ActivityResult>() {
@Override
public
void
onActivityResult(
ActivityResult result)
{
Intent data = result.getData();
if
(data !=
null
) {
Uri sUri = data.getData();
tvUri.setText(Html.fromHtml(
"<big><b>PDF Uri</b></big><br>"
+ sUri));
String sPath = sUri.getPath();
tvPath.setText(Html.fromHtml(
"<big><b>PDF Path</b></big><br>"
+ sPath));
}
}
});
btSelect.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v)
{
if
(ActivityCompat.checkSelfPermission(
MainActivity.
this
,
Manifest.permission
.READ_EXTERNAL_STORAGE)
!= PackageManager
.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
MainActivity.
this
,
new
String[] {
Manifest.permission
.READ_EXTERNAL_STORAGE },
1
);
}
else
{
selectPDF();
}
}
});
}
private
void
selectPDF()
{
Intent intent
=
new
Intent(Intent.ACTION_GET_CONTENT);
intent.setType(
"application/pdf"
);
resultLauncher.launch(intent);
}
@Override
public
void
onRequestPermissionsResult(
int
requestCode,
@NonNull
String[] permissions,
@NonNull
int
[] grantResults)
{
super
.onRequestPermissionsResult(
requestCode, permissions, grantResults);
if
(requestCode ==
1
&& grantResults.length >
0
&& grantResults[
0
]
== PackageManager.PERMISSION_GRANTED) {
selectPDF();
}
else
{
Toast
.makeText(getApplicationContext(),
"Permission Denied"
,
Toast.LENGTH_SHORT)
.show();
}
}
}