Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
22e5bda
extend signature and font
Jul 4, 2024
05dae06
chore: Add support for lazy loading images and update PDFTronAppTheme…
Danial-dene Jul 8, 2024
dc78afe
chore: Update Gradle distribution to version 7.5.1
Danial-dene Jul 8, 2024
f8b4a2f
chore: Add support for custom free text presets
Danial-dene Jul 8, 2024
1f0a7d7
set default font size also for Fill & Sign in Android
Jul 9, 2024
05e7d2a
imports
Jul 9, 2024
5376835
Merge commit '05e7d2a444835b381c0f9b87bded3b5ae1fccf71'
ASufian98 Jul 12, 2024
4b8c19b
✨ Test new feature hide signature
ASufian98 Aug 9, 2024
125094a
🚧 WIP hide signature dialog
ASufian98 Aug 16, 2024
7b083ca
Revert "🚧 WIP hide signature dialog"
ASufian98 Aug 16, 2024
166db84
✨ Prevents Signature Dialog from showing
ASufian98 Aug 20, 2024
a73d7f3
✨ Fix Build Issue
ASufian98 Aug 20, 2024
83c84d5
Fix edit signature for ios
awahab994 Aug 20, 2024
9dc8d09
Fix ios error
awahab994 Aug 21, 2024
f09e8d4
Merge pull request #1 from awahab994/ios/sign-fix
Danial-dene Aug 21, 2024
187e5c6
Fixes for android
awahab994 Aug 21, 2024
a6f9b9e
Merge pull request #2 from awahab994/andorid/sign-fix
Danial-dene Aug 26, 2024
5c89abb
fix download signature issue in android
awahab994 Sep 8, 2024
750a616
fix imports
awahab994 Sep 9, 2024
f0877d6
Merge pull request #3 from awahab994/andorid/sign-fix
Danial-dene Sep 17, 2024
b340d67
✨ Handles local file paths
ASufian98 Jan 22, 2025
08fdf44
✨ Add Signature for Android
ASufian98 Jan 23, 2025
5d9bd71
Merge branch 'ApryseSDK:master' into master
ASufian98 Mar 3, 2025
7a02f31
Merge branch 'ApryseSDK:master' into master
ASufian98 Mar 5, 2025
8caeb77
Merge branch 'ApryseSDK:master' into master
ASufian98 Jun 16, 2025
cb5b270
fix(android): handle file:// prefix for local signature paths
thrashraf Jan 26, 2026
6c845c4
fix(android): allow signature dialog to show
thrashraf Jan 26, 2026
ad0e941
Block signature creation on Android to match iOS behavior
thrashraf Jan 26, 2026
6f6b41f
feat(android): show all 4 signatures in custom dialog with native pla…
thrashraf Jan 28, 2026
86fd37a
Merge pull request #4 from binacloudmy/fix/android-file-prefix
Danial-dene Jan 28, 2026
5acab00
fix:pdftron-flatten-import-bina
SShinbae Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
package com.pdftron.reactnative.modules;

import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;

import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.LifecycleEventListener;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
Expand All @@ -13,10 +28,14 @@
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.google.android.material.internal.ToolbarUtils;
import com.pdftron.pdf.dialog.digitalsignature.DigitalSignatureDialogFragment;
import com.pdftron.pdf.dialog.digitalsignature.validation.list.DigitalSignatureListDialog;
import com.pdftron.pdf.widget.preset.signature.SignatureSelectionDialog;
import com.pdftron.reactnative.R;
import com.pdftron.reactnative.viewmanagers.DocumentViewViewManager;

public class DocumentViewModule extends ReactContextBaseJavaModule implements ActivityEventListener {
public class DocumentViewModule extends ReactContextBaseJavaModule implements ActivityEventListener, LifecycleEventListener {

private static final String REACT_CLASS = "DocumentViewManager";

Expand All @@ -25,6 +44,7 @@ public class DocumentViewModule extends ReactContextBaseJavaModule implements Ac
public DocumentViewModule(ReactApplicationContext reactContext, DocumentViewViewManager viewManager) {
super(reactContext);
reactContext.addActivityEventListener(this);
reactContext.addLifecycleEventListener(this);

mDocumentViewInstance = viewManager;
}
Expand Down Expand Up @@ -1504,4 +1524,69 @@ public void onActivityResult(Activity activity, int requestCode, int resultCode,
public void onNewIntent(Intent intent) {

}

@Override
public void onHostResume() {

if (getCurrentActivity() != null && getCurrentActivity() instanceof AppCompatActivity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
((AppCompatActivity) getCurrentActivity()).getSupportFragmentManager().registerFragmentLifecycleCallbacks(new FragmentManager.FragmentLifecycleCallbacks() {

@Override
public void onFragmentStarted(@NonNull FragmentManager fm, @NonNull Fragment f) {
super.onFragmentStarted(fm, f);
if (f instanceof SignatureSelectionDialog) {
SignatureSelectionDialog dialog = (SignatureSelectionDialog) f;
View view = dialog.getView();
hideButtons(view);
}
}
}, true);
}
else{
FragmentManager fragmentManager = ((AppCompatActivity) getCurrentActivity()).getSupportFragmentManager();
fragmentManager.addOnBackStackChangedListener(() -> {
Log.d("TAG_FRAG", "HELLO How are you ?");
for (Fragment fragment : fragmentManager.getFragments()) {
Log.d("TAG_FRAG", fragment.getClass().getName());

if (fragment instanceof SignatureSelectionDialog) {

SignatureSelectionDialog dialog = (SignatureSelectionDialog) fragment;
View view = dialog.getView();
hideButtons(view);

}
}
});
}

}
}

private void hideButtons(View view){
if(view == null) return;
if (view instanceof Button) {
Button button = (Button) view;
if (button.getText().toString().equalsIgnoreCase("Manage") ||
button.getText().toString().equalsIgnoreCase("Delete") || button.getText().toString().equalsIgnoreCase("Create")) {
button.setVisibility(View.INVISIBLE); // Hide Manage and Delete buttons
}
} else if (view instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) view;
for (int i = 0; i < viewGroup.getChildCount(); i++) {
hideButtons(viewGroup.getChildAt(i)); // Recursively check all child views
}
}
}

@Override
public void onHostPause() {

}

@Override
public void onHostDestroy() {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ public final class Constants {
public static final String BUTTON_SAVE_PASSWORD_COPY = "savePasswordCopyButton";
public static final String BUTTON_TABS = "tabsButton";
public static final String BUTTON_FILE_ATTACHMENT = "fileAttachmentButton";
public static final String BUTTON_IMPORT_FROM_BINA = "importFromBinaButton";

// TOOL BUTTONS
public static final String TOOL_BUTTON_FREE_HAND = "freeHandToolButton";
Expand Down Expand Up @@ -278,6 +279,7 @@ public final class Constants {
public static final String THUMBNAIL_DELETE_PAGES = "thumbnailsDeletePages";
public static final String THUMBNAIL_INSERT_FROM_IMAGE = "thumbnailsInsertFromImage";
public static final String THUMBNAIL_INSERT_FROM_DOCUMENT = "thumbnailsInsertFromDocument";
public static final String THUMBNAIL_IMPORT_FROM_BINA = "thumbnailsImportFromBina";

public static final String VIEW_MODE_CROP = "viewModeCrop";
public static final String VIEW_MODE_ROTATION = "viewModeRotation";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,18 @@ protected DocumentView createViewInstance(ThemedReactContext reactContext) {
return documentView;
}


@ReactProp(name = "fontSize")
public void setFontSize(DocumentView documentView, int fontSize) {
documentView.setFontSize(fontSize);
}

@ReactProp(name = "signatureArrayUrl")
public void setSignatureArrayUrl(DocumentView documentView, @NonNull ReadableArray array) {
documentView.setSignatureArrayUrl(array);
}


@ReactProp(name = "document")
public void setDocument(DocumentView documentView, @NonNull String filepath) {
documentView.setDocument(filepath);
Expand Down
Loading