aboutsummaryrefslogtreecommitdiffstats
path: root/tools/make-keyboard-text/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-02-10 18:21:24 +0900
committerTadashi G. Takaoka <takaoka@google.com>2014-02-11 21:41:21 +0900
commited509695a42455874aa9c047ed4343f636ef527b (patch)
treec31d1cb4dec2fea486ccb72c8d77d9eed876df5f /tools/make-keyboard-text/src
parentcbb0a6de3b3ef0afad604bc2b62319d47b6e2f5d (diff)
downloadlatinime-ed509695a42455874aa9c047ed4343f636ef527b.tar.gz
latinime-ed509695a42455874aa9c047ed4343f636ef527b.tar.xz
latinime-ed509695a42455874aa9c047ed4343f636ef527b.zip
Get nicer output of make-keyboard-text
Change-Id: I6d30127aac2198d55b1335002f7a66b4aaebf82d
Diffstat (limited to 'tools/make-keyboard-text/src')
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java10
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java30
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java14
3 files changed, 41 insertions, 13 deletions
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java
index 331003e67..d2763e024 100644
--- a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java
@@ -29,12 +29,16 @@ public class ArrayInitializerFormatter {
private int mBufferedLen;
private int mBufferedIndex = Integer.MIN_VALUE;
- public ArrayInitializerFormatter(PrintStream out, int width, String indent) {
+ public ArrayInitializerFormatter(final PrintStream out, final int width, final String indent) {
mOut = out;
mMaxWidth = width - indent.length();
mIndent = indent;
}
+ public int getCurrentIndex() {
+ return mCurrentIndex;
+ }
+
public void flush() {
if (mBuffer.length() == 0) {
return;
@@ -59,13 +63,13 @@ public class ArrayInitializerFormatter {
mBufferedLen = 0;
}
- public void outCommentLines(String lines) {
+ public void outCommentLines(final String lines) {
flush();
mOut.print(lines);
mFixedElement = null;
}
- public void outElement(String element) {
+ public void outElement(final String element) {
if (!element.equals(mFixedElement)) {
flush();
mBufferedIndex = mCurrentIndex;
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java
index dddb3d6c8..97a12d707 100644
--- a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java
@@ -38,7 +38,6 @@ public class MoreKeysResources {
private static final String MARK_TEXTS = "@TEXTS@";
private static final String MARK_LANGUAGES_AND_TEXTS = "@LANGUAGES_AND_TEXTS@";
private static final String DEFAULT_LANGUAGE_NAME = "DEFAULT";
- private static final String ARRAY_NAME_FOR_LANGUAGE = "LANGUAGE_%s";
private static final String EMPTY_STRING_VAR = "EMPTY";
private static final String NO_LANGUAGE_CODE = "zz";
@@ -144,7 +143,12 @@ public class MoreKeysResources {
private void dumpDefaultTexts(final PrintStream out) {
final StringResourceMap defaultResMap = mResourcesMap.get(DEFAULT_LANGUAGE_NAME);
- dumpTextsInternal(out, defaultResMap, defaultResMap);
+ final int outputArraySize = dumpTextsInternal(out, defaultResMap, defaultResMap);
+ defaultResMap.setOutputArraySize(outputArraySize);
+ }
+
+ private static String getArrayNameForLanguage(final String language) {
+ return "LANGUAGE_" + language;
}
private void dumpTexts(final PrintStream out) {
@@ -157,8 +161,8 @@ public class MoreKeysResources {
continue;
}
out.format(" /* Language %s: %s */\n", language, getLanguageDisplayName(language));
- out.format(" private static final String[] " + ARRAY_NAME_FOR_LANGUAGE + " = {\n",
- language);
+ out.format(" private static final String[] " + getArrayNameForLanguage(language)
+ + " = {\n");
final StringResourceMap resMap = mResourcesMap.get(language);
for (final StringResource res : resMap.getResources()) {
if (!defaultResMap.contains(res.mName)) {
@@ -166,7 +170,8 @@ public class MoreKeysResources {
+ " doesn't have default resource");
}
}
- dumpTextsInternal(out, resMap, defaultResMap);
+ final int outputArraySize = dumpTextsInternal(out, resMap, defaultResMap);
+ resMap.setOutputArraySize(outputArraySize);
out.format(" };\n\n");
}
}
@@ -176,13 +181,15 @@ public class MoreKeysResources {
allLanguages.addAll(mResourcesMap.keySet());
Collections.sort(allLanguages);
for (final String language : allLanguages) {
+ final StringResourceMap resMap = mResourcesMap.get(language);
final Locale locale = LocaleUtils.constructLocaleFromString(language);
- // If we use a different key, dump the original as comment for now.
final String languageKeyToDump = locale.getCountry().isEmpty()
? String.format("\"%s\"", language)
- : String.format("\"%s\" /* \"%s\" */", locale.getLanguage(), language);
- out.format(" %s, " + ARRAY_NAME_FOR_LANGUAGE + ", /* %s */\n",
- languageKeyToDump, language, getLanguageDisplayName(language));
+ : String.format("\"%s\"", locale.getLanguage());
+ out.format(" %s, %-15s /* %3d/%3d %s */\n",
+ languageKeyToDump, getArrayNameForLanguage(language) + ",",
+ resMap.getResources().size(), resMap.getOutputArraySize(),
+ getLanguageDisplayName(language));
}
}
@@ -194,10 +201,11 @@ public class MoreKeysResources {
return locale.getDisplayName(Locale.ENGLISH);
}
- private static void dumpTextsInternal(final PrintStream out, final StringResourceMap resMap,
+ private static int dumpTextsInternal(final PrintStream out, final StringResourceMap resMap,
final StringResourceMap defaultResMap) {
final ArrayInitializerFormatter formatter =
new ArrayInitializerFormatter(out, 100, " ");
+ int outputArraySize = 0;
boolean successiveNull = false;
for (final StringResource defaultRes : defaultResMap.getResources()) {
if (resMap.contains(defaultRes.mName)) {
@@ -212,6 +220,7 @@ public class MoreKeysResources {
formatter.outElement(String.format("\"%s\",", escaped));
}
successiveNull = false;
+ outputArraySize = formatter.getCurrentIndex();
} else {
formatter.outElement("null,");
successiveNull = true;
@@ -220,6 +229,7 @@ public class MoreKeysResources {
if (!successiveNull) {
formatter.flush();
}
+ return outputArraySize;
}
private static String addPrefix(final String prefix, final String lines) {
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java
index cc7ff6a9c..4eff8a24b 100644
--- a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java
@@ -39,6 +39,12 @@ public class StringResourceMap {
// Name to string resource map.
private final Map<String, StringResource> mResourcesMap;
+ // The length of String[] that is created from this {@link StringResourceMap}. The length is
+ // calculated in {@link MoreKeysResources#dumpTexts(OutputStream)} and recorded by
+ // {@link #setOutputArraySize(int)}. The recorded length is used as a part of comment by
+ // {@link MoreKeysResources#dumpLanguageMap(OutputStream)} via {@link #getOutputArraySize()}.
+ private int mOutputArraySize;
+
public StringResourceMap(final InputStream is) {
final StringResourceHandler handler = new StringResourceHandler();
final SAXParserFactory factory = SAXParserFactory.newInstance();
@@ -77,6 +83,14 @@ public class StringResourceMap {
return mResourcesMap.get(name);
}
+ public void setOutputArraySize(final int arraySize) {
+ mOutputArraySize = arraySize;
+ }
+
+ public int getOutputArraySize() {
+ return mOutputArraySize;
+ }
+
static class StringResourceHandler extends DefaultHandler2 {
private static final String TAG_RESOURCES = "resources";
private static final String TAG_STRING = "string";