diff options
Diffstat (limited to 'assetstudio')
25 files changed, 73 insertions, 26 deletions
diff --git a/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java b/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java index dea6eeb..1c9fb29 100644 --- a/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java +++ b/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java @@ -47,8 +47,12 @@ public abstract class GraphicGenerator { * Options used for all generators. */ public static class Options { + /** Minimum version (API level) of the SDK to generate icons for */ + public int minSdk = 1; + /** Source image to use as a basis for the icon */ public BufferedImage sourceImage; + /** The density to generate the icon with */ public Density density = Density.XHIGH; } diff --git a/assetstudio/src/com/android/assetstudiolib/NotificationIconGenerator.java b/assetstudio/src/com/android/assetstudiolib/NotificationIconGenerator.java index 1237a89..4bda2bf 100644 --- a/assetstudio/src/com/android/assetstudiolib/NotificationIconGenerator.java +++ b/assetstudio/src/com/android/assetstudiolib/NotificationIconGenerator.java @@ -75,8 +75,7 @@ public class NotificationIconGenerator extends GraphicGenerator { } else if (notificationOptions.version == Version.V11) { Util.drawCenterInside(g2, options.sourceImage, targetRect); Util.drawEffects(g, tempImage, 0, 0, new Effect[] { - new FillEffect( - Color.WHITE), + new FillEffect(Color.WHITE), }); } else { assert notificationOptions.version == Version.V9; @@ -106,20 +105,28 @@ public class NotificationIconGenerator extends GraphicGenerator { @Override public void generate(String category, Map<String, Map<String, BufferedImage>> categoryMap, - GraphicGeneratorContext context, Options options, String name) { - for (Version version : Version.values()) { - ((NotificationOptions) options).version = version; - super.generate(version.getDisplayName(), categoryMap, context, options, name); + GraphicGeneratorContext context, Options baseOptions, String name) { + NotificationOptions options = (NotificationOptions) baseOptions; + if (options.minSdk < 9) { + options.version = Version.OLDER; + super.generate(options.version.getDisplayName(), categoryMap, context, options, name); + } + if (options.minSdk < 11) { + options.version = Version.V9; + super.generate(options.version.getDisplayName(), categoryMap, context, options, name); } + options.version = Version.V11; + super.generate(options.minSdk < 11 ? options.version.getDisplayName() : null, + categoryMap, context, options, name); } @Override protected String getIconFolder(Options options) { String folder = super.getIconFolder(options); Version version = ((NotificationOptions) options).version; - if (version == Version.V11) { + if (version == Version.V11 && options.minSdk < 11) { return folder + "-v11"; //$NON-NLS-1$ - } else if (version == Version.V9) { + } else if (version == Version.V9 && options.minSdk < 9) { return folder + "-v9"; //$NON-NLS-1$ } else { return folder; diff --git a/assetstudio/src/com/android/assetstudiolib/TabIconGenerator.java b/assetstudio/src/com/android/assetstudiolib/TabIconGenerator.java index 506aebd..5d8b500 100644 --- a/assetstudio/src/com/android/assetstudiolib/TabIconGenerator.java +++ b/assetstudio/src/com/android/assetstudiolib/TabIconGenerator.java @@ -141,19 +141,33 @@ public class TabIconGenerator extends GraphicGenerator { @Override public void generate(String category, Map<String, Map<String, BufferedImage>> categoryMap, - GraphicGeneratorContext context, Options options, String name) { - TabOptions tabOptions = (TabOptions) options; + GraphicGeneratorContext context, Options baseOptions, String name) { + TabOptions options = (TabOptions) baseOptions; // Generate all permutations of tabOptions.selected and tabOptions.oldStyle - tabOptions.selected = true; - tabOptions.oldStyle = false; - super.generate("Selected (v5+)", categoryMap, context, options, name); - tabOptions.oldStyle = true; - super.generate("Selected", categoryMap, context, options, name); - tabOptions.selected = false; - tabOptions.oldStyle = false; - super.generate("Unselected (v5+)", categoryMap, context, options, name); - tabOptions.oldStyle = true; - super.generate("Unselected", categoryMap, context, options, name); + options.selected = true; + options.oldStyle = false; + + String selectedLabelV5 = "Selected (v5+)"; + String unselectedLabelV5 = "Unselected (v5+)"; + String selectedLabel = "Selected"; + String unselectedLabel = "Unselected"; + + boolean generateOldStyle = options.minSdk < 5; + if (generateOldStyle) { + options.oldStyle = true; + options.selected = true; + super.generate(selectedLabel, categoryMap, context, options, name); + options.selected = false; + super.generate(unselectedLabel, categoryMap, context, options, name); + } + + options.oldStyle = false; + options.selected = true; + super.generate(generateOldStyle ? unselectedLabelV5 : unselectedLabel, + categoryMap, context, options, name); + options.selected = false; + super.generate(generateOldStyle ? selectedLabelV5 : selectedLabel, + categoryMap, context, options, name); } @Override @@ -161,7 +175,7 @@ public class TabIconGenerator extends GraphicGenerator { String folder = super.getIconFolder(options); TabOptions tabOptions = (TabOptions) options; - if (tabOptions.oldStyle) { + if (tabOptions.oldStyle || options.minSdk >= 5) { return folder; } else { return folder + "-v5"; //$NON-NLS-1$ diff --git a/assetstudio/tests/src/com/android/assetstudiolib/NotificationIconGeneratorTest.java b/assetstudio/tests/src/com/android/assetstudiolib/NotificationIconGeneratorTest.java index 7ac5634..d65498a 100644 --- a/assetstudio/tests/src/com/android/assetstudiolib/NotificationIconGeneratorTest.java +++ b/assetstudio/tests/src/com/android/assetstudiolib/NotificationIconGeneratorTest.java @@ -23,12 +23,18 @@ import java.io.IOException; @SuppressWarnings("javadoc") public class NotificationIconGeneratorTest extends GeneratorTest { private void checkGraphic(String baseName, - GraphicGenerator.Shape shape) throws IOException { + GraphicGenerator.Shape shape, int minSdk, String folderName, + int expectedCount) throws IOException { NotificationOptions options = new NotificationOptions(); options.shape = shape; + options.minSdk = minSdk; NotificationIconGenerator generator = new NotificationIconGenerator(); - checkGraphic(12, "notification", baseName, generator, options); + checkGraphic(expectedCount, folderName, baseName, generator, options); + } + + private void checkGraphic(String baseName, GraphicGenerator.Shape shape) throws IOException { + checkGraphic(baseName, shape, 1, "notification", 12); } public void testNotification1() throws Exception { @@ -38,4 +44,13 @@ public class NotificationIconGeneratorTest extends GeneratorTest { public void testNotification2() throws Exception { checkGraphic("ic_stat_square", GraphicGenerator.Shape.SQUARE); } + + public void testNotification3() throws Exception { + checkGraphic("ic_stat_circle", GraphicGenerator.Shape.CIRCLE, 9 /* minSdk*/, + "notification-v9+", 8 /*fileCount*/); + } + + public void testNotification4() throws Exception { + checkGraphic("ic_stat_circle", GraphicGenerator.Shape.CIRCLE, 11, "notification-v11+", 4); + } } diff --git a/assetstudio/tests/src/com/android/assetstudiolib/TabIconGeneratorTest.java b/assetstudio/tests/src/com/android/assetstudiolib/TabIconGeneratorTest.java index 4fb4801..4231f54 100644 --- a/assetstudio/tests/src/com/android/assetstudiolib/TabIconGeneratorTest.java +++ b/assetstudio/tests/src/com/android/assetstudiolib/TabIconGeneratorTest.java @@ -20,12 +20,19 @@ import java.io.IOException; @SuppressWarnings("javadoc") public class TabIconGeneratorTest extends GeneratorTest { - private void checkGraphic(String baseName) throws IOException { + private void checkGraphic(String folderName, String baseName, int minSdk, + int expectedFileCount) throws IOException { TabIconGenerator generator = new TabIconGenerator(); - checkGraphic(16, "tabs", baseName, generator, new TabIconGenerator.TabOptions()); + TabIconGenerator.TabOptions options = new TabIconGenerator.TabOptions(); + options.minSdk = minSdk; + checkGraphic(expectedFileCount, folderName, baseName, generator, options); } public void testTabs1() throws Exception { - checkGraphic("ic_tab_1"); + checkGraphic("tabs", "ic_tab_1", 1 /* minSdk */, 16 /* expectedFileCount */); + } + + public void testTabs2() throws Exception { + checkGraphic("tabs-v5+", "ic_tab_1", 5, 8); } } diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-hdpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-hdpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..daad503 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-hdpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-ldpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-ldpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..228ab60 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-ldpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-mdpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-mdpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..7749b11 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-mdpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-xhdpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-xhdpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..3dbfa96 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v11+/res/drawable-xhdpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-hdpi-v11/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-hdpi-v11/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..daad503 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-hdpi-v11/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-hdpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-hdpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..bdd8598 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-hdpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-ldpi-v11/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-ldpi-v11/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..228ab60 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-ldpi-v11/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-ldpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-ldpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..ea4b105 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-ldpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-mdpi-v11/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-mdpi-v11/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..7749b11 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-mdpi-v11/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-mdpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-mdpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..1956c8e --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-mdpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-xhdpi-v11/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-xhdpi-v11/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..3dbfa96 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-xhdpi-v11/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-xhdpi/ic_stat_circle.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-xhdpi/ic_stat_circle.png Binary files differnew file mode 100644 index 0000000..8d52ab7 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/notification-v9+/res/drawable-xhdpi/ic_stat_circle.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-hdpi/ic_tab_1_selected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-hdpi/ic_tab_1_selected.png Binary files differnew file mode 100644 index 0000000..e8e7e71 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-hdpi/ic_tab_1_selected.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-hdpi/ic_tab_1_unselected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-hdpi/ic_tab_1_unselected.png Binary files differnew file mode 100644 index 0000000..8d1ea96 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-hdpi/ic_tab_1_unselected.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-ldpi/ic_tab_1_selected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-ldpi/ic_tab_1_selected.png Binary files differnew file mode 100644 index 0000000..0550dd2 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-ldpi/ic_tab_1_selected.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-ldpi/ic_tab_1_unselected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-ldpi/ic_tab_1_unselected.png Binary files differnew file mode 100644 index 0000000..82f4412 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-ldpi/ic_tab_1_unselected.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-mdpi/ic_tab_1_selected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-mdpi/ic_tab_1_selected.png Binary files differnew file mode 100644 index 0000000..646490f --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-mdpi/ic_tab_1_selected.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-mdpi/ic_tab_1_unselected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-mdpi/ic_tab_1_unselected.png Binary files differnew file mode 100644 index 0000000..c11de02 --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-mdpi/ic_tab_1_unselected.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-xhdpi/ic_tab_1_selected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-xhdpi/ic_tab_1_selected.png Binary files differnew file mode 100644 index 0000000..448454b --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-xhdpi/ic_tab_1_selected.png diff --git a/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-xhdpi/ic_tab_1_unselected.png b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-xhdpi/ic_tab_1_unselected.png Binary files differnew file mode 100644 index 0000000..52852ee --- /dev/null +++ b/assetstudio/tests/src/com/android/assetstudiolib/testdata/tabs-v5+/res/drawable-xhdpi/ic_tab_1_unselected.png |