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); } }