summaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2015-09-09 14:25:27 -0700
committerRoman Birg <roman@cyngn.com>2016-07-08 12:59:45 -0700
commit886ac4242086620bb467ec5ec2a9e1c7102e7d2b (patch)
tree05ffab7f7c147d3a0b1a3e931038471c848fbb12 /service
parenta0ac5e1e9ba6ea6b907a44b899ca984adef25f25 (diff)
downloadandroid_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.java32
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) {