IDEA-83980 replace apostrophes and quotes in application name

This commit is contained in:
Eugene Kudelevsky
2012-04-05 17:53:58 +04:00
parent 0f8a57f026
commit 129a4f74b0
3 changed files with 11 additions and 3 deletions
@@ -184,7 +184,7 @@ public class AndroidAddStringResourceAction extends AbstractIntentionAction impl
final AndroidFacet facet = AndroidFacet.getInstance(file);
assert facet != null;
value = value.replace("'", "\\'").replace("\"", "\\\"");
value = AndroidResourceUtil.normalizeXmlResourceValue(value);
final String aPackage = getPackage(facet);
if (aPackage == null) {
@@ -67,6 +67,7 @@ import org.jetbrains.android.sdk.AndroidPlatform;
import org.jetbrains.android.sdk.AndroidSdkUtils;
import org.jetbrains.android.util.AndroidBundle;
import org.jetbrains.android.util.AndroidCommonUtils;
import org.jetbrains.android.util.AndroidResourceUtil;
import org.jetbrains.android.util.AndroidUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -418,11 +419,13 @@ public class AndroidModuleBuilder extends JavaModuleBuilder {
}
}
final String normalizedAppName = AndroidResourceUtil.normalizeXmlResourceValue(myApplicationName);
if (appNameResElement == null) {
manager.addValueResource("string", appNameResource, myApplicationName);
manager.addValueResource("string", appNameResource, normalizedAppName);
}
else {
appNameResElement.setStringValue(myApplicationName);
appNameResElement.setStringValue(normalizedAppName);
}
final Manifest manifest = facet.getManifest();
@@ -60,6 +60,11 @@ public class AndroidResourceUtil {
private AndroidResourceUtil() {
}
@NotNull
public static String normalizeXmlResourceValue(@NotNull String value) {
return value.replace("'", "\\'").replace("\"", "\\\"");
}
static {
REFERRABLE_RESOURCE_TYPES.addAll(Arrays.asList(ResourceType.values()));
REFERRABLE_RESOURCE_TYPES.remove(ResourceType.ATTR);