diff options
| -rw-r--r-- | core/java/android/view/textservice/SpellCheckerInfo.java | 22 | ||||
| -rw-r--r-- | services/core/java/com/android/server/TextServicesManagerService.java | 67 |
2 files changed, 50 insertions, 39 deletions
diff --git a/core/java/android/view/textservice/SpellCheckerInfo.java b/core/java/android/view/textservice/SpellCheckerInfo.java index 471b6d4322f7..fc17f7aed301 100644 --- a/core/java/android/view/textservice/SpellCheckerInfo.java +++ b/core/java/android/view/textservice/SpellCheckerInfo.java @@ -31,10 +31,12 @@ import android.graphics.drawable.Drawable; import android.os.Parcel; import android.os.Parcelable; import android.util.AttributeSet; +import android.util.PrintWriterPrinter; import android.util.Slog; import android.util.Xml; import java.io.IOException; +import java.io.PrintWriter; import java.util.ArrayList; /** @@ -55,7 +57,7 @@ public final class SpellCheckerInfo implements Parcelable { /** * The array of subtypes. */ - private final ArrayList<SpellCheckerSubtype> mSubtypes = new ArrayList<SpellCheckerSubtype>(); + private final ArrayList<SpellCheckerSubtype> mSubtypes = new ArrayList<>(); /** * Constructor. @@ -267,4 +269,22 @@ public final class SpellCheckerInfo implements Parcelable { public int describeContents() { return 0; } + + /** + * @hide + */ + public void dump(final PrintWriter pw, final String prefix) { + pw.println(prefix + "mId=" + mId); + pw.println(prefix + "mSettingsActivityName=" + mSettingsActivityName); + pw.println(prefix + "Service:"); + mService.dump(new PrintWriterPrinter(pw), prefix + " "); + final int N = getSubtypeCount(); + for (int i = 0; i < N; i++) { + final SpellCheckerSubtype st = getSubtypeAt(i); + pw.println(prefix + " " + "Subtype #" + i + ":"); + pw.println(prefix + " " + "locale=" + st.getLocale() + + " languageTag=" + st.getLanguageTag()); + pw.println(prefix + " " + "extraValue=" + st.getExtraValue()); + } + } } diff --git a/services/core/java/com/android/server/TextServicesManagerService.java b/services/core/java/com/android/server/TextServicesManagerService.java index 3f453dc64646..8bcb7adc1511 100644 --- a/services/core/java/com/android/server/TextServicesManagerService.java +++ b/services/core/java/com/android/server/TextServicesManagerService.java @@ -774,50 +774,36 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { synchronized(mSpellCheckerMap) { pw.println("Current Text Services Manager state:"); - pw.println(" Spell Checker Map:"); - for (Map.Entry<String, SpellCheckerInfo> ent : mSpellCheckerMap.entrySet()) { - pw.print(" "); pw.print(ent.getKey()); pw.println(":"); - SpellCheckerInfo info = ent.getValue(); - pw.print(" "); pw.print("id="); pw.println(info.getId()); - pw.print(" "); pw.print("comp="); - pw.println(info.getComponent().toShortString()); - int NS = info.getSubtypeCount(); - for (int i=0; i<NS; i++) { - SpellCheckerSubtype st = info.getSubtypeAt(i); - pw.print(" "); pw.print("Subtype #"); pw.print(i); pw.println(":"); - pw.print(" "); pw.print("locale="); pw.println(st.getLocale()); - pw.print(" "); pw.print("extraValue="); - pw.println(st.getExtraValue()); - } + pw.println(" Spell Checkers:"); + int spellCheckerIndex = 0; + for (final SpellCheckerInfo info : mSpellCheckerMap.values()) { + pw.println(" Spell Checker #" + spellCheckerIndex); + info.dump(pw, " "); + ++spellCheckerIndex; } pw.println(""); pw.println(" Spell Checker Bind Groups:"); - for (Map.Entry<String, SpellCheckerBindGroup> ent + for (final Map.Entry<String, SpellCheckerBindGroup> ent : mSpellCheckerBindGroups.entrySet()) { - SpellCheckerBindGroup grp = ent.getValue(); - pw.print(" "); pw.print(ent.getKey()); pw.print(" "); - pw.print(grp); pw.println(":"); - pw.print(" "); pw.print("mInternalConnection="); - pw.println(grp.mInternalConnection); - pw.print(" "); pw.print("mSpellChecker="); - pw.println(grp.mSpellChecker); - pw.print(" "); pw.print("mBound="); pw.print(grp.mBound); - pw.print(" mConnected="); pw.println(grp.mConnected); - int NL = grp.mListeners.size(); - for (int i=0; i<NL; i++) { - InternalDeathRecipient listener = grp.mListeners.get(i); - pw.print(" "); pw.print("Listener #"); pw.print(i); pw.println(":"); - pw.print(" "); pw.print("mTsListener="); - pw.println(listener.mTsListener); - pw.print(" "); pw.print("mScListener="); - pw.println(listener.mScListener); - pw.print(" "); pw.print("mGroup="); - pw.println(listener.mGroup); - pw.print(" "); pw.print("mScLocale="); - pw.print(listener.mScLocale); - pw.print(" mUid="); pw.println(listener.mUid); + final SpellCheckerBindGroup grp = ent.getValue(); + pw.println(" " + ent.getKey() + " " + grp + ":"); + pw.println(" " + "mInternalConnection=" + grp.mInternalConnection); + pw.println(" " + "mSpellChecker=" + grp.mSpellChecker); + pw.println(" " + "mBound=" + grp.mBound + " mConnected=" + grp.mConnected); + final int N = grp.mListeners.size(); + for (int i = 0; i < N; i++) { + final InternalDeathRecipient listener = grp.mListeners.get(i); + pw.println(" " + "Listener #" + i + ":"); + pw.println(" " + "mTsListener=" + listener.mTsListener); + pw.println(" " + "mScListener=" + listener.mScListener); + pw.println(" " + "mGroup=" + listener.mGroup); + pw.println(" " + "mScLocale=" + listener.mScLocale + + " mUid=" + listener.mUid); } } + pw.println(""); + pw.println(" mSettings:"); + mSettings.dumpLocked(pw, " "); } } @@ -1119,6 +1105,11 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { public boolean isSpellCheckerEnabled() { return getBoolean(Settings.Secure.SPELL_CHECKER_ENABLED, true); } + + public void dumpLocked(final PrintWriter pw, final String prefix) { + pw.println(prefix + "mCurrentUserId=" + mCurrentUserId); + pw.println(prefix + "mCurrentProfileIds=" + Arrays.toString(mCurrentProfileIds)); + } } // ---------------------------------------------------------------------- |