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