@@ -46,7 +46,8 @@ class ConfigurationAdapter {
4646 private static final String ANDROID_SHOW_SEARCH_ACTION = "showSearchAction" ;
4747 private static final String INLINE_SEARCH = "inlineSearch" ;
4848 private static final String SHOW_THUMBNAIL_BAR = "showThumbnailBar" ;
49- private static final String SHOW_THUMBNAIL_BAR_DEFAULT = "default" ;
49+ private static final String SHOW_THUMBNAIL_BAR_FLOATING = "floating" ;
50+ private static final String SHOW_THUMBNAIL_BAR_PINNED = "pinned" ;
5051 private static final String SHOW_THUMBNAIL_BAR_SCROLLABLE = "scrollable" ;
5152 private static final String SHOW_THUMBNAIL_BAR_NONE = "none" ;
5253 private static final String ANDROID_SHOW_THUMBNAIL_GRID_ACTION = "showThumbnailGridAction" ;
@@ -78,7 +79,6 @@ class ConfigurationAdapter {
7879 private final PdfActivityConfiguration .Builder configuration ;
7980 @ Nullable private String password = null ;
8081
81- @ SuppressWarnings ("ConstantConditions" )
8282 ConfigurationAdapter (@ NonNull Context context ,
8383 @ Nullable HashMap <String , Object > configurationMap ) {
8484 this .configuration = new PdfActivityConfiguration .Builder (context );
@@ -168,7 +168,7 @@ class ConfigurationAdapter {
168168 configureDefaultThemeRes ((String ) configurationMap .get (ANDROID_DEFAULT_THEME_RESOURCE ), context );
169169 }
170170 if (containsKeyOfType (configurationMap , SETTINGS_MENU_ITEMS , ArrayList .class )) {
171- configureSettingsMenuItems ((ArrayList <String >) configurationMap .get (SETTINGS_MENU_ITEMS ));
171+ configureSettingsMenuItems ((ArrayList <? >) configurationMap .get (SETTINGS_MENU_ITEMS ));
172172 }
173173 if (containsKeyOfType (configurationMap , SHOW_ACTION_NAVIGATION_BUTTONS , Boolean .class )) {
174174 configureShowNavigationButtons ((Boolean ) configurationMap .get (SHOW_ACTION_NAVIGATION_BUTTONS ));
@@ -241,13 +241,22 @@ private void configureImmersiveMode(boolean immersiveMode) {
241241 }
242242
243243 private void configureShowThumbnailBar (String showThumbnailBar ) {
244- ThumbnailBarMode thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_DEFAULT ;
245- if (showThumbnailBar .equals (SHOW_THUMBNAIL_BAR_DEFAULT )) {
246- thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_DEFAULT ;
247- } else if (showThumbnailBar .equals (SHOW_THUMBNAIL_BAR_SCROLLABLE )) {
248- thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_SCROLLABLE ;
249- } else if (showThumbnailBar .equals (SHOW_THUMBNAIL_BAR_NONE )) {
250- thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_NONE ;
244+ ThumbnailBarMode thumbnailBarMode ;
245+ switch (showThumbnailBar ) {
246+ case SHOW_THUMBNAIL_BAR_FLOATING :
247+ thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_FLOATING ;
248+ break ;
249+ case SHOW_THUMBNAIL_BAR_PINNED :
250+ thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_PINNED ;
251+ break ;
252+ case SHOW_THUMBNAIL_BAR_SCROLLABLE :
253+ thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_SCROLLABLE ;
254+ break ;
255+ case SHOW_THUMBNAIL_BAR_NONE :
256+ thumbnailBarMode = ThumbnailBarMode .THUMBNAIL_BAR_MODE_NONE ;
257+ break ;
258+ default :
259+ throw new IllegalArgumentException ("Undefined thumbnail bar mode for " + showThumbnailBar );
251260 }
252261 configuration .setThumbnailBarMode (thumbnailBarMode );
253262 }
@@ -396,9 +405,13 @@ private static int getStyleResourceId(String styleName, Context context) {
396405 return resourceId ;
397406 }
398407
399- private void configureSettingsMenuItems (ArrayList <String > settingsMenuItems ) {
408+ private < T > void configureSettingsMenuItems (ArrayList <T > settingsMenuItems ) {
400409 EnumSet <SettingsMenuItemType > settingsMenuItemTypes = EnumSet .noneOf (SettingsMenuItemType .class );
401- for (String menuType : settingsMenuItems ) {
410+ for (T settingsMenuItem : settingsMenuItems ) {
411+ if (!(settingsMenuItem instanceof String )) {
412+ throw new IllegalArgumentException ("Provided settingMenuItem " + settingsMenuItem + " must be a String." );
413+ }
414+ String menuType = (String ) settingsMenuItem ;
402415 if (menuType .equalsIgnoreCase ("theme" )) {
403416 settingsMenuItemTypes .add (SettingsMenuItemType .THEME );
404417 } else if (menuType .equalsIgnoreCase ("screenAwake" )) {
0 commit comments