Index: chrome/android/java/src/org/chromium/chrome/browser/spellchecker/SpellCheckerSessionBridge.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/spellchecker/SpellCheckerSessionBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/spellchecker/SpellCheckerSessionBridge.java |
deleted file mode 100644 |
index dcab14122e9947f1846ad2112c25285c715e4ed0..0000000000000000000000000000000000000000 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/spellchecker/SpellCheckerSessionBridge.java |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.spellchecker; |
- |
-import android.content.Context; |
-import android.view.textservice.SentenceSuggestionsInfo; |
-import android.view.textservice.SpellCheckerSession; |
-import android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener; |
-import android.view.textservice.SuggestionsInfo; |
-import android.view.textservice.TextInfo; |
-import android.view.textservice.TextServicesManager; |
- |
-import org.chromium.base.ContextUtils; |
-import org.chromium.base.annotations.CalledByNative; |
- |
-import java.util.ArrayList; |
- |
-/** |
- * JNI interface for native SpellCheckerSessionBridge to use Android's spellchecker. |
- */ |
-public class SpellCheckerSessionBridge implements SpellCheckerSessionListener { |
- private final long mNativeSpellCheckerSessionBridge; |
- private final SpellCheckerSession mSpellCheckerSession; |
- |
- /** |
- * Constructs a SpellCheckerSessionBridge object as well as its SpellCheckerSession object. |
- * @param nativeSpellCheckerSessionBridge Pointer to the native SpellCheckerSessionBridge. |
- */ |
- private SpellCheckerSessionBridge(long nativeSpellCheckerSessionBridge) { |
- mNativeSpellCheckerSessionBridge = nativeSpellCheckerSessionBridge; |
- |
- Context context = ContextUtils.getApplicationContext(); |
- final TextServicesManager textServicesManager = |
- (TextServicesManager) context.getSystemService( |
- Context.TEXT_SERVICES_MANAGER_SERVICE); |
- |
- // This combination of parameters will cause the spellchecker to be based off of |
- // the language specified at "Settings > Language & input > Spell checker > Language". |
- // If that setting is set to "Use system language" and the system language is not on the |
- // list of supported spellcheck languages, this call will return null. This call will also |
- // return null if the user has turned spellchecking off at "Settings > Language & input > |
- // Spell checker". |
- mSpellCheckerSession = textServicesManager.newSpellCheckerSession(null, null, this, true); |
- } |
- |
- /** |
- * Returns a new SpellCheckerSessionBridge object if the internal SpellCheckerSession object |
- * was able to be created. |
- * @param nativeSpellCheckerSessionBridge Pointer to the native SpellCheckerSessionBridge. |
- */ |
- @CalledByNative |
- private static SpellCheckerSessionBridge create(long nativeSpellCheckerSessionBridge) { |
- SpellCheckerSessionBridge bridge = |
- new SpellCheckerSessionBridge(nativeSpellCheckerSessionBridge); |
- if (bridge.mSpellCheckerSession == null) { |
- return null; |
- } |
- return bridge; |
- } |
- |
- /** |
- * Queries the input text against the SpellCheckerSession. |
- * @param text Text to be queried. |
- */ |
- @CalledByNative |
- private void requestTextCheck(String text) { |
- // SpellCheckerSession thinks that any word ending with a period is a typo. |
- // We trim the period off before sending the text for spellchecking in order to avoid |
- // unnecessary red underlines when the user ends a sentence with a period. |
- // Filed as an Android bug here: https://code.google.com/p/android/issues/detail?id=183294 |
- if (text.endsWith(".")) { |
- text = text.substring(0, text.length() - 1); |
- } |
- mSpellCheckerSession.getSentenceSuggestions(new TextInfo[] {new TextInfo(text)}, 0); |
- } |
- |
- /** |
- * Checks for typos and sends results back to native through a JNI call. |
- * @param results Results returned by the Android spellchecker. |
- */ |
- @Override |
- public void onGetSentenceSuggestions(SentenceSuggestionsInfo[] results) { |
- ArrayList<Integer> offsets = new ArrayList<Integer>(); |
- ArrayList<Integer> lengths = new ArrayList<Integer>(); |
- |
- for (SentenceSuggestionsInfo result : results) { |
- for (int i = 0; i < result.getSuggestionsCount(); i++) { |
- // If a word looks like a typo, record its offset and length. |
- if ((result.getSuggestionsInfoAt(i).getSuggestionsAttributes() |
- & SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO) |
- == SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO) { |
- offsets.add(result.getOffsetAt(i)); |
- lengths.add(result.getLengthAt(i)); |
- } |
- } |
- } |
- |
- nativeProcessSpellCheckResults(mNativeSpellCheckerSessionBridge, |
- convertListToArray(offsets), convertListToArray(lengths)); |
- } |
- |
- /** |
- * Helper method to convert an ArrayList of Integer objects into an array of primitive ints |
- * for easier JNI handling of these objects on the native side. |
- * @param list List to be converted to an array. |
- */ |
- private int[] convertListToArray(ArrayList<Integer> list) { |
- int[] array = new int[list.size()]; |
- for (int index = 0; index < array.length; index++) { |
- array[index] = list.get(index).intValue(); |
- } |
- return array; |
- } |
- |
- @Override |
- public void onGetSuggestions(SuggestionsInfo[] results) {} |
- |
- private native void nativeProcessSpellCheckResults( |
- long nativeSpellCheckerSessionBridge, int[] offsets, int[] lengths); |
-} |