diff options
author | Roman Birg <roman@cyngn.com> | 2015-09-09 14:25:27 -0700 |
---|---|---|
committer | Roman Birg <roman@cyngn.com> | 2016-07-08 12:59:45 -0700 |
commit | 886ac4242086620bb467ec5ec2a9e1c7102e7d2b (patch) | |
tree | 05ffab7f7c147d3a0b1a3e931038471c848fbb12 /service | |
parent | a0ac5e1e9ba6ea6b907a44b899ca984adef25f25 (diff) | |
download | android_frameworks_opt_net_wifi-886ac4242086620bb467ec5ec2a9e1c7102e7d2b.tar.gz android_frameworks_opt_net_wifi-886ac4242086620bb467ec5ec2a9e1c7102e7d2b.tar.bz2 android_frameworks_opt_net_wifi-886ac4242086620bb467ec5ec2a9e1c7102e7d2b.zip |
wifi: disable access point on subscription change
On subscription changes, we should stop tethering to not incur
charges by accident.
Ticket: CYNGNOS-877
Change-Id: I27755f28e3a537c5ef61431817f22e98bc356c5d
Signed-off-by: Roman Birg <roman@cyngn.com>
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiController.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiController.java b/service/java/com/android/server/wifi/WifiController.java index 49d0c624a..71735f5da 100644 --- a/service/java/com/android/server/wifi/WifiController.java +++ b/service/java/com/android/server/wifi/WifiController.java @@ -36,8 +36,10 @@ import android.os.Message; import android.os.SystemClock; import android.os.WorkSource; import android.provider.Settings; +import android.telephony.SubscriptionManager; import android.util.Slog; +import android.widget.Toast; import com.android.internal.util.Protocol; import com.android.internal.util.State; import com.android.internal.util.StateMachine; @@ -622,6 +624,36 @@ class WifiController extends StateMachine { } class ApEnabledState extends State { + + private SubscriptionManager.OnSubscriptionsChangedListener mSubListener; + + @Override + public void enter() { + mSubListener = new SubscriptionManager.OnSubscriptionsChangedListener() { + boolean firstChange = true; + @Override + public void onSubscriptionsChanged() { + if (firstChange) { + // we always get a state change on registration. + firstChange = false; + return; + } + Toast.makeText(mContext, + com.android.internal.R.string.subscription_change_disabled_wifi_ap, + Toast.LENGTH_SHORT).show(); + log("disabling Wifi AP due to Subscription change"); + WifiController.this.obtainMessage(CMD_SET_AP, 0, 0, null).sendToTarget(); + } + }; + SubscriptionManager.from(mContext).addOnSubscriptionsChangedListener(mSubListener); + } + + @Override + public void exit() { + SubscriptionManager.from(mContext).removeOnSubscriptionsChangedListener(mSubListener); + mSubListener = null; + } + @Override public boolean processMessage(Message msg) { switch (msg.what) { |