diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt')
12 files changed, 49 insertions, 24 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java index 6e5b287..17726d0 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/layout/BaseViewRule.java @@ -28,8 +28,10 @@ import static com.android.ide.common.layout.LayoutConstants.ATTR_TEXT; import static com.android.ide.common.layout.LayoutConstants.DOT_LAYOUT_PARAMS; import static com.android.ide.common.layout.LayoutConstants.ID_PREFIX; import static com.android.ide.common.layout.LayoutConstants.NEW_ID_PREFIX; +import static com.android.ide.common.layout.LayoutConstants.VALUE_FALSE; import static com.android.ide.common.layout.LayoutConstants.VALUE_FILL_PARENT; import static com.android.ide.common.layout.LayoutConstants.VALUE_MATCH_PARENT; +import static com.android.ide.common.layout.LayoutConstants.VALUE_TRUE; import static com.android.ide.common.layout.LayoutConstants.VALUE_WRAP_CONTENT; import static com.android.ide.eclipse.adt.internal.editors.layout.descriptors.LayoutDescriptors.VIEW_FRAGMENT; @@ -59,6 +61,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -644,11 +647,12 @@ public class BaseViewRule extends AbstractViewRule { // Toggles are handled as a multiple-choice between true, false // and nothing (clear) String value = selectedNode.getStringAttr(ANDROID_URI, id); - if (value != null) - value = value.toLowerCase(); - if ("true".equals(value)) { //$NON-NLS-1$ + if (value != null) { + value = value.toLowerCase(Locale.US); + } + if (VALUE_TRUE.equals(value)) { value = TRUE_ID; - } else if ("false".equals(value)) { //$NON-NLS-1$ + } else if (VALUE_FALSE.equals(value)) { value = FALSE_ID; } else { value = CLEAR_ID; diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/AttrsXmlParser.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/AttrsXmlParser.java index ed2fb75..abe56d8 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/AttrsXmlParser.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/common/resources/platform/AttrsXmlParser.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.TreeSet; @@ -475,7 +476,7 @@ public final class AttrsXmlParser { if (attrFormat != null) { for (String f : attrFormat.getNodeValue().split("\\|")) { //$NON-NLS-1$ try { - Format format = AttributeInfo.Format.valueOf(f.toUpperCase()); + Format format = AttributeInfo.Format.valueOf(f.toUpperCase(Locale.US)); // enum and flags are handled differently right below if (format != null && format != AttributeInfo.Format.ENUM && diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtils.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtils.java index 4693a1e..30c7687 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtils.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/descriptors/DescriptorsUtils.java @@ -52,6 +52,7 @@ import org.eclipse.swt.graphics.Image; import java.util.ArrayList; import java.util.HashSet; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -182,7 +183,7 @@ public final class DescriptorsUtils { Format f = formats_list[i]; formats_set.add(f); - sb.append(f.toString().toLowerCase()); + sb.append(f.toString().toLowerCase(Locale.US)); if (i < flen - 1) { sb.append(", "); //$NON-NLS-1$ } @@ -862,10 +863,13 @@ public final class DescriptorsUtils { prefix = Character.toLowerCase(prefix.charAt(0)) + prefix.substring(1); } + // Note that we perform locale-independent lowercase checks; in "Image" we + // want the lowercase version to be "image", not "?mage" where ? is + // the char LATIN SMALL LETTER DOTLESS I. do { num++; generated = String.format("%1$s%2$d", prefix, num); //$NON-NLS-1$ - } while (map.contains(generated.toLowerCase())); + } while (map.contains(generated.toLowerCase(Locale.US))); params[0] = prefix; params[1] = num; @@ -876,12 +880,13 @@ public final class DescriptorsUtils { if (id != null) { id = id.replace(NEW_ID_PREFIX, ""); //$NON-NLS-1$ id = id.replace(ID_PREFIX, ""); //$NON-NLS-1$ - if (map.add(id.toLowerCase()) && map.contains(generated.toLowerCase())) { + if (map.add(id.toLowerCase(Locale.US)) + && map.contains(generated.toLowerCase(Locale.US))) { do { num++; generated = String.format("%1$s%2$d", prefix, num); //$NON-NLS-1$ - } while (map.contains(generated.toLowerCase())); + } while (map.contains(generated.toLowerCase(Locale.US))); params[1] = num; params[2] = generated; diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/DomUtilities.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/DomUtilities.java index 0d0644f..8725fa4 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/DomUtilities.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/DomUtilities.java @@ -49,6 +49,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import javax.xml.parsers.DocumentBuilder; @@ -467,11 +468,12 @@ public class DomUtilities { if (root.hasAttributeNS(ANDROID_URI, ATTR_ID)) { String id = root.getAttributeNS(ANDROID_URI, ATTR_ID); if (id.startsWith(NEW_ID_PREFIX)) { - seen.add(id.substring(NEW_ID_PREFIX.length()).toLowerCase()); + // See getFreeWidgetId for details on locale + seen.add(id.substring(NEW_ID_PREFIX.length()).toLowerCase(Locale.US)); } else if (id.startsWith(ID_PREFIX)) { - seen.add(id.substring(ID_PREFIX.length()).toLowerCase()); + seen.add(id.substring(ID_PREFIX.length()).toLowerCase(Locale.US)); } else { - seen.add(id.toLowerCase()); + seen.add(id.toLowerCase(Locale.US)); } } } @@ -492,7 +494,11 @@ public class DomUtilities { Set<String> ids = new HashSet<String>(); if (reserved != null) { for (String id : reserved) { - ids.add(id.toLowerCase()); + // Note that we perform locale-independent lowercase checks; in "Image" we + // want the lowercase version to be "image", not "?mage" where ? is + // the char LATIN SMALL LETTER DOTLESS I. + + ids.add(id.toLowerCase(Locale.US)); } } addLowercaseIds(element.getOwnerDocument().getDocumentElement(), ids); @@ -504,7 +510,7 @@ public class DomUtilities { int num = 1; do { generated = String.format("%1$s%2$d", prefix, num++); //$NON-NLS-1$ - } while (ids.contains(generated.toLowerCase())); + } while (ids.contains(generated.toLowerCase(Locale.US))); return generated; } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepository.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepository.java index 665a923..4096ffe 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepository.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gre/ViewMetadataRepository.java @@ -51,6 +51,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -208,7 +209,7 @@ public class ViewMetadataRepository { Document document = builder.parse(is); Map<String, FillPreference> fillTypes = new HashMap<String, FillPreference>(); for (FillPreference pref : FillPreference.values()) { - fillTypes.put(pref.toString().toLowerCase(), pref); + fillTypes.put(pref.toString().toLowerCase(Locale.US), pref); } NodeList categoryNodes = document.getDocumentElement().getChildNodes(); diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/ExtractIncludeRefactoring.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/ExtractIncludeRefactoring.java index 2e69501..039bec5 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/ExtractIncludeRefactoring.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/ExtractIncludeRefactoring.java @@ -89,6 +89,7 @@ import org.w3c.dom.Node; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Map; /** @@ -423,8 +424,9 @@ public class ExtractIncludeRefactoring extends VisualRefactoring { // id null check for https://bugs.eclipse.org/bugs/show_bug.cgi?id=272378 if (id != null && (id.startsWith(ID_PREFIX) || id.startsWith(NEW_ID_PREFIX))) { // Use everything following the id/, and make it lowercase since that is - // the convention for layouts - defaultName = id.substring(id.indexOf('/') + 1).toLowerCase(); + // the convention for layouts (and use Locale.US to ensure that "Image" becomes + // "image" etc) + defaultName = id.substring(id.indexOf('/') + 1).toLowerCase(Locale.US); IInputValidator validator = ResourceNameValidator.create(true, mProject, LAYOUT); diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/VisualRefactoring.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/VisualRefactoring.java index 24140ef..315936d 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/VisualRefactoring.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/refactoring/VisualRefactoring.java @@ -95,6 +95,7 @@ import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -853,7 +854,7 @@ public abstract class VisualRefactoring extends Refactoring { String oldTypeBase = oldType.substring(oldType.lastIndexOf('.') + 1); String id = getId(element); if (id == null || id.length() == 0 - || id.toLowerCase().contains(oldTypeBase.toLowerCase())) { + || id.toLowerCase(Locale.US).contains(oldTypeBase.toLowerCase(Locale.US))) { String newTypeBase = newType.substring(newType.lastIndexOf('.') + 1); return ensureHasId(rootEdit, element, newTypeBase); } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/ui/tree/NewItemSelectionDialog.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/ui/tree/NewItemSelectionDialog.java index 1187f5c..d880f3d 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/ui/tree/NewItemSelectionDialog.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/ui/tree/NewItemSelectionDialog.java @@ -40,6 +40,7 @@ import org.eclipse.ui.part.FileEditorInput; import java.util.Arrays; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; @@ -300,7 +301,7 @@ public class NewItemSelectionDialog extends AbstractElementListSelectionDialog { String name = mInitialXmlName; boolean partial = name.startsWith("*"); //$NON-NLS-1$ if (partial) { - name = name.substring(1).toLowerCase(); + name = name.substring(1).toLowerCase(Locale.US); } for (ElementDescriptor desc : getAllowedDescriptors(rootNode)) { @@ -308,7 +309,7 @@ public class NewItemSelectionDialog extends AbstractElementListSelectionDialog { initialElement = desc; break; } else if (partial) { - String name2 = desc.getXmlLocalName().toLowerCase(); + String name2 = desc.getXmlLocalName().toLowerCase(Locale.US); if (name.startsWith(name2) || name2.startsWith(name)) { initialElement = desc; break; diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiElementNode.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiElementNode.java index cab6601..7cf9151 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiElementNode.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/uimodel/UiElementNode.java @@ -64,6 +64,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -310,7 +311,7 @@ public class UiElementNode implements IPropertySource { if (attr != null) { // Don't append the two when it's a repeat, e.g. Button01 (Button), // only when the ui name is not part of the attribute - if (attr.toLowerCase().indexOf(uiName.toLowerCase()) == -1) { + if (attr.toLowerCase(Locale.US).indexOf(uiName.toLowerCase(Locale.US)) == -1) { styledString.append(attr); styledString.append(String.format(" (%1$s)", uiName), StyledString.DECORATIONS_STYLER); diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ExportHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ExportHelper.java index fa97b59..1e5171c 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ExportHelper.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/ExportHelper.java @@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.project; import com.android.ide.eclipse.adt.AdtConstants; import com.android.ide.eclipse.adt.AdtPlugin; +import com.android.ide.eclipse.adt.AdtUtils; import com.android.ide.eclipse.adt.AndroidPrintStream; import com.android.ide.eclipse.adt.internal.build.BuildHelper; import com.android.ide.eclipse.adt.internal.build.DexException; @@ -336,7 +337,7 @@ public final class ExportHelper { } else if (file.isFile()) { // check the extension String name = file.getName(); - if (name.toLowerCase().endsWith(AdtConstants.DOT_CLASS) == false) { + if (!AdtUtils.endsWith(name, AdtConstants.DOT_CLASS)) { return; } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/refactorings/extractstring/ExtractStringInputPage.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/refactorings/extractstring/ExtractStringInputPage.java index ff3f5f6..f94b20a 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/refactorings/extractstring/ExtractStringInputPage.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/refactorings/extractstring/ExtractStringInputPage.java @@ -47,6 +47,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.TreeSet; import java.util.regex.Matcher; @@ -294,7 +295,7 @@ class ExtractStringInputPage extends UserInputWizardPage { } // make lower case - text = text.toLowerCase(); + text = text.toLowerCase(Locale.US); // everything not alphanumeric becomes an underscore text = text.replaceAll("[^a-zA-Z0-9]+", "_"); //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ResourceChooser.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ResourceChooser.java index b424435..263cc2d 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ResourceChooser.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ResourceChooser.java @@ -70,6 +70,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -153,7 +154,7 @@ public class ResourceChooser extends AbstractElementListSelectionDialog implemen setTitle("Resource Chooser"); setMessage(String.format("Choose a %1$s resource", - mResourceType.getDisplayName().toLowerCase())); + mResourceType.getDisplayName().toLowerCase(Locale.US))); } /** |