diff --git a/samples/SampleSpellCheckerService/Android.mk b/samples/SampleSpellCheckerService/Android.mk new file mode 100755 index 000000000..adf65d961 --- /dev/null +++ b/samples/SampleSpellCheckerService/Android.mk @@ -0,0 +1,12 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := samples + +LOCAL_SRC_FILES := $(call all-subdir-java-files) + +LOCAL_SDK_VERSION := current + +LOCAL_PACKAGE_NAME := SampleSpellChecker + +include $(BUILD_PACKAGE) diff --git a/samples/SampleSpellCheckerService/AndroidManifest.xml b/samples/SampleSpellCheckerService/AndroidManifest.xml new file mode 100644 index 000000000..ba3229438 --- /dev/null +++ b/samples/SampleSpellCheckerService/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/SampleSpellCheckerService/res/values/strings.xml b/samples/SampleSpellCheckerService/res/values/strings.xml new file mode 100644 index 000000000..79da5c613 --- /dev/null +++ b/samples/SampleSpellCheckerService/res/values/strings.xml @@ -0,0 +1,25 @@ + + + + SampleSpellCheckerService + Sample correction + %s + Sample settings + Sample preference + \ No newline at end of file diff --git a/samples/SampleSpellCheckerService/res/xml/spell_checker_settings.xml b/samples/SampleSpellCheckerService/res/xml/spell_checker_settings.xml new file mode 100644 index 000000000..e04d50e94 --- /dev/null +++ b/samples/SampleSpellCheckerService/res/xml/spell_checker_settings.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/samples/SampleSpellCheckerService/res/xml/spellchecker.xml b/samples/SampleSpellCheckerService/res/xml/spellchecker.xml new file mode 100644 index 000000000..f4601d2da --- /dev/null +++ b/samples/SampleSpellCheckerService/res/xml/spellchecker.xml @@ -0,0 +1,30 @@ + + + + + + + + + diff --git a/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SampleSpellCheckerService.java b/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SampleSpellCheckerService.java new file mode 100644 index 000000000..91a76d8b4 --- /dev/null +++ b/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SampleSpellCheckerService.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.samplespellcheckerservice; + +import android.service.textservice.SpellCheckerService; +import android.util.Log; +import android.view.textservice.SuggestionsInfo; +import android.view.textservice.TextInfo; + +public class SampleSpellCheckerService extends SpellCheckerService { + private static final String TAG = SampleSpellCheckerService.class.getSimpleName(); + private static final boolean DBG = true; + @Override + public Session createSession() { + return new AndroidSpellCheckerSession(); + } + + private static class AndroidSpellCheckerSession extends Session { + private String mLocale; + @Override + public void onCreate() { + mLocale = getLocale(); + } + + @Override + public SuggestionsInfo onGetSuggestions(TextInfo textInfo, int suggestionsLimit) { + if (DBG) { + Log.d(TAG, "onGetSuggestions: " + textInfo.getText()); + } + final String input = textInfo.getText(); + final int length = input.length(); + // length <= 3 for too short words + // length > 20 for too long words that is possibly CJK words + final int flags = length <= 3 ? SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY + : length <= 20 ? SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO : 0; + return new SuggestionsInfo(flags, + new String[] {"aaa", "bbb", "Candidate for " + input, mLocale}); + } + } +} diff --git a/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SpellCheckerSettingsActivity.java b/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SpellCheckerSettingsActivity.java new file mode 100644 index 000000000..f223ef7ec --- /dev/null +++ b/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SpellCheckerSettingsActivity.java @@ -0,0 +1,39 @@ +/** + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy + * of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.example.android.samplespellcheckerservice; + +import android.content.Intent; +import android.os.Bundle; +import android.preference.PreferenceActivity; + +/** + * Spell checker preference screen. + */ +public class SpellCheckerSettingsActivity extends PreferenceActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public Intent getIntent() { + final Intent modIntent = new Intent(super.getIntent()); + modIntent.putExtra(EXTRA_SHOW_FRAGMENT, SpellCheckerSettingsFragment.class.getName()); + modIntent.putExtra(EXTRA_NO_HEADERS, true); + return modIntent; + } +} diff --git a/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SpellCheckerSettingsFragment.java b/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SpellCheckerSettingsFragment.java new file mode 100644 index 000000000..cd2efccd9 --- /dev/null +++ b/samples/SampleSpellCheckerService/src/com/example/android/samplespellcheckerservice/SpellCheckerSettingsFragment.java @@ -0,0 +1,38 @@ +/** + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy + * of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package com.example.android.samplespellcheckerservice; + +import android.os.Bundle; +import android.preference.PreferenceFragment; + +/** + * Preference screen. + */ +public class SpellCheckerSettingsFragment extends PreferenceFragment { + + /** + * Empty constructor for fragment generation. + */ + public SpellCheckerSettingsFragment() { + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + addPreferencesFromResource(R.xml.spell_checker_settings); + } +}