From 1fcc0ddc855c0ffbbf41b351d8f63bf13a3beaa1 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Thu, 29 Oct 2015 16:17:27 -0700 Subject: wifi: don't disable AP on sub change if it's the same sub Ticket: OSS BACON-4349, CYNGNOS-1303, CYNGNOS-877 Change-Id: I653fdf40b1419c96e8d611b18d8d899cb5629f5c Signed-off-by: Roman Birg --- service/java/com/android/server/wifi/WifiController.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/service/java/com/android/server/wifi/WifiController.java b/service/java/com/android/server/wifi/WifiController.java index 71735f5..320db8d 100644 --- a/service/java/com/android/server/wifi/WifiController.java +++ b/service/java/com/android/server/wifi/WifiController.java @@ -36,6 +36,7 @@ import android.os.Message; import android.os.SystemClock; import android.os.WorkSource; import android.provider.Settings; +import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.util.Slog; @@ -631,13 +632,27 @@ class WifiController extends StateMachine { public void enter() { mSubListener = new SubscriptionManager.OnSubscriptionsChangedListener() { boolean firstChange = true; + SubscriptionInfo lastSub; @Override public void onSubscriptionsChanged() { + final SubscriptionInfo currentSub = SubscriptionManager.from(mContext) + .getDefaultDataSubscriptionInfo(); if (firstChange) { + lastSub = currentSub; // we always get a state change on registration. firstChange = false; return; } + if (currentSub == null) { + // don't disable when we're not sure yet. + return; + } + if (lastSub != null && currentSub.getSubscriptionId() + == lastSub.getSubscriptionId()) { + // don't disable if it's the same subscription + return; + } + lastSub = currentSub; Toast.makeText(mContext, com.android.internal.R.string.subscription_change_disabled_wifi_ap, Toast.LENGTH_SHORT).show(); -- cgit v1.2.3