2 * Copyright (C) 2013 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package com.android.settings.location;
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;
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.
30 public final class LocationEnabler implements CompoundButton.OnCheckedChangeListener {
31 private final Context mContext;
32 private Switch mSwitch;
33 private boolean mValidListener;
35 // TODO(lifu): listens to the system configuration change, and modify the switch state whenever
37 private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
39 public void onReceive(Context context, Intent intent) {
43 public LocationEnabler(Context context, Switch switch_) {
46 mValidListener = false;
49 public void resume() {
50 mSwitch.setOnCheckedChangeListener(this);
51 mValidListener = true;
55 mSwitch.setOnCheckedChangeListener(null);
56 mValidListener = false;
60 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
61 // TODO(lifu): modify the actual location settings when the user flip the master switch.
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()
68 mSwitch.setOnCheckedChangeListener(null);
70 mSwitch.setChecked(isChecked);
72 mSwitch.setOnCheckedChangeListener(this);