150db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi/* 250db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * Copyright (C) 2013 The Android Open Source Project 350db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * 450db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * Licensed under the Apache License, Version 2.0 (the "License"); 550db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * you may not use this file except in compliance with the License. 650db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * You may obtain a copy of the License at 750db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * 850db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * http://www.apache.org/licenses/LICENSE-2.0 950db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * 1050db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * Unless required by applicable law or agreed to in writing, software 1150db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * distributed under the License is distributed on an "AS IS" BASIS, 1250db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1350db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * See the License for the specific language governing permissions and 1450db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi * limitations under the License. 1550db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi */ 1650db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi 17a7d2fc6befa1b16883200a653fc01deb4d94944dKen Wakasapackage com.android.inputmethod.latin.settings; 18e28eba5074664d5716b8e58b8d0a235746b261ebKen Wakasa 1950db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagipublic class NativeSuggestOptions { 2050db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi // Need to update suggest_options.h when you add, remove or reorder options. 2150db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi private static final int IS_GESTURE = 0; 2250db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi private static final int USE_FULL_EDIT_DISTANCE = 1; 2350db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi private static final int OPTIONS_SIZE = 2; 2450db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi 251b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi private final int[] mOptions = new int[OPTIONS_SIZE 261b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi + AdditionalFeaturesSettingUtils.ADDITIONAL_FEATURES_SETTINGS_SIZE]; 2750db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi 2850db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi public void setIsGesture(final boolean value) { 2950db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi setBooleanOption(IS_GESTURE, value); 3050db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi } 3150db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi 3250db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi public void setUseFullEditDistance(final boolean value) { 3350db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi setBooleanOption(USE_FULL_EDIT_DISTANCE, value); 3450db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi } 3550db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi 361b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi public void setAdditionalFeaturesOptions(final int[] additionalOptions) { 37fe87f5f41744a633a2ed91af9b171bda2637649eKeisuke Kuroyanagi if (additionalOptions == null) { 38fe87f5f41744a633a2ed91af9b171bda2637649eKeisuke Kuroyanagi return; 39fe87f5f41744a633a2ed91af9b171bda2637649eKeisuke Kuroyanagi } 401b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi for (int i = 0; i < additionalOptions.length; i++) { 411b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi setIntegerOption(OPTIONS_SIZE + i, additionalOptions[i]); 421b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi } 431b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi } 441b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi 4550db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi public int[] getOptions() { 4650db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi return mOptions; 4750db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi } 4850db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi 4950db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi private void setBooleanOption(final int key, final boolean value) { 5050db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi mOptions[key] = value ? 1 : 0; 5150db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi } 521b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi 531b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi private void setIntegerOption(final int key, final int value) { 541b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi mOptions[key] = value; 551b100610b31261a10e1bab46801ddfb0fbbf76f4Keisuke Kuroyanagi } 5650db5f0fffdc35e9fe0bed27e7d630d571727e06Keisuke Kuroyanagi} 57