Disable tethering when Data Saver mode is on.

BUG: 28313291
Change-Id: Idbedd440a1baa41f1407b32e86f5ae0080e60798
This commit is contained in:
Felipe Leme
2016-04-21 17:17:28 -07:00
parent 3a3d110a50
commit 5c09184e00
4 changed files with 62 additions and 11 deletions

View File

@@ -27,6 +27,7 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import com.android.settings.R;
import com.android.settings.datausage.DataSaverBackend;
import com.android.settingslib.TetherUtil;
import java.util.ArrayList;
@@ -35,6 +36,7 @@ public class WifiApEnabler {
private final Context mContext;
private final SwitchPreference mSwitch;
private final CharSequence mOriginalSummary;
private final DataSaverBackend mDataSaverBackend;
private WifiManager mWifiManager;
private final IntentFilter mIntentFilter;
@@ -70,14 +72,16 @@ public class WifiApEnabler {
}
};
public WifiApEnabler(Context context, SwitchPreference switchPreference) {
public WifiApEnabler(Context context, DataSaverBackend dataSaverBackend,
SwitchPreference switchPreference) {
mContext = context;
mDataSaverBackend = dataSaverBackend;
mSwitch = switchPreference;
mOriginalSummary = switchPreference.getSummary();
switchPreference.setPersistent(false);
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
mCm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
mCm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
mWifiRegexs = mCm.getTetherableWifiRegexs();
@@ -99,7 +103,7 @@ public class WifiApEnabler {
boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
if(!isAirplaneMode) {
mSwitch.setEnabled(true);
mSwitch.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
} else {
mSwitch.setSummary(mOriginalSummary);
mSwitch.setEnabled(false);
@@ -162,7 +166,7 @@ public class WifiApEnabler {
*/
mSwitch.setChecked(true);
/* Doesnt need the airplane check */
mSwitch.setEnabled(true);
mSwitch.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
break;
case WifiManager.WIFI_AP_STATE_DISABLING:
mSwitch.setSummary(R.string.wifi_tether_stopping);