diff options
Diffstat (limited to 'src/proguard/gui')
57 files changed, 249 insertions, 157 deletions
diff --git a/src/proguard/gui/ClassPathPanel.java b/src/proguard/gui/ClassPathPanel.java index 8f41db6..1b61f0f 100644 --- a/src/proguard/gui/ClassPathPanel.java +++ b/src/proguard/gui/ClassPathPanel.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -26,7 +26,7 @@ import proguard.util.ListUtil; import javax.swing.*; import java.awt.*; import java.awt.event.*; -import java.io.*; +import java.io.File; import java.util.List; /** @@ -58,8 +58,8 @@ class ClassPathPanel extends ListPanel chooser.setMultiSelectionEnabled(true); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); chooser.addChoosableFileFilter( - new ExtensionFileFilter(msg("jarWarEarZipExtensions"), - new String[] { ".jar", ".war", ".ear", ".zip" })); + new ExtensionFileFilter(msg("jarExtensions"), + new String[] { ".apk", ".ap_", ".jar", ".aar", ".war", ".ear", ".zip" })); chooser.setApproveButtonText(msg("ok")); filterDialog = new FilterDialog(owner, msg("enterFilter")); @@ -267,7 +267,9 @@ class ClassPathPanel extends ListPanel ClassPathEntry firstEntry = (ClassPathEntry)listModel.get(index); filterDialog.setFilter(firstEntry.getFilter()); + filterDialog.setApkFilter(firstEntry.getApkFilter()); filterDialog.setJarFilter(firstEntry.getJarFilter()); + filterDialog.setAarFilter(firstEntry.getAarFilter()); filterDialog.setWarFilter(firstEntry.getWarFilter()); filterDialog.setEarFilter(firstEntry.getEarFilter()); filterDialog.setZipFilter(firstEntry.getZipFilter()); @@ -284,7 +286,9 @@ class ClassPathPanel extends ListPanel { ClassPathEntry entry = (ClassPathEntry)listModel.get(indices[index]); entry.setFilter(filterDialog.getFilter()); + entry.setApkFilter(filterDialog.getApkFilter()); entry.setJarFilter(filterDialog.getJarFilter()); + entry.setAarFilter(filterDialog.getAarFilter()); entry.setWarFilter(filterDialog.getWarFilter()); entry.setEarFilter(filterDialog.getEarFilter()); entry.setZipFilter(filterDialog.getZipFilter()); @@ -381,7 +385,9 @@ class ClassPathPanel extends ListPanel filter = appendFilter(filter, entry.getZipFilter()); filter = appendFilter(filter, entry.getEarFilter()); filter = appendFilter(filter, entry.getWarFilter()); + filter = appendFilter(filter, entry.getAarFilter()); filter = appendFilter(filter, entry.getJarFilter()); + filter = appendFilter(filter, entry.getApkFilter()); filter = appendFilter(filter, entry.getFilter()); if (filter != null) diff --git a/src/proguard/gui/ClassSpecificationDialog.java b/src/proguard/gui/ClassSpecificationDialog.java index 38a3146..f6686ec 100644 --- a/src/proguard/gui/ClassSpecificationDialog.java +++ b/src/proguard/gui/ClassSpecificationDialog.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -55,6 +55,8 @@ final class ClassSpecificationDialog extends JDialog private final JRadioButton keepClassMembersRadioButton = new JRadioButton(msg("keepClassMembers")); private final JRadioButton keepClassesWithMembersRadioButton = new JRadioButton(msg("keepClassesWithMembers")); + private final JCheckBox keepDescriptorClassesCheckBox = new JCheckBox(msg("keepDescriptorClasses")); + private final JCheckBox allowShrinkingCheckBox = new JCheckBox(msg("allowShrinking")); private final JCheckBox allowOptimizationCheckBox = new JCheckBox(msg("allowOptimization")); private final JCheckBox allowObfuscationCheckBox = new JCheckBox(msg("allowObfuscation")); @@ -176,6 +178,14 @@ final class ClassSpecificationDialog extends JDialog keepOptionPanel.add(tip(keepClassesAndMembersRadioButton, "keepTip"), constraintsLastStretch); keepOptionPanel.add(tip(keepClassMembersRadioButton, "keepClassMembersTip"), constraintsLastStretch); keepOptionPanel.add(tip(keepClassesWithMembersRadioButton, "keepClassesWithMembersTip"), constraintsLastStretch); + keepOptionPanel.add(tip(keepDescriptorClassesCheckBox, "keepDescriptorClassesTip"), constraintsLastStretch); + + // Create the also keep panel. + final JPanel alsoKeepOptionPanel = new JPanel(layout); + alsoKeepOptionPanel.setBorder(BorderFactory.createTitledBorder(etchedBorder, + msg("alsoKeepTitle"))); + + alsoKeepOptionPanel.add(tip(keepDescriptorClassesCheckBox, "keepDescriptorClassesTip"), constraintsLastStretch); // Create the allow option panel. final JPanel allowOptionPanel = new JPanel(layout); @@ -245,8 +255,9 @@ final class ClassSpecificationDialog extends JDialog { public void actionPerformed(ActionEvent e) { - boolean visible = !allowOptionPanel.isVisible(); + boolean visible = !alsoKeepOptionPanel.isVisible(); + alsoKeepOptionPanel .setVisible(visible); allowOptionPanel .setVisible(visible); annotationTypePanel .setVisible(visible); extendsAnnotationTypePanel.setVisible(visible); @@ -285,6 +296,7 @@ final class ClassSpecificationDialog extends JDialog if (fullKeepOptions) { mainPanel.add(tip(keepOptionPanel, "keepTitleTip"), panelConstraints); + mainPanel.add(tip(alsoKeepOptionPanel, "alsoKeepTitleTip"), panelConstraints); mainPanel.add(tip(allowOptionPanel, "allowTitleTip"), panelConstraints); } mainPanel.add(tip(accessPanel, "accessTip"), panelConstraints); @@ -352,11 +364,12 @@ final class ClassSpecificationDialog extends JDialog */ public void setKeepSpecification(KeepClassSpecification keepClassSpecification) { - boolean markClasses = keepClassSpecification.markClasses; - boolean markConditionally = keepClassSpecification.markConditionally; - boolean allowShrinking = keepClassSpecification.allowShrinking; - boolean allowOptimization = keepClassSpecification.allowOptimization; - boolean allowObfuscation = keepClassSpecification.allowObfuscation; + boolean markClasses = keepClassSpecification.markClasses; + boolean markConditionally = keepClassSpecification.markConditionally; + boolean markDescriptorClasses = keepClassSpecification.markDescriptorClasses; + boolean allowShrinking = keepClassSpecification.allowShrinking; + boolean allowOptimization = keepClassSpecification.allowOptimization; + boolean allowObfuscation = keepClassSpecification.allowObfuscation; // Figure out the proper keep radio button and set it. JRadioButton keepOptionRadioButton = @@ -366,10 +379,11 @@ final class ClassSpecificationDialog extends JDialog keepOptionRadioButton.setSelected(true); - // Set the allow radio buttons. - allowShrinkingCheckBox .setSelected(allowShrinking); - allowOptimizationCheckBox.setSelected(allowOptimization); - allowObfuscationCheckBox .setSelected(allowObfuscation); + // Set the other check boxes. + keepDescriptorClassesCheckBox.setSelected(markDescriptorClasses); + allowShrinkingCheckBox .setSelected(allowShrinking); + allowOptimizationCheckBox .setSelected(allowOptimization); + allowObfuscationCheckBox .setSelected(allowObfuscation); setClassSpecification(keepClassSpecification); } @@ -392,13 +406,13 @@ final class ClassSpecificationDialog extends JDialog commentsTextArea.setText(comments == null ? "" : comments); // Set the access radio buttons. - setClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_PUBLIC, publicRadioButtons); - setClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_FINAL, finalRadioButtons); - setClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_ABSTRACT, abstractRadioButtons); - setClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_INTERFACE, interfaceRadioButtons); - setClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_ANNOTATTION, annotationRadioButtons); - setClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_ENUM, enumRadioButtons); - setClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_SYNTHETIC, syntheticRadioButtons); + setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_PUBLIC, publicRadioButtons); + setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_FINAL, finalRadioButtons); + setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ABSTRACT, abstractRadioButtons); + setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_INTERFACE, interfaceRadioButtons); + setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ANNOTATTION, annotationRadioButtons); + setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ENUM, enumRadioButtons); + setClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_SYNTHETIC, syntheticRadioButtons); // Set the class and annotation text fields. annotationTypeTextField .setText(annotationType == null ? "" : ClassUtil.externalType(annotationType)); @@ -416,18 +430,20 @@ final class ClassSpecificationDialog extends JDialog */ public KeepClassSpecification getKeepSpecification() { - boolean markClasses = !keepClassMembersRadioButton .isSelected(); - boolean markConditionally = keepClassesWithMembersRadioButton.isSelected(); - boolean allowShrinking = allowShrinkingCheckBox .isSelected(); - boolean allowOptimization = allowOptimizationCheckBox .isSelected(); - boolean allowObfuscation = allowObfuscationCheckBox .isSelected(); + boolean markClasses = !keepClassMembersRadioButton .isSelected(); + boolean markConditionally = keepClassesWithMembersRadioButton.isSelected(); + boolean markDescriptorClasses = keepDescriptorClassesCheckBox .isSelected(); + boolean allowShrinking = allowShrinkingCheckBox .isSelected(); + boolean allowOptimization = allowOptimizationCheckBox .isSelected(); + boolean allowObfuscation = allowObfuscationCheckBox .isSelected(); return new KeepClassSpecification(markClasses, - markConditionally, - allowShrinking, - allowOptimization, - allowObfuscation, - getClassSpecification()); + markConditionally, + markDescriptorClasses, + allowShrinking, + allowOptimization, + allowObfuscation, + getClassSpecification()); } @@ -453,13 +469,13 @@ final class ClassSpecificationDialog extends JDialog extendsClassName.equals("") ? null : ClassUtil.internalClassName(extendsClassName)); // Also get the access radio button settings. - getClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_PUBLIC, publicRadioButtons); - getClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_FINAL, finalRadioButtons); - getClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_ABSTRACT, abstractRadioButtons); - getClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_INTERFACE, interfaceRadioButtons); - getClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_ANNOTATTION, annotationRadioButtons); - getClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_ENUM, enumRadioButtons); - getClassSpecificationRadioButtons(classSpecification, ClassConstants.INTERNAL_ACC_SYNTHETIC, syntheticRadioButtons); + getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_PUBLIC, publicRadioButtons); + getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_FINAL, finalRadioButtons); + getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ABSTRACT, abstractRadioButtons); + getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_INTERFACE, interfaceRadioButtons); + getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ANNOTATTION, annotationRadioButtons); + getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_ENUM, enumRadioButtons); + getClassSpecificationRadioButtons(classSpecification, ClassConstants.ACC_SYNTHETIC, syntheticRadioButtons); // Get the keep class member option lists. classSpecification.fieldSpecifications = memberSpecificationsPanel.getMemberSpecifications(true); diff --git a/src/proguard/gui/ClassSpecificationsPanel.java b/src/proguard/gui/ClassSpecificationsPanel.java index bc29247..f09fbe3 100644 --- a/src/proguard/gui/ClassSpecificationsPanel.java +++ b/src/proguard/gui/ClassSpecificationsPanel.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/ExtensionFileFilter.java b/src/proguard/gui/ExtensionFileFilter.java index ee09714..dbaae66 100644 --- a/src/proguard/gui/ExtensionFileFilter.java +++ b/src/proguard/gui/ExtensionFileFilter.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/FilterBuilder.java b/src/proguard/gui/FilterBuilder.java index c362cb6..cdf297c 100644 --- a/src/proguard/gui/FilterBuilder.java +++ b/src/proguard/gui/FilterBuilder.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/FilterDialog.java b/src/proguard/gui/FilterDialog.java index 88dbd8b..d96684e 100644 --- a/src/proguard/gui/FilterDialog.java +++ b/src/proguard/gui/FilterDialog.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -47,18 +47,23 @@ public class FilterDialog extends JDialog public static final int APPROVE_OPTION = 0; private static final String DEFAULT_FILTER = "**"; + private static final String DEFAULT_APK_FILTER = "**.apk"; private static final String DEFAULT_JAR_FILTER = "**.jar"; + private static final String DEFAULT_AAR_FILTER = "**.aar"; private static final String DEFAULT_WAR_FILTER = "**.war"; private static final String DEFAULT_EAR_FILTER = "**.ear"; private static final String DEFAULT_ZIP_FILTER = "**.zip"; private final JTextField filterTextField = new JTextField(40); + private final JTextField apkFilterTextField = new JTextField(40); private final JTextField jarFilterTextField = new JTextField(40); + private final JTextField aarFilterTextField = new JTextField(40); private final JTextField warFilterTextField = new JTextField(40); private final JTextField earFilterTextField = new JTextField(40); private final JTextField zipFilterTextField = new JTextField(40); - private int returnValue; + + private int returnValue; public FilterDialog(JFrame owner, @@ -120,7 +125,9 @@ public class FilterDialog extends JDialog // Create the filter labels. JLabel filterLabel = new JLabel(msg("nameFilter")); + JLabel apkFilterLabel = new JLabel(msg("apkNameFilter")); JLabel jarFilterLabel = new JLabel(msg("jarNameFilter")); + JLabel aarFilterLabel = new JLabel(msg("aarNameFilter")); JLabel warFilterLabel = new JLabel(msg("warNameFilter")); JLabel earFilterLabel = new JLabel(msg("earNameFilter")); JLabel zipFilterLabel = new JLabel(msg("zipNameFilter")); @@ -135,9 +142,15 @@ public class FilterDialog extends JDialog filterPanel.add(tip(filterLabel, "nameFilterTip"), labelConstraints); filterPanel.add(tip(filterTextField, "fileNameFilterTip"), textFieldConstraints); + filterPanel.add(tip(apkFilterLabel, "apkNameFilterTip"), labelConstraints); + filterPanel.add(tip(apkFilterTextField, "fileNameFilterTip"), textFieldConstraints); + filterPanel.add(tip(jarFilterLabel, "jarNameFilterTip"), labelConstraints); filterPanel.add(tip(jarFilterTextField, "fileNameFilterTip"), textFieldConstraints); + filterPanel.add(tip(aarFilterLabel, "aarNameFilterTip"), labelConstraints); + filterPanel.add(tip(aarFilterTextField, "fileNameFilterTip"), textFieldConstraints); + filterPanel.add(tip(warFilterLabel, "warNameFilterTip"), labelConstraints); filterPanel.add(tip(warFilterTextField, "fileNameFilterTip"), textFieldConstraints); @@ -198,6 +211,26 @@ public class FilterDialog extends JDialog /** + * Sets the apk filter to be represented in this dialog. + */ + public void setApkFilter(List filter) + { + apkFilterTextField.setText(filter != null ? ListUtil.commaSeparatedString(filter, true) : DEFAULT_APK_FILTER); + } + + + /** + * Returns the apk filter currently represented in this dialog. + */ + public List getApkFilter() + { + String filter = apkFilterTextField.getText(); + + return filter.equals(DEFAULT_APK_FILTER) ? null : ListUtil.commaSeparatedList(filter); + } + + + /** * Sets the jar filter to be represented in this dialog. */ public void setJarFilter(List filter) @@ -218,6 +251,26 @@ public class FilterDialog extends JDialog /** + * Sets the aar filter to be represented in this dialog. + */ + public void setAarFilter(List filter) + { + aarFilterTextField.setText(filter != null ? ListUtil.commaSeparatedString(filter, true) : DEFAULT_AAR_FILTER); + } + + + /** + * Returns the aar filter currently represented in this dialog. + */ + public List getAarFilter() + { + String filter = aarFilterTextField.getText(); + + return filter.equals(DEFAULT_AAR_FILTER) ? null : ListUtil.commaSeparatedList(filter); + } + + + /** * Sets the war filter to be represented in this dialog. */ public void setWarFilter(List filter) diff --git a/src/proguard/gui/GUIResources.java b/src/proguard/gui/GUIResources.java index 3d7c6c6..5d411ae 100644 --- a/src/proguard/gui/GUIResources.java +++ b/src/proguard/gui/GUIResources.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/GUIResources.properties b/src/proguard/gui/GUIResources.properties index b27075d..12b6f28 100644 --- a/src/proguard/gui/GUIResources.properties +++ b/src/proguard/gui/GUIResources.properties @@ -1,5 +1,5 @@ # ProGuard -- shrinking, optimization, and obfuscation of Java class files. -# Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) +# Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) # # Tab names. @@ -25,7 +25,7 @@ preverification = Preverification # # Panel titles. # -welcome = Welcome to ProGuard, version 4.10 +welcome = Welcome to ProGuard, version 5.1 options = Options keepAdditional = Keep additional classes and class members keepNamesAdditional = Keep additional class names and class member names @@ -70,7 +70,7 @@ proGuardInfo = \ <p>\ Distributed under the GNU General Public License.\ <br>\ - Copyright © 2002-2013.</html> + Copyright © 2002-2014.</html> processingInfo = \ You can now start processing your code, \ @@ -86,8 +86,8 @@ reTraceInfo = \ # # Titles and labels corresponding to common ProGuard options. # -programJars = Program jars, wars, ears, zips, and directories -libraryJars = Library jars, wars, ears, zips, and directories +programJars = Program jars, aars, wars, ears, zips, apks, and directories +libraryJars = Library jars, aars, wars, ears, zips, apks, and directories shrink = Shrink printUsage = Print usage @@ -129,7 +129,7 @@ skipNonPublicLibraryClassMembers = Skip non-public library class members keepDirectories = Keep directories forceProcessing = Force processing target = Target -targets = 1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7 +targets = 1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8 printSeeds = Print seeds printConfiguration = Print configuration dump = Print class files @@ -138,10 +138,10 @@ mappingFile = Mapping file obfuscatedStackTrace = Obfuscated stack trace programJarsTip = \ - <html>The input jars (wars, ears, zips, directories), followed by<br>\ - their corresponding output jars (wars, ears, zips, directories).</html> + <html>The input jars (aars, wars, ears, zips, apks, directories), followed by<br>\ + their corresponding output jars (wars, ears, zips, apks, directories).</html> libraryJarsTip = \ - <html>The library jars (wars, ears, zips, directories), on which the program jars depend.<br>\ + <html>The library jars (aars, wars, ears, zips, directories), on which the program jars depend.<br>\ The library jars are required for processing, but they are not copied to the output.</html> shrinkTip = \ @@ -270,7 +270,7 @@ skipNonPublicLibraryClassMembersTip = \ <html>Skip reading non-public library fields and methods, for efficiency.<br>\ You may have to unset this option if ProGuard complains about missing class members.</html> keepDirectoriesTip = \ - Keep the specified directories in the output jars, wars, ears, zips, or directories. + Keep the specified directories in the output jars, wars, ears, zips, apks, or directories. directoriesTip = \ <html>A filter on directory names,<br>\ e.g. <code>mydirectory1,mydirectory2/**</code><br>\ @@ -306,6 +306,10 @@ keep = Keep classes and class members keepClassMembers = Keep class members only keepClassesWithMembers = Keep classes and class members, if members are present +alsoKeepTitle = Also keep + +keepDescriptorClasses = Keep descriptor classes + allowTitle = Allow allowShrinking = Allow shrinking @@ -323,6 +327,14 @@ keepClassesWithMembersTip = \ <html>Keep the specified classes, fields, and methods,<br>\ on the condition that the fields and methods are present.</html> +alsoKeepTitleTip = \ + <html>Optionally keeping more classes.<br>\ + <i>These are advanced options.</i></html> + +keepDescriptorClassesTip = \ + <html>Automatically keep the classes in the descriptors of matching<br>\ + fields and methods. Mostly useful for keeping their names.</html> + allowTitleTip = \ <html>Optionally relax keeping the specified classes, fields, and methods.<br>\ <i>These are advanced options.</i></html> @@ -539,8 +551,8 @@ cantParseConfigurationFile = Can''t parse the configuration file [{0}] cantSaveConfigurationFile = Can''t save the configuration file [{0}] cantOpenStackTraceFile = Can''t open the stack trace file [{0}] -jarWarEarZipExtensions = *.jar, *.war, *.ear, *.zip (archives and directories) -proExtension = *.pro (ProGuard configurations) +jarExtensions = *.jar, *.aar, *.war, *.ear, *.zip, *.apk, *.ap_ (archives and directories) +proExtension = *.pro (ProGuard configurations) addJars = Add one or more jars or directories... chooseJars = Choose different jars or directories... @@ -548,7 +560,9 @@ enterFilter = Optionally filter the file names contained in the selected entries filters = Filters nameFilter = File name filter +apkNameFilter = Apk name filter jarNameFilter = Jar name filter +aarNameFilter = Aar name filter warNameFilter = War name filter earNameFilter = Ear name filter zipNameFilter = Zip name filter @@ -557,7 +571,9 @@ outputFileTip = The optional output file. inputFileTip = The input file. nameFilterTip = A filter on plain class file names and resource file names. +apkNameFilterTip = A filter on apk file names. jarNameFilterTip = A filter on jar file names. +aarNameFilterTip = A filter on aar file names. warNameFilterTip = A filter on war file names. earNameFilterTip = A filter on ear file names. zipNameFilterTip = A filter on zip file names. @@ -601,8 +617,8 @@ reTrace = ReTrace! advancedTip = Toggle between showing basic options and advanced options. -addInputTip = Add an input jar, war, ear, zip, or directory. -addOutputTip = Add an output jar, war, ear, zip, or directory. +addInputTip = Add an input jar, aar, war, ear, zip, apk, or directory. +addOutputTip = Add an output jar, aar, war, ear, zip, apk, or directory. addTip = Add an entry. editTip = Edit the selected entries. filterTip = Put filters on the contents of the selected entries. diff --git a/src/proguard/gui/KeepSpecificationsPanel.java b/src/proguard/gui/KeepSpecificationsPanel.java index 908f028..0678bc7 100644 --- a/src/proguard/gui/KeepSpecificationsPanel.java +++ b/src/proguard/gui/KeepSpecificationsPanel.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -34,6 +34,7 @@ final class KeepSpecificationsPanel extends ClassSpecificationsPanel { private final boolean markClasses; private final boolean markConditionally; + private final boolean markDescriptorClasses; private final boolean allowShrinking; private final boolean allowOptimization; private final boolean allowObfuscation; @@ -42,17 +43,19 @@ final class KeepSpecificationsPanel extends ClassSpecificationsPanel public KeepSpecificationsPanel(JFrame owner, boolean markClasses, boolean markConditionally, + boolean markDescriptorClasses, boolean allowShrinking, boolean allowOptimization, boolean allowObfuscation) { super(owner, true); - this.markClasses = markClasses; - this.markConditionally = markConditionally; - this.allowShrinking = allowShrinking; - this.allowOptimization = allowOptimization; - this.allowObfuscation = allowObfuscation; + this.markClasses = markClasses; + this.markConditionally = markConditionally; + this.markDescriptorClasses = markDescriptorClasses; + this.allowShrinking = allowShrinking; + this.allowOptimization = allowOptimization; + this.allowObfuscation = allowObfuscation; } @@ -61,10 +64,11 @@ final class KeepSpecificationsPanel extends ClassSpecificationsPanel protected ClassSpecification createClassSpecification() { return new KeepClassSpecification(markClasses, - markConditionally, - allowShrinking, - allowOptimization, - allowObfuscation); + markConditionally, + markDescriptorClasses, + allowShrinking, + allowOptimization, + allowObfuscation); } diff --git a/src/proguard/gui/ListPanel.java b/src/proguard/gui/ListPanel.java index 19a0c4d..d0293a2 100644 --- a/src/proguard/gui/ListPanel.java +++ b/src/proguard/gui/ListPanel.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -20,13 +20,12 @@ */ package proguard.gui; +import javax.swing.*; +import javax.swing.event.*; import java.awt.*; import java.awt.event.*; -import java.util.List; import java.util.*; - -import javax.swing.*; -import javax.swing.event.*; +import java.util.List; /** * This <code>Jpanel</code> allows the user to move and remove entries in a diff --git a/src/proguard/gui/MemberSpecificationDialog.java b/src/proguard/gui/MemberSpecificationDialog.java index 4bf72ca..9744e9e 100644 --- a/src/proguard/gui/MemberSpecificationDialog.java +++ b/src/proguard/gui/MemberSpecificationDialog.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -21,7 +21,7 @@ package proguard.gui; import proguard.MemberSpecification; -import proguard.classfile.ClassConstants; +import proguard.classfile.*; import proguard.classfile.util.ClassUtil; import proguard.util.ListUtil; @@ -333,20 +333,20 @@ final class MemberSpecificationDialog extends JDialog annotationTypeTextField.setText(annotationType == null ? "" : ClassUtil.externalType(annotationType)); // Set the access radio buttons. - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_PUBLIC, publicRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_PRIVATE, privateRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_PROTECTED, protectedRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_STATIC, staticRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_FINAL, finalRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_SYNTHETIC, syntheticRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_VOLATILE, volatileRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_TRANSIENT, transientRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_SYNCHRONIZED, synchronizedRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_NATIVE, nativeRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_ABSTRACT, abstractRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_STRICT, strictRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_BRIDGE, bridgeRadioButtons); - setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_VARARGS, varargsRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_PUBLIC, publicRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_PRIVATE, privateRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_PROTECTED, protectedRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_STATIC, staticRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_FINAL, finalRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_SYNTHETIC, syntheticRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_VOLATILE, volatileRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_TRANSIENT, transientRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_SYNCHRONIZED, synchronizedRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_NATIVE, nativeRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_ABSTRACT, abstractRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_STRICT, strictRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_BRIDGE, bridgeRadioButtons); + setMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_VARARGS, varargsRadioButtons); // Set the class name text fields. nameTextField.setText(name == null ? "*" : name); @@ -394,7 +394,7 @@ final class MemberSpecificationDialog extends JDialog { if (type.equals("")) { - type = ClassConstants.EXTERNAL_TYPE_VOID; + type = JavaConstants.TYPE_VOID; } type = @@ -407,20 +407,20 @@ final class MemberSpecificationDialog extends JDialog new MemberSpecification(0, 0, annotationType, name, type); // Also get the access radio button settings. - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_PUBLIC, publicRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_PRIVATE, privateRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_PROTECTED, protectedRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_STATIC, staticRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_FINAL, finalRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_SYNTHETIC, syntheticRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_VOLATILE, volatileRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_TRANSIENT, transientRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_SYNCHRONIZED, synchronizedRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_NATIVE, nativeRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_ABSTRACT, abstractRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_STRICT, strictRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_BRIDGE, bridgeRadioButtons); - getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.INTERNAL_ACC_VARARGS, varargsRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_PUBLIC, publicRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_PRIVATE, privateRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_PROTECTED, protectedRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_STATIC, staticRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_FINAL, finalRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_SYNTHETIC, syntheticRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_VOLATILE, volatileRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_TRANSIENT, transientRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_SYNCHRONIZED, synchronizedRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_NATIVE, nativeRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_ABSTRACT, abstractRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_STRICT, strictRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_BRIDGE, bridgeRadioButtons); + getMemberSpecificationRadioButtons(memberSpecification, ClassConstants.ACC_VARARGS, varargsRadioButtons); return memberSpecification; } diff --git a/src/proguard/gui/MemberSpecificationsPanel.java b/src/proguard/gui/MemberSpecificationsPanel.java index 6a72a1d..92feac6 100644 --- a/src/proguard/gui/MemberSpecificationsPanel.java +++ b/src/proguard/gui/MemberSpecificationsPanel.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -20,7 +20,7 @@ */ package proguard.gui; -import proguard.*; +import proguard.MemberSpecification; import proguard.classfile.ClassConstants; import proguard.classfile.util.ClassUtil; @@ -240,7 +240,7 @@ final class MemberSpecificationsPanel extends ListPanel (descriptor == null ? name == null ? "<methods>" : "***" + ' ' + name + "(...)" : - ClassUtil.externalFullMethodDescription(ClassConstants.INTERNAL_METHOD_NAME_INIT, + ClassUtil.externalFullMethodDescription(ClassConstants.METHOD_NAME_INIT, 0, name == null ? "*" : name, descriptor))); diff --git a/src/proguard/gui/MessageDialogRunnable.java b/src/proguard/gui/MessageDialogRunnable.java index 6c2152c..d1809c7 100644 --- a/src/proguard/gui/MessageDialogRunnable.java +++ b/src/proguard/gui/MessageDialogRunnable.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -22,7 +22,6 @@ package proguard.gui; import javax.swing.*; import java.awt.*; -import java.lang.reflect.InvocationTargetException; /** diff --git a/src/proguard/gui/OptimizationsDialog.java b/src/proguard/gui/OptimizationsDialog.java index 0af0979..c30797b 100644 --- a/src/proguard/gui/OptimizationsDialog.java +++ b/src/proguard/gui/OptimizationsDialog.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/ProGuardGUI.java b/src/proguard/gui/ProGuardGUI.java index 6b08aa8..4c2ef57 100644 --- a/src/proguard/gui/ProGuardGUI.java +++ b/src/proguard/gui/ProGuardGUI.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -70,13 +70,13 @@ public class ProGuardGUI extends JFrame private final JCheckBox[] boilerplateKeepCheckBoxes; private final JTextField[] boilerplateKeepTextFields; - private final KeepSpecificationsPanel additionalKeepPanel = new KeepSpecificationsPanel(this, true, false, false, false, false); + private final KeepSpecificationsPanel additionalKeepPanel = new KeepSpecificationsPanel(this, true, false, false, false, false, false); private KeepClassSpecification[] boilerplateKeepNames; private final JCheckBox[] boilerplateKeepNamesCheckBoxes; private final JTextField[] boilerplateKeepNamesTextFields; - private final KeepSpecificationsPanel additionalKeepNamesPanel = new KeepSpecificationsPanel(this, true, false, true, false, false); + private final KeepSpecificationsPanel additionalKeepNamesPanel = new KeepSpecificationsPanel(this, true, false, false, true, false, false); private ClassSpecification[] boilerplateNoSideEffectMethods; private final JCheckBox[] boilerplateNoSideEffectMethodCheckBoxes; diff --git a/src/proguard/gui/ProGuardRunnable.java b/src/proguard/gui/ProGuardRunnable.java index b341b7b..e03fb29 100644 --- a/src/proguard/gui/ProGuardRunnable.java +++ b/src/proguard/gui/ProGuardRunnable.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/ReTraceRunnable.java b/src/proguard/gui/ReTraceRunnable.java index 6f1b135..4e0f299 100644 --- a/src/proguard/gui/ReTraceRunnable.java +++ b/src/proguard/gui/ReTraceRunnable.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/SwingUtil.java b/src/proguard/gui/SwingUtil.java index 373fdc9..b7edf98 100644 --- a/src/proguard/gui/SwingUtil.java +++ b/src/proguard/gui/SwingUtil.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/TabbedPane.java b/src/proguard/gui/TabbedPane.java index c6b6678..07c1a63 100644 --- a/src/proguard/gui/TabbedPane.java +++ b/src/proguard/gui/TabbedPane.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/TextAreaOutputStream.java b/src/proguard/gui/TextAreaOutputStream.java index 84ba562..425574c 100644 --- a/src/proguard/gui/TextAreaOutputStream.java +++ b/src/proguard/gui/TextAreaOutputStream.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -22,7 +22,6 @@ package proguard.gui; import javax.swing.*; import java.io.*; -import java.lang.reflect.InvocationTargetException; /** diff --git a/src/proguard/gui/boilerplate.pro b/src/proguard/gui/boilerplate.pro index 711c07d..4b35ac1 100644 --- a/src/proguard/gui/boilerplate.pro +++ b/src/proguard/gui/boilerplate.pro @@ -79,7 +79,7 @@ } # Keep names - Native method names. Keep all native class/method names. --keepclasseswithmembernames class * { +-keepclasseswithmembernames,includedescriptorclasses class * { native <methods>; } diff --git a/src/proguard/gui/default.pro b/src/proguard/gui/default.pro index 752c9b2..8cd6b38 100644 --- a/src/proguard/gui/default.pro +++ b/src/proguard/gui/default.pro @@ -25,7 +25,7 @@ } # Keep names - Native method names. Keep all native class/method names. --keepclasseswithmembers,allowshrinking class * { +-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * { native <methods>; } diff --git a/src/proguard/gui/splash/BufferedSprite.java b/src/proguard/gui/splash/BufferedSprite.java index 5625acb..251088e 100644 --- a/src/proguard/gui/splash/BufferedSprite.java +++ b/src/proguard/gui/splash/BufferedSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/CircleSprite.java b/src/proguard/gui/splash/CircleSprite.java index 0443a0c..2ce1bfd 100644 --- a/src/proguard/gui/splash/CircleSprite.java +++ b/src/proguard/gui/splash/CircleSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ClipSprite.java b/src/proguard/gui/splash/ClipSprite.java index a8ac368..d286bcb 100644 --- a/src/proguard/gui/splash/ClipSprite.java +++ b/src/proguard/gui/splash/ClipSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ColorSprite.java b/src/proguard/gui/splash/ColorSprite.java index 95153a2..a5baaca 100644 --- a/src/proguard/gui/splash/ColorSprite.java +++ b/src/proguard/gui/splash/ColorSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/CompositeSprite.java b/src/proguard/gui/splash/CompositeSprite.java index 68cbe35..b5ad4c0 100644 --- a/src/proguard/gui/splash/CompositeSprite.java +++ b/src/proguard/gui/splash/CompositeSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ConstantColor.java b/src/proguard/gui/splash/ConstantColor.java index fa7f3a5..f3439d5 100644 --- a/src/proguard/gui/splash/ConstantColor.java +++ b/src/proguard/gui/splash/ConstantColor.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ConstantDouble.java b/src/proguard/gui/splash/ConstantDouble.java index c969332..45e7a08 100644 --- a/src/proguard/gui/splash/ConstantDouble.java +++ b/src/proguard/gui/splash/ConstantDouble.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ConstantFont.java b/src/proguard/gui/splash/ConstantFont.java index 26691b9..3efc4d2 100644 --- a/src/proguard/gui/splash/ConstantFont.java +++ b/src/proguard/gui/splash/ConstantFont.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ConstantInt.java b/src/proguard/gui/splash/ConstantInt.java index ff79dd0..d34be3d 100644 --- a/src/proguard/gui/splash/ConstantInt.java +++ b/src/proguard/gui/splash/ConstantInt.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ConstantString.java b/src/proguard/gui/splash/ConstantString.java index e76f1eb..534c474 100644 --- a/src/proguard/gui/splash/ConstantString.java +++ b/src/proguard/gui/splash/ConstantString.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ConstantTiming.java b/src/proguard/gui/splash/ConstantTiming.java index b6a7762..a32d7ad 100644 --- a/src/proguard/gui/splash/ConstantTiming.java +++ b/src/proguard/gui/splash/ConstantTiming.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/FontSprite.java b/src/proguard/gui/splash/FontSprite.java index 42f165d..3904432 100644 --- a/src/proguard/gui/splash/FontSprite.java +++ b/src/proguard/gui/splash/FontSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ImageSprite.java b/src/proguard/gui/splash/ImageSprite.java index f7704f9..2ef0be5 100644 --- a/src/proguard/gui/splash/ImageSprite.java +++ b/src/proguard/gui/splash/ImageSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/LinearColor.java b/src/proguard/gui/splash/LinearColor.java index 283a1c9..34e9b45 100644 --- a/src/proguard/gui/splash/LinearColor.java +++ b/src/proguard/gui/splash/LinearColor.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/LinearDouble.java b/src/proguard/gui/splash/LinearDouble.java index bf926b0..0536af3 100644 --- a/src/proguard/gui/splash/LinearDouble.java +++ b/src/proguard/gui/splash/LinearDouble.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/LinearInt.java b/src/proguard/gui/splash/LinearInt.java index 46c35bc..dcd2234 100644 --- a/src/proguard/gui/splash/LinearInt.java +++ b/src/proguard/gui/splash/LinearInt.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/LinearTiming.java b/src/proguard/gui/splash/LinearTiming.java index c35348e..9c00b0d 100644 --- a/src/proguard/gui/splash/LinearTiming.java +++ b/src/proguard/gui/splash/LinearTiming.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/OverrideGraphics2D.java b/src/proguard/gui/splash/OverrideGraphics2D.java index 81a9429..1306d9a 100644 --- a/src/proguard/gui/splash/OverrideGraphics2D.java +++ b/src/proguard/gui/splash/OverrideGraphics2D.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/RectangleSprite.java b/src/proguard/gui/splash/RectangleSprite.java index 547b549..d65abc3 100644 --- a/src/proguard/gui/splash/RectangleSprite.java +++ b/src/proguard/gui/splash/RectangleSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/SawToothTiming.java b/src/proguard/gui/splash/SawToothTiming.java index 393f27e..9158e12 100644 --- a/src/proguard/gui/splash/SawToothTiming.java +++ b/src/proguard/gui/splash/SawToothTiming.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/ShadowedSprite.java b/src/proguard/gui/splash/ShadowedSprite.java index fadca5f..9a136bc 100644 --- a/src/proguard/gui/splash/ShadowedSprite.java +++ b/src/proguard/gui/splash/ShadowedSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/SineTiming.java b/src/proguard/gui/splash/SineTiming.java index ab3d0c1..bfa7388 100644 --- a/src/proguard/gui/splash/SineTiming.java +++ b/src/proguard/gui/splash/SineTiming.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/SmoothTiming.java b/src/proguard/gui/splash/SmoothTiming.java index a691d3c..73fea38 100644 --- a/src/proguard/gui/splash/SmoothTiming.java +++ b/src/proguard/gui/splash/SmoothTiming.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/SplashPanel.java b/src/proguard/gui/splash/SplashPanel.java index af959e9..94596e6 100644 --- a/src/proguard/gui/splash/SplashPanel.java +++ b/src/proguard/gui/splash/SplashPanel.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/Sprite.java b/src/proguard/gui/splash/Sprite.java index f1f6e72..7f225e3 100644 --- a/src/proguard/gui/splash/Sprite.java +++ b/src/proguard/gui/splash/Sprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/TextSprite.java b/src/proguard/gui/splash/TextSprite.java index 69bd4c7..5225b90 100644 --- a/src/proguard/gui/splash/TextSprite.java +++ b/src/proguard/gui/splash/TextSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/TimeSwitchSprite.java b/src/proguard/gui/splash/TimeSwitchSprite.java index dd292ad..ffafcd3 100644 --- a/src/proguard/gui/splash/TimeSwitchSprite.java +++ b/src/proguard/gui/splash/TimeSwitchSprite.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/Timing.java b/src/proguard/gui/splash/Timing.java index bb15900..9d01c1d 100644 --- a/src/proguard/gui/splash/Timing.java +++ b/src/proguard/gui/splash/Timing.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/TypeWriterString.java b/src/proguard/gui/splash/TypeWriterString.java index d304dca..83b4bd0 100644 --- a/src/proguard/gui/splash/TypeWriterString.java +++ b/src/proguard/gui/splash/TypeWriterString.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/VariableColor.java b/src/proguard/gui/splash/VariableColor.java index ce573aa..eabcc71 100644 --- a/src/proguard/gui/splash/VariableColor.java +++ b/src/proguard/gui/splash/VariableColor.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/VariableDouble.java b/src/proguard/gui/splash/VariableDouble.java index 7317403..120d7f5 100644 --- a/src/proguard/gui/splash/VariableDouble.java +++ b/src/proguard/gui/splash/VariableDouble.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/VariableFont.java b/src/proguard/gui/splash/VariableFont.java index 0668c38..7ca9462 100644 --- a/src/proguard/gui/splash/VariableFont.java +++ b/src/proguard/gui/splash/VariableFont.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/VariableInt.java b/src/proguard/gui/splash/VariableInt.java index b4523ef..e12a319 100644 --- a/src/proguard/gui/splash/VariableInt.java +++ b/src/proguard/gui/splash/VariableInt.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/VariableSizeFont.java b/src/proguard/gui/splash/VariableSizeFont.java index 52b8ab2..4c1ff0f 100644 --- a/src/proguard/gui/splash/VariableSizeFont.java +++ b/src/proguard/gui/splash/VariableSizeFont.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free diff --git a/src/proguard/gui/splash/VariableString.java b/src/proguard/gui/splash/VariableString.java index 81ca8f6..2622889 100644 --- a/src/proguard/gui/splash/VariableString.java +++ b/src/proguard/gui/splash/VariableString.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free |