4848import com .facebook .react .uimanager .events .EventDispatcher ;
4949import com .pspdfkit .LicenseFeature ;
5050import com .pspdfkit .PSPDFKit ;
51+ import com .pspdfkit .ai .AiAssistantHelpersKt ;
5152import com .pspdfkit .annotations .Annotation ;
5253import com .pspdfkit .annotations .AnnotationFlags ;
5354import com .pspdfkit .annotations .AnnotationType ;
5455import com .pspdfkit .annotations .configuration .FreeTextAnnotationConfiguration ;
56+ import com .pspdfkit .configuration .PdfConfiguration ;
5557import com .pspdfkit .configuration .activity .PdfActivityConfiguration ;
5658import com .pspdfkit .configuration .search .SearchType ;
5759import com .pspdfkit .configuration .sharing .ShareFeatures ;
126128import java .util .concurrent .atomic .AtomicBoolean ;
127129
128130import io .nutrient .data .models .AiAssistantConfiguration ;
131+ import io .nutrient .data .models .DocumentIdentifiers ;
129132import io .nutrient .domain .ai .AiAssistant ;
130133import io .nutrient .domain .ai .AiAssistantKt ;
131134import io .reactivex .rxjava3 .android .schedulers .AndroidSchedulers ;
141144import io .reactivex .rxjava3 .schedulers .Schedulers ;
142145import io .reactivex .rxjava3 .subjects .BehaviorSubject ;
143146import kotlin .Unit ;
147+ import com .pspdfkit .react .SessionStorage ;
144148
145149/**
146150 * This view displays a {@link com.pspdfkit.ui.PdfFragment} and all associated toolbars.
@@ -257,8 +261,10 @@ public void doFrame(long frameTimeNanos) {
257261 }
258262 });
259263
260- // Set a default configuration.
261- configuration = new PdfActivityConfiguration .Builder (getContext ()).build ();
264+ // Set a default configuration. Immersive should be disabled for React Native.
265+ configuration = new PdfActivityConfiguration .Builder (getContext ())
266+ .immersiveModeEnabled (false )
267+ .build ();
262268
263269 // Generate an id to set on all fragments created by the PdfView.
264270 internalId = View .generateViewId ();
@@ -648,8 +654,16 @@ private void postFragmentSetup(PdfUiFragment pdfFragment) {
648654 aiaConfiguration .getString ("jwt" ),
649655 aiaConfiguration .getString ("sessionID" ),
650656 aiaConfiguration .getString ("userID" ));
651- AiAssistant aiAssistant = AiAssistantKt .standaloneAiAssistant (reactApplicationContext , aiaConfig );
652- Objects .requireNonNull (pdfFragment .getDocument ()).setAiAssistant (aiAssistant );
657+
658+ PdfDocument document = fragment .getDocument ();
659+ DocumentIdentifiers documentIdentifiers = new DocumentIdentifiers (document .getDocumentSource ().getDataProvider (),
660+ document .getPermanentId ().toString (),
661+ null ,
662+ document .getPermanentId ().toString (),
663+ null );
664+
665+ AiAssistant aiAssistant = AiAssistantKt .standaloneAiAssistant (reactApplicationContext , aiaConfig , List .of (documentIdentifiers ));
666+ SessionStorage .setAiAssistant (aiAssistant );
653667 }
654668 } catch (Exception e ) {
655669 Log .w (TAG , "Failed to set AIA Configuration: " + e .getMessage ());
@@ -1311,7 +1325,7 @@ public JSONObject convertConfiguration() {
13111325
13121326 config .put ("userInterfaceViewMode" , ConfigurationAdapter .getStringValueForConfigurationItem (fragment .getConfiguration ().getUserInterfaceViewMode ()));
13131327 config .put ("inlineSearch" , fragment .getConfiguration ().getSearchType () == SearchType .INLINE ? true : false );
1314- config .put ("immersiveMode" , fragment .getConfiguration ().isImmersiveMode ());
1328+ config .put ("immersiveMode" , fragment .getConfiguration ().isImmersiveModeEnabled ());
13151329 config .put ("toolbarTitle" , fragment .getConfiguration ().getActivityTitle ());
13161330 config .put ("androidShowSearchAction" , fragment .getConfiguration ().isSearchEnabled ());
13171331 config .put ("androidShowOutlineAction" , fragment .getConfiguration ().isOutlineEnabled ());
@@ -1320,6 +1334,7 @@ public JSONObject convertConfiguration() {
13201334 config .put ("androidShowPrintAction" , fragment .getConfiguration ().isPrintingEnabled ());
13211335 config .put ("androidShowDocumentInfoView" , fragment .getConfiguration ().isDocumentInfoViewEnabled ());
13221336 config .put ("androidShowSettingsMenu" , fragment .getConfiguration ().isSettingsItemEnabled ());
1337+ config .put ("androidEnableStylusOnDetection" , fragment .getConfiguration ().getConfiguration ().getEnableStylusOnDetection ());
13231338
13241339 config .put ("showThumbnailBar" , ConfigurationAdapter .getStringValueForConfigurationItem (fragment .getConfiguration ().getThumbnailBarMode ()));
13251340 config .put ("androidShowThumbnailGridAction" , fragment .getConfiguration ().isThumbnailGridEnabled ());
0 commit comments