package de.mprengemann.intellij.plugin.androidicons.controllers.defaults; import de.mprengemann.intellij.plugin.androidicons.controllers.settings.ISettingsController; import de.mprengemann.intellij.plugin.androidicons.images.ResizeAlgorithm; import de.mprengemann.intellij.plugin.androidicons.model.Format; import de.mprengemann.intellij.plugin.androidicons.model.ImageAsset; import de.mprengemann.intellij.plugin.androidicons.model.Resolution; import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class DefaultsController implements IDefaultsController { public static final HashSet<Resolution> DEFAULT_RESOLUTIONS = new HashSet<Resolution>(Arrays.asList(Resolution.MDPI, Resolution.HDPI, Resolution.XHDPI, Resolution.XXHDPI, Resolution.XXXHDPI)); public static final Resolution DEFAULT_SOURCE_RESOLUTION = Resolution.XHDPI; public static final ResizeAlgorithm DEFAULT_ALGORITHM = ResizeAlgorithm.SCALR; public static final String DEFAULT_METHOD = DEFAULT_ALGORITHM.getMethods().get(0); public static final Format DEFAULT_FORMAT = Format.PNG; private Set<Resolution> resolutions; private Resolution sourceResolution; private ImageAsset imageAsset; private ISettingsController settingsController; private ResizeAlgorithm algorithm; private String method; private Format format; private String size; private String color; public DefaultsController(ISettingsController settingsController) { this.settingsController = settingsController; } @Override public Set<Resolution> getResolutions() { return resolutions; } @Override public void setResolutions(Set<Resolution> resolutions) { this.resolutions = resolutions; settingsController.saveResolutions(this.resolutions); } @Override public ImageAsset getImageAsset() { return imageAsset; } @Override public void setImageAsset(ImageAsset imageAsset) { this.imageAsset = imageAsset; settingsController.saveImageAsset(this.imageAsset); } @Override public Resolution getSourceResolution() { return sourceResolution; } @Override public void setSourceResolution(Resolution sourceResolution) { this.sourceResolution = sourceResolution; settingsController.saveSourceResolution(this.sourceResolution); } @Override public String getSize() { return size; } @Override public void setSize(String size) { this.size = size; settingsController.saveSize(this.size); } @Override public String getColor() { return color; } @Override public void setColor(String color) { this.color = color; settingsController.saveColor(this.color); } @Override public ResizeAlgorithm getAlgorithm() { return algorithm; } @Override public void setAlgorithm(ResizeAlgorithm algorithm) { this.algorithm = algorithm; settingsController.saveAlgorithm(this.algorithm); } @Override public String getMethod() { return method; } @Override public void setMethod(String method) { this.method = method; settingsController.saveMethod(this.method); } @Override public Format getFormat() { return format; } @Override public void setFormat(Format format) { this.format = format; settingsController.saveFormat(this.format); } @Override public void restore() { imageAsset = settingsController.getImageAsset(); resolutions = settingsController.getResolutions(DEFAULT_RESOLUTIONS); sourceResolution = settingsController.getSourceResolution(DEFAULT_SOURCE_RESOLUTION); algorithm = settingsController.getAlgorithm(DEFAULT_ALGORITHM); format = settingsController.getFormat(DEFAULT_FORMAT); method = settingsController.getMethod(DEFAULT_METHOD); color = settingsController.getColor(); size = settingsController.getSize(); } @Override public void tearDown() { resolutions = null; imageAsset = null; sourceResolution = null; size = null; color = null; algorithm = null; method = null; settingsController = null; } }