private void showDrawerPreferencesDialog() {
   final Context context = ui.getActivity();
   final List<String> hiddenDrawerItems = UserPreferences.getHiddenDrawerItems();
   final String[] navTitles = context.getResources().getStringArray(R.array.nav_drawer_titles);
   final String[] NAV_DRAWER_TAGS = MainActivity.NAV_DRAWER_TAGS;
   boolean[] checked = new boolean[MainActivity.NAV_DRAWER_TAGS.length];
   for (int i = 0; i < NAV_DRAWER_TAGS.length; i++) {
     String tag = NAV_DRAWER_TAGS[i];
     if (!hiddenDrawerItems.contains(tag)) {
       checked[i] = true;
     }
   }
   AlertDialog.Builder builder = new AlertDialog.Builder(context);
   builder.setTitle(R.string.drawer_preferences);
   builder.setMultiChoiceItems(
       navTitles,
       checked,
       (dialog, which, isChecked) -> {
         if (isChecked) {
           hiddenDrawerItems.remove(NAV_DRAWER_TAGS[which]);
         } else {
           hiddenDrawerItems.add(NAV_DRAWER_TAGS[which]);
         }
       });
   builder.setPositiveButton(
       R.string.confirm_label,
       (dialog, which) -> {
         UserPreferences.setHiddenDrawerItems(hiddenDrawerItems);
       });
   builder.setNegativeButton(R.string.cancel_label, null);
   builder.create().show();
 }