SampleDetailActivity.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /**
  2. * Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
  3. * <p>
  4. * THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  5. * AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  6. * UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
  7. * This notice may not be removed from this file.
  8. */
  9. package com.compdfkit.samples;
  10. import android.content.ActivityNotFoundException;
  11. import android.content.Context;
  12. import android.content.Intent;
  13. import android.os.Bundle;
  14. import android.os.Environment;
  15. import android.view.View;
  16. import android.widget.ScrollView;
  17. import androidx.annotation.Nullable;
  18. import androidx.appcompat.app.ActionBar;
  19. import androidx.appcompat.app.AlertDialog;
  20. import androidx.appcompat.app.AppCompatActivity;
  21. import androidx.appcompat.widget.AppCompatTextView;
  22. import androidx.appcompat.widget.Toolbar;
  23. import com.compdfkit.samples.util.FileUtils;
  24. import com.compdfkit.samples.util.LoggingOutputListener;
  25. import com.google.android.material.button.MaterialButton;
  26. import java.io.File;
  27. import java.util.function.IntFunction;
  28. public class SampleDetailActivity extends AppCompatActivity {
  29. protected static final String EXTRA_SAMPLE_ID = "SAMPLE_ID";
  30. PDFSamples pdfSamples = null;
  31. public static void openDetail(Context context, int sampleId) {
  32. Intent intent = new Intent(context, SampleDetailActivity.class);
  33. intent.putExtra(EXTRA_SAMPLE_ID, sampleId);
  34. context.startActivity(intent);
  35. }
  36. @Override
  37. protected void onCreate(@Nullable Bundle savedInstanceState) {
  38. super.onCreate(savedInstanceState);
  39. setContentView(R.layout.fragment_sample_detail);
  40. MaterialButton btnRun = findViewById(R.id.btn_run);
  41. MaterialButton btnOpenFiles = findViewById(R.id.btn_open_files);
  42. AppCompatTextView logTextView = findViewById(R.id.tv_logging);
  43. ScrollView scrollView = findViewById(R.id.scroll_view);
  44. AppCompatTextView tvDescription = findViewById(R.id.tv_description);
  45. // File file = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS);
  46. // FileUtils.deleteFile(file);
  47. ActionBar actionBar = getSupportActionBar();
  48. LoggingOutputListener outputListener = new LoggingOutputListener(logTextView, scrollView);
  49. if (getIntent().hasExtra(EXTRA_SAMPLE_ID)) {
  50. pdfSamples = SampleApplication.getInstance().samplesList.get(getIntent().getIntExtra(EXTRA_SAMPLE_ID, 0));
  51. if (actionBar != null) {
  52. actionBar.setIcon(R.drawable.baseline_arrow_back_24);
  53. actionBar.setHomeButtonEnabled(true);
  54. actionBar.setDisplayHomeAsUpEnabled(true);
  55. actionBar.setTitle(pdfSamples.getTitle());
  56. tvDescription.setText(pdfSamples.getDescription());
  57. }
  58. }
  59. btnRun.setOnClickListener(v -> {
  60. new Thread(() -> {
  61. if (pdfSamples != null) {
  62. pdfSamples.run(outputListener);
  63. }
  64. }).start();
  65. });
  66. btnOpenFiles.setOnClickListener(v -> {
  67. if (pdfSamples.getOutputFileList() != null) {
  68. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  69. builder.setTitle(R.string.choose_a_file_to_open);
  70. builder.setItems(pdfSamples.getOutputFileNames(), (dialog, which) -> {
  71. String filePath = pdfSamples.getOutputFileList().get(which);
  72. String mimeType = "application/pdf";
  73. if (filePath.endsWith(".pdf")){
  74. mimeType = "application/pdf";
  75. } else if (filePath.endsWith("png") || filePath.endsWith("jpg")){
  76. mimeType = "image/*";
  77. }
  78. FileUtils.shareFile(this, "Open", mimeType, new File(filePath));
  79. });
  80. builder.create().show();
  81. }
  82. });
  83. }
  84. @Override
  85. public boolean onSupportNavigateUp() {
  86. onBackPressed();
  87. return super.onSupportNavigateUp();
  88. }
  89. }