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