1ab146531c0710ad46ac347d280b14c798f732a12linyuh/* 2ab146531c0710ad46ac347d280b14c798f732a12linyuh * Copyright (C) 2017 The Android Open Source Project 3ab146531c0710ad46ac347d280b14c798f732a12linyuh * 4ab146531c0710ad46ac347d280b14c798f732a12linyuh * Licensed under the Apache License, Version 2.0 (the "License"); 5ab146531c0710ad46ac347d280b14c798f732a12linyuh * you may not use this file except in compliance with the License. 6ab146531c0710ad46ac347d280b14c798f732a12linyuh * You may obtain a copy of the License at 7ab146531c0710ad46ac347d280b14c798f732a12linyuh * 8ab146531c0710ad46ac347d280b14c798f732a12linyuh * http://www.apache.org/licenses/LICENSE-2.0 9ab146531c0710ad46ac347d280b14c798f732a12linyuh * 10ab146531c0710ad46ac347d280b14c798f732a12linyuh * Unless required by applicable law or agreed to in writing, software 11ab146531c0710ad46ac347d280b14c798f732a12linyuh * distributed under the License is distributed on an "AS IS" BASIS, 12ab146531c0710ad46ac347d280b14c798f732a12linyuh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ab146531c0710ad46ac347d280b14c798f732a12linyuh * See the License for the specific language governing permissions and 14ab146531c0710ad46ac347d280b14c798f732a12linyuh * limitations under the License. 15ab146531c0710ad46ac347d280b14c798f732a12linyuh */ 16ab146531c0710ad46ac347d280b14c798f732a12linyuh 17bf4bb0555ca827e660ad05b4caf982a030211c03linyuhpackage com.android.dialer.smartdial.map; 18ab146531c0710ad46ac347d280b14c798f732a12linyuh 19ab146531c0710ad46ac347d280b14c798f732a12linyuhimport android.support.v4.util.SimpleArrayMap; 20126c0e599ea98b639549d91ff99bc4e780d769b5linyuhimport com.android.dialer.dialpadview.DialpadCharMappings; 21ab146531c0710ad46ac347d280b14c798f732a12linyuhimport com.google.common.base.Optional; 22ab146531c0710ad46ac347d280b14c798f732a12linyuh 23ab146531c0710ad46ac347d280b14c798f732a12linyuh/** A {@link SmartDialMap} for the Russian alphabet. */ 24ab146531c0710ad46ac347d280b14c798f732a12linyuh@SuppressWarnings("Guava") 25ab146531c0710ad46ac347d280b14c798f732a12linyuhfinal class RussianSmartDialMap extends SmartDialMap { 26ab146531c0710ad46ac347d280b14c798f732a12linyuh 27ab146531c0710ad46ac347d280b14c798f732a12linyuh private static RussianSmartDialMap instance; 28ab146531c0710ad46ac347d280b14c798f732a12linyuh 29ab146531c0710ad46ac347d280b14c798f732a12linyuh static RussianSmartDialMap getInstance() { 30ab146531c0710ad46ac347d280b14c798f732a12linyuh if (instance == null) { 31ab146531c0710ad46ac347d280b14c798f732a12linyuh instance = new RussianSmartDialMap(); 32ab146531c0710ad46ac347d280b14c798f732a12linyuh } 33ab146531c0710ad46ac347d280b14c798f732a12linyuh 34ab146531c0710ad46ac347d280b14c798f732a12linyuh return instance; 35ab146531c0710ad46ac347d280b14c798f732a12linyuh } 36ab146531c0710ad46ac347d280b14c798f732a12linyuh 37ab146531c0710ad46ac347d280b14c798f732a12linyuh private RussianSmartDialMap() {} 38ab146531c0710ad46ac347d280b14c798f732a12linyuh 39ab146531c0710ad46ac347d280b14c798f732a12linyuh @Override 40ab146531c0710ad46ac347d280b14c798f732a12linyuh Optional<Character> normalizeCharacter(char ch) { 41ab146531c0710ad46ac347d280b14c798f732a12linyuh ch = Character.toLowerCase(ch); 42ab146531c0710ad46ac347d280b14c798f732a12linyuh return isValidDialpadAlphabeticChar(ch) ? Optional.of(ch) : Optional.absent(); 43ab146531c0710ad46ac347d280b14c798f732a12linyuh } 44ab146531c0710ad46ac347d280b14c798f732a12linyuh 45ab146531c0710ad46ac347d280b14c798f732a12linyuh @Override 46ab146531c0710ad46ac347d280b14c798f732a12linyuh SimpleArrayMap<Character, Character> getCharToKeyMap() { 47126c0e599ea98b639549d91ff99bc4e780d769b5linyuh return DialpadCharMappings.getCharToKeyMap("rus"); 48ab146531c0710ad46ac347d280b14c798f732a12linyuh } 49ab146531c0710ad46ac347d280b14c798f732a12linyuh} 50