| // 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. |
| |
| #ifndef SERVICES_PREDICTION_PROXIMITY_INFO_FACTORY_H_ |
| #define SERVICES_PREDICTION_PROXIMITY_INFO_FACTORY_H_ |
| |
| #include "mojo/services/prediction/interfaces/prediction.mojom.h" |
| #include "services/prediction/key_set.h" |
| #include "third_party/android_prediction/suggest/core/layout/proximity_info.h" |
| |
| // NOTE: This class has been translated to C++ and modified from the Android |
| // Open Source Project. Specifically from some functions of the following file: |
| // https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/ |
| // android-5.1.1_r8/java/src/com/android/inputmethod/keyboard/ProximityInfo.java |
| |
| namespace prediction { |
| |
| class ProximityInfoFactory { |
| public: |
| ProximityInfoFactory(); |
| ~ProximityInfoFactory(); |
| |
| latinime::ProximityInfo* GetNativeProximityInfo(); |
| |
| private: |
| // Number of key widths from current touch point to search for nearest keys. |
| static const float SEARCH_DISTANCE; |
| static const float DEFAULT_TOUCH_POSITION_CORRECTION_RADIUS; |
| |
| int SquaredDistanceToEdge(int x, int y, Key k); |
| |
| int pgrid_width_; |
| int pgrid_height_; |
| int pgrid_size_; |
| int pcell_width_; |
| int pcell_height_; |
| int pkeyboard_min_width_; |
| int pkeyboard_height_; |
| int pmost_common_key_width_; |
| int pmost_common_key_height_; |
| std::string plocale_; |
| }; // class ProximityInfoFactory |
| |
| } // namespace prediction |
| |
| #endif // SERVICES_PREDICTION_PROXIMITY_INFO_FACTORY_H_ |