|
@@ -29,6 +29,7 @@ import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewGroup;
|
|
import android.widget.FrameLayout;
|
|
import android.widget.FrameLayout;
|
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
import androidx.activity.OnBackPressedCallback;
|
|
import androidx.activity.OnBackPressedCallback;
|
|
import androidx.activity.result.ActivityResultLauncher;
|
|
import androidx.activity.result.ActivityResultLauncher;
|
|
@@ -44,6 +45,7 @@ import com.compdfkit.core.document.CPDFDocument;
|
|
import com.compdfkit.core.edit.CPDFEditManager;
|
|
import com.compdfkit.core.edit.CPDFEditManager;
|
|
import com.compdfkit.core.edit.CPDFEditPage;
|
|
import com.compdfkit.core.edit.CPDFEditPage;
|
|
import com.compdfkit.core.page.CPDFPage;
|
|
import com.compdfkit.core.page.CPDFPage;
|
|
|
|
+import com.compdfkit.tools.BuildConfig;
|
|
import com.compdfkit.tools.R;
|
|
import com.compdfkit.tools.R;
|
|
import com.compdfkit.tools.annotation.pdfannotationbar.CAnnotationToolbar;
|
|
import com.compdfkit.tools.annotation.pdfannotationbar.CAnnotationToolbar;
|
|
import com.compdfkit.tools.annotation.pdfproperties.pdflnk.CInkCtrlView;
|
|
import com.compdfkit.tools.annotation.pdfproperties.pdflnk.CInkCtrlView;
|
|
@@ -253,10 +255,12 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
|
|
String password = getArguments().getString(EXTRA_FILE_PASSWORD);
|
|
String password = getArguments().getString(EXTRA_FILE_PASSWORD);
|
|
if (!TextUtils.isEmpty(getArguments().getString(EXTRA_FILE_PATH))) {
|
|
if (!TextUtils.isEmpty(getArguments().getString(EXTRA_FILE_PATH))) {
|
|
String path = getArguments().getString(EXTRA_FILE_PATH);
|
|
String path = getArguments().getString(EXTRA_FILE_PATH);
|
|
|
|
+ documentPath = path;
|
|
pdfView.openPDF(path, password, callback);
|
|
pdfView.openPDF(path, password, callback);
|
|
} else if (getArguments().getParcelable(EXTRA_FILE_URI) != null) {
|
|
} else if (getArguments().getParcelable(EXTRA_FILE_URI) != null) {
|
|
Uri uri = getArguments().getParcelable(EXTRA_FILE_URI);
|
|
Uri uri = getArguments().getParcelable(EXTRA_FILE_URI);
|
|
CFileUtils.takeUriPermission(getContext(), uri);
|
|
CFileUtils.takeUriPermission(getContext(), uri);
|
|
|
|
+ documentUri = uri;
|
|
pdfView.openPDF(uri, password, callback);
|
|
pdfView.openPDF(uri, password, callback);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -326,9 +330,6 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
|
|
editManager.enable();
|
|
editManager.enable();
|
|
editManager.beginEdit(CPDFEditPage.LoadTextImage);
|
|
editManager.beginEdit(CPDFEditPage.LoadTextImage);
|
|
}
|
|
}
|
|
- if (!CPermissionUtil.hasStoragePermissions(getContext())) {
|
|
|
|
- requestStoragePermissions(this::selectDocument);
|
|
|
|
- }
|
|
|
|
} else {
|
|
} else {
|
|
if (editManager != null && editManager.isEditMode()) {
|
|
if (editManager != null && editManager.isEditMode()) {
|
|
editManager.endEdit();
|
|
editManager.endEdit();
|
|
@@ -614,19 +615,23 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
|
|
break;
|
|
break;
|
|
case OpenDocument:
|
|
case OpenDocument:
|
|
menuWindow.addItem(R.drawable.tools_ic_new_file, R.string.tools_open_document, v1 -> {
|
|
menuWindow.addItem(R.drawable.tools_ic_new_file, R.string.tools_open_document, v1 -> {
|
|
- if (CPermissionUtil.hasStoragePermissions(getContext())) {
|
|
|
|
selectDocument();
|
|
selectDocument();
|
|
- } else {
|
|
|
|
- requestStoragePermissions(this::selectDocument);
|
|
|
|
- }
|
|
|
|
});
|
|
});
|
|
break;
|
|
break;
|
|
case Flattened:
|
|
case Flattened:
|
|
menuWindow.addItem(R.drawable.tools_ic_flattened, R.string.tools_flattened, v1 -> {
|
|
menuWindow.addItem(R.drawable.tools_ic_flattened, R.string.tools_flattened, v1 -> {
|
|
- if (CPermissionUtil.hasStoragePermissions(getContext())) {
|
|
|
|
|
|
+ if (Build.VERSION.SDK_INT < CPermissionUtil.VERSION_R) {
|
|
|
|
+ multiplePermissionResultLauncher.launch(CPermissionUtil.STORAGE_PERMISSIONS, result -> {
|
|
|
|
+ if (CPermissionUtil.hasStoragePermissions(getContext())) {
|
|
|
|
+ pdfView.savePDF((filePath, pdfUri) -> flattenedPdf(), e -> flattenedPdf());
|
|
|
|
+ } else {
|
|
|
|
+ if (!CPermissionUtil.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
|
|
|
+ CPermissionUtil.showPermissionsRequiredDialog(getChildFragmentManager(), getContext());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }else {
|
|
pdfView.savePDF((filePath, pdfUri) -> flattenedPdf(), e -> flattenedPdf());
|
|
pdfView.savePDF((filePath, pdfUri) -> flattenedPdf(), e -> flattenedPdf());
|
|
- } else {
|
|
|
|
- requestStoragePermissions(() -> pdfView.savePDF((filePath, pdfUri) -> flattenedPdf(), e -> flattenedPdf()));
|
|
|
|
}
|
|
}
|
|
});
|
|
});
|
|
break;
|
|
break;
|
|
@@ -726,7 +731,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
|
|
}
|
|
}
|
|
CAlertDialog alertDialog = CAlertDialog.newInstance(getString(R.string.tools_save_title), getString(R.string.tools_save_message));
|
|
CAlertDialog alertDialog = CAlertDialog.newInstance(getString(R.string.tools_save_title), getString(R.string.tools_save_message));
|
|
alertDialog.setConfirmClickListener(v -> {
|
|
alertDialog.setConfirmClickListener(v -> {
|
|
- //save pdf document
|
|
|
|
|
|
+ // save pdf document
|
|
pdfView.savePDF((filePath, pdfUri) -> {
|
|
pdfView.savePDF((filePath, pdfUri) -> {
|
|
alertDialog.dismiss();
|
|
alertDialog.dismiss();
|
|
selectDocumentLauncher.launch(null);
|
|
selectDocumentLauncher.launch(null);
|