OSDN Git Service

am ad38b60b: am 0a09b13c: am a6683e0f: Reset app preferences now resets all app ops.
[android-x86/packages-apps-Settings.git] / src / com / android / settings / location / LocationEnabler.java
1 /*
2  * Copyright (C) 2013 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.settings.location;
18
19 import android.content.BroadcastReceiver;
20 import android.content.Context;
21 import android.content.Intent;
22 import android.widget.CompoundButton;
23 import android.widget.Switch;
24
25 /**
26  * LocationEnabler is a helper to manage the Location on/off master switch
27  * preference. It turns on/off Location master switch and ensures the summary
28  * of the preference reflects the current state.
29  */
30 public final class LocationEnabler implements CompoundButton.OnCheckedChangeListener {
31     private final Context mContext;
32     private Switch mSwitch;
33     private boolean mValidListener;
34
35     // TODO(lifu): listens to the system configuration change, and modify the switch state whenever
36     // necessary.
37     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
38         @Override
39         public void onReceive(Context context, Intent intent) {
40         }
41     };
42
43     public LocationEnabler(Context context, Switch switch_) {
44         mContext = context;
45         mSwitch = switch_;
46         mValidListener = false;
47     }
48
49     public void resume() {
50         mSwitch.setOnCheckedChangeListener(this);
51         mValidListener = true;
52     }
53
54     public void pause() {
55         mSwitch.setOnCheckedChangeListener(null);
56         mValidListener = false;
57     }
58
59     @Override
60     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
61         // TODO(lifu): modify the actual location settings when the user flip the master switch.
62     }
63
64     private void setChecked(boolean isChecked) {
65         if (isChecked != mSwitch.isChecked()) {
66             // set listener to null so that that code below doesn't trigger onCheckedChanged()
67             if (mValidListener) {
68                 mSwitch.setOnCheckedChangeListener(null);
69             }
70             mSwitch.setChecked(isChecked);
71             if (mValidListener) {
72                 mSwitch.setOnCheckedChangeListener(this);
73             }
74         }
75     }
76 }