• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 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 package com.android.settings.wifi;
17 
18 import android.content.Context;
19 import android.view.View;
20 
21 import androidx.fragment.app.Fragment;
22 import androidx.preference.PreferenceViewHolder;
23 
24 import com.android.settings.R;
25 import com.android.wifitrackerlib.WifiEntry;
26 
27 /**
28  * An AP preference for the currently connected AP.
29  */
30 public class ConnectedWifiEntryPreference extends LongPressWifiEntryPreference implements
31         View.OnClickListener {
32 
33     private OnGearClickListener mOnGearClickListener;
34 
ConnectedWifiEntryPreference(Context context, WifiEntry wifiEntry, Fragment fragment)35     public ConnectedWifiEntryPreference(Context context, WifiEntry wifiEntry, Fragment fragment) {
36         super(context, wifiEntry, fragment);
37         setWidgetLayoutResource(R.layout.preference_widget_gear_optional_background);
38     }
39 
40     /**
41      * Set gear icon click callback listener.
42      */
setOnGearClickListener(OnGearClickListener l)43     public void setOnGearClickListener(OnGearClickListener l) {
44         mOnGearClickListener = l;
45         notifyChanged();
46     }
47 
48     @Override
onBindViewHolder(PreferenceViewHolder holder)49     public void onBindViewHolder(PreferenceViewHolder holder) {
50         super.onBindViewHolder(holder);
51 
52         final View gear = holder.findViewById(R.id.settings_button);
53         gear.setOnClickListener(this);
54 
55         final boolean canSignIn = getWifiEntry().canSignIn();
56         holder.findViewById(R.id.settings_button_no_background).setVisibility(
57                 canSignIn ? View.INVISIBLE : View.VISIBLE);
58         gear.setVisibility(canSignIn ? View.VISIBLE : View.INVISIBLE);
59         holder.findViewById(com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider).setVisibility(
60                 canSignIn ? View.VISIBLE : View.INVISIBLE);
61     }
62 
63     @Override
onClick(View v)64     public void onClick(View v) {
65         if (v.getId() == R.id.settings_button) {
66             if (mOnGearClickListener != null) {
67                 mOnGearClickListener.onGearClick(this);
68             }
69         }
70     }
71 
72     /**
73      * Gear Icon click callback interface.
74      */
75     public interface OnGearClickListener {
76         /**
77          * The callback triggered when gear icon is clicked.
78          */
onGearClick(ConnectedWifiEntryPreference p)79         void onGearClick(ConnectedWifiEntryPreference p);
80     }
81 
82 }
83