2929import java .util .EnumSet ;
3030import java .util .HashMap ;
3131
32+ import static com .pspdfkit .flutter .pspdfkit .util .Preconditions .requireNotNullNotEmpty ;
33+ import static io .flutter .util .Preconditions .checkNotNull ;
34+
3235class ConfigurationAdapter {
3336 private static final String LOG_TAG = "ConfigurationAdapter" ;
3437
@@ -76,7 +79,7 @@ class ConfigurationAdapter {
7679 private static final String SETTINGS_MENU_ITEMS = "settingsMenuItems" ;
7780 private static final String SHOW_ACTION_NAVIGATION_BUTTONS = "showActionNavigationButtons" ;
7881
79- private final PdfActivityConfiguration .Builder configuration ;
82+ @ NonNull private final PdfActivityConfiguration .Builder configuration ;
8083 @ Nullable private String password = null ;
8184
8285 ConfigurationAdapter (@ NonNull Context context ,
@@ -187,7 +190,8 @@ private void configureShowPageNumberOverlay(boolean showPageNumberOverlay) {
187190 }
188191 }
189192
190- private void configurePageScrollDirection (final String pageScrollDirection ) {
193+ private void configurePageScrollDirection (@ NonNull final String pageScrollDirection ) {
194+ requireNotNullNotEmpty (pageScrollDirection , "pageScrollDirection" );
191195 if (pageScrollDirection .equals (PAGE_SCROLL_DIRECTION_HORIZONTAL )) {
192196 configuration .scrollDirection (PageScrollDirection .HORIZONTAL );
193197 } else if (pageScrollDirection .equals (PAGE_SCROLL_DIRECTION_VERTICAL )) {
@@ -214,16 +218,25 @@ private void configureStartPage(int startPage) {
214218 configuration .page (startPage );
215219 }
216220
217- private void configureUserInterfaceViewMode (String userInterfaceViewMode ) {
218- UserInterfaceViewMode result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_AUTOMATIC ;
219- if (userInterfaceViewMode .equals (USER_INTERFACE_VIEW_MODE_AUTOMATIC )) {
220- result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_AUTOMATIC ;
221- } else if (userInterfaceViewMode .equals (USER_INTERFACE_VIEW_MODE_AUTOMATIC_BORDER_PAGES )) {
222- result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_AUTOMATIC_BORDER_PAGES ;
223- } else if (userInterfaceViewMode .equals (USER_INTERFACE_VIEW_MODE_ALWAYS_VISIBLE )) {
224- result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_VISIBLE ;
225- } else if (userInterfaceViewMode .equals (USER_INTERFACE_VIEW_MODE_ALWAYS_HIDDEN )) {
226- result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_HIDDEN ;
221+ private void configureUserInterfaceViewMode (@ NonNull String userInterfaceViewMode ) {
222+ requireNotNullNotEmpty (userInterfaceViewMode , "userInterfaceViewMode" );
223+
224+ UserInterfaceViewMode result ;
225+ switch (userInterfaceViewMode ) {
226+ case USER_INTERFACE_VIEW_MODE_AUTOMATIC :
227+ result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_AUTOMATIC ;
228+ break ;
229+ case USER_INTERFACE_VIEW_MODE_AUTOMATIC_BORDER_PAGES :
230+ result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_AUTOMATIC_BORDER_PAGES ;
231+ break ;
232+ case USER_INTERFACE_VIEW_MODE_ALWAYS_VISIBLE :
233+ result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_VISIBLE ;
234+ break ;
235+ case USER_INTERFACE_VIEW_MODE_ALWAYS_HIDDEN :
236+ result = UserInterfaceViewMode .USER_INTERFACE_VIEW_MODE_HIDDEN ;
237+ break ;
238+ default :
239+ throw new IllegalArgumentException ("Undefined user interface view mode for " + userInterfaceViewMode );
227240 }
228241 configuration .setUserInterfaceViewMode (result );
229242 }
@@ -240,7 +253,9 @@ private void configureImmersiveMode(boolean immersiveMode) {
240253 configuration .useImmersiveMode (immersiveMode );
241254 }
242255
243- private void configureShowThumbnailBar (String showThumbnailBar ) {
256+ private void configureShowThumbnailBar (@ NonNull String showThumbnailBar ) {
257+ requireNotNullNotEmpty (showThumbnailBar , "showThumbnailBar" );
258+
244259 ThumbnailBarMode thumbnailBarMode ;
245260 switch (showThumbnailBar ) {
246261 case SHOW_THUMBNAIL_BAR_FLOATING :
@@ -365,24 +380,34 @@ private void configureDocumentInfoView(boolean enableDocumentInfoView) {
365380 }
366381 }
367382
368- private void configureThemeMode (String themeMode ) {
369- ThemeMode result = ThemeMode .DEFAULT ;
383+ private void configureThemeMode (@ NonNull String themeMode ) {
384+ requireNotNullNotEmpty (themeMode , "themeMode" );
385+
386+ ThemeMode result ;
370387 if (themeMode .equals (APPEARANCE_MODE_DEFAULT )) {
371388 result = ThemeMode .DEFAULT ;
372389 } else if (themeMode .equals (APPEARANCE_MODE_NIGHT )) {
373390 result = ThemeMode .NIGHT ;
391+ } else {
392+ throw new IllegalArgumentException ("Undefined theme mode for " + themeMode );
374393 }
375394 configuration .themeMode (result );
376395 }
377396
378- private void configureDarkThemeRes (String darkThemeResource , Context context ) {
397+ private void configureDarkThemeRes (@ NonNull String darkThemeResource , @ NonNull Context context ) {
398+ requireNotNullNotEmpty (darkThemeResource , "darkThemeResource" );
399+ checkNotNull (context );
400+
379401 @ StyleRes int darkThemeId = getStyleResourceId (darkThemeResource , context );
380402 if (darkThemeId != 0 ) {
381403 configuration .themeDark (darkThemeId );
382404 }
383405 }
384406
385- private void configureDefaultThemeRes (String defaultThemeResource , Context context ) {
407+ private void configureDefaultThemeRes (@ NonNull String defaultThemeResource , @ NonNull Context context ) {
408+ requireNotNullNotEmpty (defaultThemeResource , "defaultThemeResource" );
409+ checkNotNull (context );
410+
386411 @ StyleRes int defaultThemeId = getStyleResourceId (defaultThemeResource , context );
387412 if (defaultThemeId != 0 ) {
388413 configuration .theme (defaultThemeId );
@@ -397,15 +422,20 @@ private void configureShowNavigationButtons(boolean showNavigationButtons) {
397422 }
398423 }
399424
400- private static int getStyleResourceId (String styleName , Context context ) {
425+ private static int getStyleResourceId (@ NonNull String styleName , @ NonNull Context context ) {
426+ requireNotNullNotEmpty (styleName , "styleName" );
427+ checkNotNull (context );
428+
401429 int resourceId = context .getResources ().getIdentifier (styleName , "style" , context .getPackageName ());
402430 if (resourceId == 0 ) {
403431 Log .e (LOG_TAG , String .format ("Style resource not found for %s" , styleName ));
404432 }
405433 return resourceId ;
406434 }
407435
408- private <T > void configureSettingsMenuItems (ArrayList <T > settingsMenuItems ) {
436+ private <T > void configureSettingsMenuItems (@ NonNull ArrayList <T > settingsMenuItems ) {
437+ checkNotNull (settingsMenuItems );
438+
409439 EnumSet <SettingsMenuItemType > settingsMenuItemTypes = EnumSet .noneOf (SettingsMenuItemType .class );
410440 for (T settingsMenuItem : settingsMenuItems ) {
411441 if (!(settingsMenuItem instanceof String )) {
@@ -429,7 +459,9 @@ private <T> void configureSettingsMenuItems(ArrayList<T> settingsMenuItems) {
429459 configuration .setSettingsMenuItems (settingsMenuItemTypes );
430460 }
431461
432- private <T > boolean containsKeyOfType (HashMap <String , Object > configurationMap , String key , Class <T > clazz ) {
462+ private <T > boolean containsKeyOfType (@ NonNull HashMap <String , Object > configurationMap ,
463+ @ NonNull String key ,
464+ @ NonNull Class <T > clazz ) {
433465 if (configurationMap .get (key ) != null ) {
434466 checkCast (configurationMap .get (key ), clazz , key );
435467 return true ;
0 commit comments