1415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes/*
2415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * Copyright (C) 2014 The Android Open Source Project
3415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *
4415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
5415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * you may not use this file except in compliance with the License.
6415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * You may obtain a copy of the License at
7415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *
8415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
9415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes *
10415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * Unless required by applicable law or agreed to in writing, software
11415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
12415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * See the License for the specific language governing permissions and
14415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * limitations under the License.
15415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes */
16415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
17ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.appcompat.text;
18415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
19ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP;
208e10080c914d1ad0784394fa3026b85535535847Aurimas Liutikas
21415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport android.content.Context;
22415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport android.graphics.Rect;
23415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport android.text.method.TransformationMethod;
24415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport android.view.View;
25415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
263de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.annotation.RestrictTo;
273de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikas
28415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banesimport java.util.Locale;
29415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
30415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes/**
31415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes * @hide
32415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes */
338e10080c914d1ad0784394fa3026b85535535847Aurimas Liutikas@RestrictTo(LIBRARY_GROUP)
34415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banespublic class AllCapsTransformationMethod implements TransformationMethod {
35415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    private Locale mLocale;
36415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
37415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    public AllCapsTransformationMethod(Context context) {
38415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        mLocale = context.getResources().getConfiguration().locale;
39415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    }
40415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
41415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    @Override
42415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    public CharSequence getTransformation(CharSequence source, View view) {
43415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes        return source != null ? source.toString().toUpperCase(mLocale) : null;
44415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    }
45415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes
46415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    @Override
47415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    public void onFocusChanged(View view, CharSequence sourceText, boolean focused,
48415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes            int direction, Rect previouslyFocusedRect) {
49415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes    }
50415f740df4981ef2f5fb462a50c7cf095cc21128Chris Banes}