Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2010 The Android Open Source Project
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.android.settings.wifi;
 
 
 
 
 public class WifiEnabler implements CompoundButton.OnCheckedChangeListener  {
     private final Context mContext;
     private Switch mSwitch;
     private AtomicBoolean mConnected = new AtomicBoolean(false);
 
     private final WifiManager mWifiManager;
     private boolean mStateMachineEvent;
     private final IntentFilter mIntentFilter;
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context contextIntent intent) {
             String action = intent.getAction();
             if (..equals(action)) {
                 handleWifiStateChanged(intent.getIntExtra(
                         ..));
             } else if (..equals(action)) {
                 if (!.get()) {
                     handleStateChanged(WifiInfo.getDetailedStateOf((SupplicantState)
                             intent.getParcelableExtra(.)));
                 }
             } else if (..equals(action)) {
                 NetworkInfo info = (NetworkInfointent.getParcelableExtra(
                         .);
                 .set(info.isConnected());
                 handleStateChanged(info.getDetailedState());
             }
         }
     };
 
     public WifiEnabler(Context contextSwitch switch_) {
          = context;
          = switch_;
 
         // The order matters! We really should not depend on this. :(
     }
 
     public void resume() {
         // Wi-Fi state is sticky, so just let the receiver update UI
         .setOnCheckedChangeListener(this);
     }
 
     public void pause() {
         .setOnCheckedChangeListener(null);
     }
 
     public void setSwitch(Switch switch_) {
         if ( == switch_return;
         .setOnCheckedChangeListener(null);
          = switch_;
         .setOnCheckedChangeListener(this);
 
         final int wifiState = .getWifiState();
         boolean isEnabled = wifiState == .;
         boolean isDisabled = wifiState == .;
         .setChecked(isEnabled);
         .setEnabled(isEnabled || isDisabled);
     }
    public void onCheckedChanged(CompoundButton buttonViewboolean isChecked) {
        //Do nothing if called as a result of a state machine event
        if () {
            return;
        }
        // Show toast message if Wi-Fi is not allowed in airplane mode
        if (isChecked && !WirelessSettings.isRadioAllowed(..)) {
            // Reset switch to off. No infinite check/listenenr loop.
            buttonView.setChecked(false);
        }
        // Disable tethering if enabling Wifi
        int wifiApState = .getWifiApState();
        if (isChecked && ((wifiApState == .) ||
                (wifiApState == .))) {
            .setWifiApEnabled(nullfalse);
        }
        if (.setWifiEnabled(isChecked)) {
            // Intent has been taken into account, disable until new state is active
            .setEnabled(false);
        } else {
            // Error
            Toast.makeText(...).show();
        }
    }
    private void handleWifiStateChanged(int state) {
        switch (state) {
            case .:
                .setEnabled(false);
                break;
            case .:
                setSwitchChecked(true);
                .setEnabled(true);
                break;
            case .:
                .setEnabled(false);
                break;
            case .:
                setSwitchChecked(false);
                .setEnabled(true);
                break;
            default:
                setSwitchChecked(false);
                .setEnabled(true);
                break;
        }
    }
    private void setSwitchChecked(boolean checked) {
        if (checked != .isChecked()) {
             = true;
            .setChecked(checked);
             = false;
        }
    }
    private void handleStateChanged(@SuppressWarnings("unused"NetworkInfo.DetailedState state) {
        // After the refactoring from a CheckBoxPreference to a Switch, this method is useless since
        // there is nowhere to display a summary.
        // This code is kept in case a future change re-introduces an associated text.
        /*
        // WifiInfo is valid if and only if Wi-Fi is enabled.
        // Here we use the state of the switch as an optimization.
        if (state != null && mSwitch.isChecked()) {
            WifiInfo info = mWifiManager.getConnectionInfo();
            if (info != null) {
                //setSummary(Summary.get(mContext, info.getSSID(), state));
            }
        }
        */
    }
New to GrepCode? Check out our FAQ X