1 /*
2  * Copyright (C) 2021 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.settingslib.widget;
18 
19 import android.content.Context;
20 import android.util.AttributeSet;
21 import android.view.View;
22 
23 import androidx.preference.PreferenceViewHolder;
24 import androidx.preference.SwitchPreference;
25 
26 /**
27  * The SwitchPreference for the pages need to show apps icon.
28  */
29 public class AppSwitchPreference extends SwitchPreference {
30 
AppSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)31     public AppSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
32             int defStyleRes) {
33         super(context, attrs, defStyleAttr, defStyleRes);
34         setLayoutResource(R.layout.preference_app);
35     }
36 
AppSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr)37     public AppSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
38         super(context, attrs, defStyleAttr);
39         setLayoutResource(R.layout.preference_app);
40     }
41 
AppSwitchPreference(Context context, AttributeSet attrs)42     public AppSwitchPreference(Context context, AttributeSet attrs) {
43         super(context, attrs);
44         setLayoutResource(R.layout.preference_app);
45     }
46 
AppSwitchPreference(Context context)47     public AppSwitchPreference(Context context) {
48         super(context);
49         setLayoutResource(R.layout.preference_app);
50     }
51 
52     @Override
onBindViewHolder(PreferenceViewHolder holder)53     public void onBindViewHolder(PreferenceViewHolder holder) {
54         super.onBindViewHolder(holder);
55         final View switchView = holder.findViewById(android.R.id.switch_widget);
56         if (switchView != null) {
57             final View rootView = switchView.getRootView();
58             rootView.setFilterTouchesWhenObscured(true);
59         }
60     }
61 }
62