void add(@NonNull RenderPreview preview) {
   Configuration configuration = preview.getConfiguration();
   ConfigurationDescription description =
       ConfigurationDescription.fromConfiguration(mProject, configuration);
   // RenderPreviews can have display names that aren't reflected in the configuration
   description.displayName = preview.getDisplayName();
   mList.add(description);
   preview.setDescription(description);
 }
  /**
   * Create a list of previews for the given canvas that matches the internal configuration preview
   * list
   *
   * @param canvas the associated canvas
   * @return a new list of previews linked to the given canvas
   */
  @NonNull
  List<RenderPreview> createPreviews(LayoutCanvas canvas) {
    if (mList.isEmpty()) {
      return new ArrayList<RenderPreview>();
    }
    List<RenderPreview> previews = Lists.newArrayList();
    RenderPreviewManager manager = canvas.getPreviewManager();
    ConfigurationChooser chooser =
        canvas.getEditorDelegate().getGraphicalEditor().getConfigurationChooser();

    Configuration chooserConfig = chooser.getConfiguration();
    for (ConfigurationDescription description : mList) {
      Configuration configuration = Configuration.create(chooser);
      configuration.setDisplayName(description.displayName);
      configuration.setActivity(description.activity);
      configuration.setLocale(
          description.locale != null ? description.locale : chooserConfig.getLocale(), true);
      // TODO: Make sure this layout isn't in some v-folder which is incompatible
      // with this target!
      configuration.setTarget(
          description.target != null ? description.target : chooserConfig.getTarget(), true);
      configuration.setTheme(
          description.theme != null ? description.theme : chooserConfig.getTheme());
      configuration.setDevice(
          description.device != null ? description.device : chooserConfig.getDevice(), true);
      configuration.setDeviceState(
          description.state != null ? description.state : chooserConfig.getDeviceState(), true);
      configuration.setNightMode(
          description.nightMode != null ? description.nightMode : chooserConfig.getNightMode(),
          true);
      configuration.setUiMode(
          description.uiMode != null ? description.uiMode : chooserConfig.getUiMode(), true);

      // configuration.syncFolderConfig();
      configuration.getFullConfig().set(description.folder);

      RenderPreview preview = RenderPreview.create(manager, configuration);

      preview.setDescription(description);
      previews.add(preview);
    }

    return previews;
  }
 void remove(@NonNull RenderPreview preview) {
   ConfigurationDescription description = preview.getDescription();
   if (description != null) {
     mList.remove(description);
   }
 }