Skip to content

Commit c1e18c5

Browse files
committed
Implement isFormEditingEnabled property
1 parent 509f28b commit c1e18c5

File tree

2 files changed

+40
-8
lines changed

2 files changed

+40
-8
lines changed

android/src/main/java/com/pspdfkit/react/ReactPdfViewManager.java

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,9 @@
1313
import com.facebook.react.uimanager.ViewGroupManager;
1414
import com.facebook.react.uimanager.annotations.ReactProp;
1515
import com.pspdfkit.annotations.Annotation;
16+
import com.pspdfkit.configuration.activity.PdfActivityConfiguration;
1617
import com.pspdfkit.preferences.PSPDFKitPreferences;
17-
import com.pspdfkit.react.events.PdfViewAnnotationChangedEvent;
18-
import com.pspdfkit.react.events.PdfViewAnnotationTappedEvent;
1918
import com.pspdfkit.react.events.PdfViewDataReturnedEvent;
20-
import com.pspdfkit.react.events.PdfViewDocumentLoadFailedEvent;
21-
import com.pspdfkit.react.events.PdfViewDocumentSaveFailedEvent;
22-
import com.pspdfkit.react.events.PdfViewDocumentSavedEvent;
23-
import com.pspdfkit.react.events.PdfViewStateChangedEvent;
2419
import com.pspdfkit.react.menu.ReactGroupingRule;
2520
import com.pspdfkit.views.PdfView;
2621

@@ -56,6 +51,11 @@ public class ReactPdfViewManager extends ViewGroupManager<PdfView> {
5651

5752
private CompositeDisposable annotationDisposables = new CompositeDisposable();
5853

54+
/**
55+
* Value of the form editing enabled property so we can make sure configuration does not override it.
56+
*/
57+
private boolean isFormEditingEnabled = true;
58+
5959
@Override
6060
public String getName() {
6161
return "RCTPSPDFKitView";
@@ -112,9 +112,36 @@ public void setFragmentTag(PdfView view, @NonNull String fragmentTag) {
112112
}
113113

114114
@ReactProp(name = "configuration")
115-
public void setConfiguration(PdfView view, @NonNull ReadableMap configuration) {
115+
public void setConfiguration(@NonNull PdfView view, @NonNull ReadableMap configuration) {
116116
ConfigurationAdapter configurationAdapter = new ConfigurationAdapter(view.getContext(), configuration);
117-
view.setConfiguration(configurationAdapter.build());
117+
view.setConfiguration(updateReactPropsInConfiguration(configurationAdapter.build()));
118+
}
119+
120+
@ReactProp(name = "enableFormEditing")
121+
public void setEnableFormEditing(@NonNull PdfView view, boolean enableFormEditing) {
122+
this.isFormEditingEnabled = enableFormEditing;
123+
124+
final PdfActivityConfiguration configuration = view.getConfiguration();
125+
final PdfActivityConfiguration updatedConfiguration = updateReactPropsInConfiguration(configuration);
126+
if (!updatedConfiguration.equals(configuration)) {
127+
view.setConfiguration(updatedConfiguration);
128+
}
129+
}
130+
131+
@NonNull
132+
private PdfActivityConfiguration updateReactPropsInConfiguration(@NonNull PdfActivityConfiguration configuration) {
133+
// Check if the configuration needs update according to current react properties.
134+
if (configuration.getConfiguration().isFormEditingEnabled() == isFormEditingEnabled) {
135+
return configuration;
136+
}
137+
138+
PdfActivityConfiguration.Builder updatedConfigurationBuilder = new PdfActivityConfiguration.Builder(configuration);
139+
if (isFormEditingEnabled) {
140+
updatedConfigurationBuilder.enableFormEditing();
141+
} else {
142+
updatedConfigurationBuilder.disableFormEditing();
143+
}
144+
return updatedConfigurationBuilder.build();
118145
}
119146

120147
@ReactProp(name = "document")

android/src/main/java/com/pspdfkit/views/PdfView.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,11 @@ public void setConfiguration(PdfActivityConfiguration configuration) {
180180
setupFragment();
181181
}
182182

183+
@NonNull
184+
public PdfActivityConfiguration getConfiguration() {
185+
return this.configuration;
186+
}
187+
183188
public void setDocument(@Nullable String documentPath) {
184189
if (documentPath == null) {
185190
this.document = null;

0 commit comments

Comments
 (0)