/** * Copyright (c) 2020LEAP Encryption Access Project and contributers * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package se.leap.bitmaskclient.tethering; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.wifi.WifiManager; import android.util.Log; public class TetheringBroadcastReceiver extends BroadcastReceiver { private static final String TAG = TetheringBroadcastReceiver.class.getSimpleName(); @Override public void onReceive(Context context, Intent intent) { if ("android.net.wifi.WIFI_AP_STATE_CHANGED".equals(intent.getAction())) { Log.d(TAG, "TETHERING WIFI_AP_STATE_CHANGED"); int apState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0); if (WifiHotspotState.WIFI_AP_STATE_ENABLED.ordinal() == apState % 10) { if (!TetheringObservable.getInstance().isWifiTetheringEnabled()) { TetheringObservable.setWifiTethering(true); } } else { if (TetheringObservable.getInstance().isWifiTetheringEnabled()) { TetheringObservable.setWifiTethering(false); } } } else if ("android.net.conn.TETHER_STATE_CHANGED".equals(intent.getAction())) { Log.d(TAG, "TETHERING TETHER_STATE_CHANGED"); TetheringStateManager.updateUsbTetheringState(); TetheringStateManager.updateBluetoothTetheringState(); TetheringStateManager.updateWifiTetheringState(); } } }