Skip to content

Commit ed34177

Browse files
dlucosgong-pdftron
andauthored
Add hideToolbarsOnTap prop (#150)
* Add hideToolbarsOnTap prop * android Co-authored-by: sgong-pdftron <sgong@pdftron.com>
1 parent 370d0fd commit ed34177

File tree

7 files changed

+41
-1
lines changed

7 files changed

+41
-1
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,7 @@ A component for displaying documents of different types such as PDF, docx, pptx,
360360
- [pageNumber](#pagenumber)
361361
- [topToolbarEnabled](#toptoolbarenabled)
362362
- [bottomToolbarEnabled](#bottomtoolbarenabled)
363+
- [hideToolbarsOnTap](#hidetoolbarsontap)
363364
- [pageIndicatorEnabled](#pageindicatorenabled)
364365
- [showSavedSignatures](#showsavedsignatures)
365366
- [isBase64String](#isbase64string)
@@ -429,6 +430,11 @@ pageNumber | int | the current page number
429430
bool, optional
430431
##### bottomToolbarEnabled
431432
bool, optional
433+
##### hideToolbarsOnTap
434+
bool, optional
435+
436+
Whether an unhandled tap in the viewer should toggle the visibility of the top and bottom toolbars. The default value is `true`. When `false`, the top and bottom toolbar visibility will not be toggled and the page content will fit between the bars, if any.
437+
432438
##### pageIndicatorEnabled
433439
bool, optional
434440
##### showSavedSignatures

android/src/main/java/com/pdftron/reactnative/viewmanagers/DocumentViewViewManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ public void setBottomToolbarEnabled(DocumentView documentView, boolean bottomToo
107107
documentView.setBottomToolbarEnabled(bottomToolbarEnabled);
108108
}
109109

110+
@ReactProp(name = "hideToolbarsOnTap")
111+
public void setHideToolbarsOnTap(DocumentView documentView, boolean hideToolbarsOnTap) {
112+
documentView.setHideToolbarsOnTap(hideToolbarsOnTap);
113+
}
114+
110115
@ReactProp(name = "pageIndicatorEnabled")
111116
public void setPageIndicatorEnabled(DocumentView documentView, boolean pageIndicatorEnabled) {
112117
documentView.setPageIndicatorEnabled(pageIndicatorEnabled);

android/src/main/java/com/pdftron/reactnative/views/DocumentView.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,10 @@ public void setPageIndicatorEnabled(boolean pageIndicatorEnabled) {
258258
mBuilder = mBuilder.showPageNumberIndicator(pageIndicatorEnabled);
259259
}
260260

261+
public void setHideToolbarsOnTap(boolean hideToolbarsOnTap) {
262+
mBuilder = mBuilder.permanentTopToolbar(!hideToolbarsOnTap);
263+
}
264+
261265
public void setReadOnly(boolean readOnly) {
262266
mBuilder = mBuilder.documentEditingEnabled(!readOnly);
263267
}

ios/RNTPTDocumentView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ static NSString * const PTFormFieldValueKey = @"fieldValue";
200200
@property (nonatomic, assign) BOOL topToolbarEnabled;
201201
@property (nonatomic, assign) BOOL bottomToolbarEnabled;
202202
@property (nonatomic, assign) BOOL pageIndicatorEnabled;
203+
@property (nonatomic, assign) BOOL hideToolbarsOnTap;
203204
@property (nonatomic, assign) BOOL pageIndicatorShowsOnPageChange;
204205
@property (nonatomic, assign) BOOL pageIndicatorShowsWithControls;
205206
@property (nonatomic, assign) BOOL autoSaveEnabled;

ios/RNTPTDocumentView.m

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ - (void)RNTPTDocumentView_commonInit
4646
{
4747
_topToolbarEnabled = YES;
4848
_bottomToolbarEnabled = YES;
49+
_hideToolbarsOnTap = YES;
4950

5051
_pageIndicatorEnabled = YES;
5152
_pageIndicatorShowsOnPageChange = YES;
@@ -1119,6 +1120,13 @@ -(void)setBottomToolbarEnabled:(BOOL)bottomToolbarEnabled
11191120
[self applyViewerSettings];
11201121
}
11211122

1123+
- (void)setHideToolbarsOnTap:(BOOL)hideToolbarsOnTap
1124+
{
1125+
_hideToolbarsOnTap = hideToolbarsOnTap;
1126+
1127+
[self applyViewerSettings];
1128+
}
1129+
11221130
#pragma mark - Page indicator
11231131

11241132
-(void)setPageIndicatorEnabled:(BOOL)pageIndicatorEnabled
@@ -1211,13 +1219,21 @@ - (void)applyViewerSettings
12111219
self.documentViewController.hidesControlsOnTap = YES;
12121220
self.documentViewController.controlsHidden = NO;
12131221
}
1214-
const BOOL translucent = self.documentViewController.hidesControlsOnTap;
1222+
if (self.topToolbarEnabled) {
1223+
self.documentViewController.controlsHidden = NO;
1224+
} else {
1225+
self.documentViewController.controlsHidden = YES;
1226+
}
1227+
const BOOL translucent = self.topToolbarEnabled;
12151228
self.documentViewController.thumbnailSliderController.toolbar.translucent = translucent;
12161229
self.documentViewController.navigationController.navigationBar.translucent = translucent;
12171230

12181231
// Bottom toolbar.
12191232
self.documentViewController.bottomToolbarEnabled = self.bottomToolbarEnabled;
12201233

1234+
self.documentViewController.hidesControlsOnTap = self.hideToolbarsOnTap;
1235+
self.documentViewController.pageFitsBetweenBars = !self.hideToolbarsOnTap;
1236+
12211237
// Page indicator.
12221238
self.documentViewController.pageIndicatorEnabled = self.pageIndicatorEnabled;
12231239

ios/RNTPTDocumentViewManager.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,13 @@ - (instancetype)init
115115
}
116116
}
117117

118+
RCT_CUSTOM_VIEW_PROPERTY(hideToolbarsOnTap, BOOL, RNTPTDocumentView)
119+
{
120+
if (json) {
121+
view.hideToolbarsOnTap = [RCTConvert BOOL:json];
122+
}
123+
}
124+
118125
RCT_CUSTOM_VIEW_PROPERTY(pageIndicatorEnabled, BOOL, RNTPTDocumentView)
119126
{
120127
if (json) {

src/DocumentView/DocumentView.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default class DocumentView extends PureComponent {
3939
onBehaviorActivated: PropTypes.func,
4040
topToolbarEnabled: PropTypes.bool,
4141
bottomToolbarEnabled: PropTypes.bool,
42+
hideToolbarsOnTap: PropTypes.bool,
4243
pageIndicatorEnabled: PropTypes.bool,
4344
onAnnotationsSelected: PropTypes.func,
4445
onAnnotationChanged: PropTypes.func,

0 commit comments

Comments
 (0)