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.tv.settings.inputmethod;
18 
19 import android.annotation.UserIdInt;
20 import android.content.Context;
21 import android.view.inputmethod.InputMethodInfo;
22 import android.widget.CompoundButton;
23 
24 import androidx.preference.Preference;
25 
26 import com.android.settingslib.inputmethod.InputMethodPreference;
27 
28 /**
29  * Input method preference for Android TV.
30  *
31  * This preference handle the switch logic for TV.
32  */
33 public class TVInputMethodPreference extends InputMethodPreference {
TVInputMethodPreference(final Context prefContext, final InputMethodInfo imi, final boolean isAllowedByOrganization, final InputMethodPreference.OnSavePreferenceListener onSaveListener, final @UserIdInt int userId)34     public TVInputMethodPreference(final Context prefContext, final InputMethodInfo imi,
35             final boolean isAllowedByOrganization,
36             final InputMethodPreference.OnSavePreferenceListener onSaveListener,
37             final @UserIdInt int userId) {
38         super(prefContext, imi, isAllowedByOrganization, onSaveListener, userId);
39     }
40 
41     @Override
onPreferenceClick(final Preference preference)42     public boolean onPreferenceClick(final Preference preference) {
43         final CompoundButton switchWidget = getSwitch();
44         if (!switchWidget.isEnabled()) {
45             return true;
46         }
47         final boolean newValue = !isChecked();
48         switchWidget.setChecked(isChecked());
49         callChangeListener(newValue);
50         return true;
51     }
52 }
53