diff options
| author | Chiachang Wang <chiachangwang@google.com> | 2019-08-17 07:17:48 -0700 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-08-17 07:17:48 -0700 |
| commit | c3c41babff60be6e10afb5eaa50ff0eaa27990ef (patch) | |
| tree | 31fd903b1ba1ee34128db8275cbfdf90ce602b92 /core/java/android | |
| parent | a1c18a81afaa03354478e929e1b071193683e5fe (diff) | |
| parent | 559e7a3de164a9fef611179fe5fd820eb58ecacd (diff) | |
Merge "Get resource based on subId for multi-SIM" into qt-r1-dev
am: 559e7a3de1
Change-Id: I0183e42f4b116c6fc44147a9ab6ef7d800bd3687
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/net/util/MultinetworkPolicyTracker.java | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/core/java/android/net/util/MultinetworkPolicyTracker.java b/core/java/android/net/util/MultinetworkPolicyTracker.java index 30c5cd98b719..f7e494d830ac 100644 --- a/core/java/android/net/util/MultinetworkPolicyTracker.java +++ b/core/java/android/net/util/MultinetworkPolicyTracker.java @@ -16,28 +16,31 @@ package android.net.util; +import static android.provider.Settings.Global.NETWORK_AVOID_BAD_WIFI; +import static android.provider.Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE; + +import android.annotation.NonNull; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.res.Resources; import android.database.ContentObserver; -import android.net.ConnectivityManager; import android.net.Uri; import android.os.Handler; -import android.os.Message; import android.os.UserHandle; import android.provider.Settings; +import android.telephony.PhoneStateListener; +import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; import android.util.Slog; -import java.util.Arrays; -import java.util.List; - -import com.android.internal.annotations.VisibleForTesting; import com.android.internal.R; +import com.android.internal.annotations.VisibleForTesting; -import static android.provider.Settings.Global.NETWORK_AVOID_BAD_WIFI; -import static android.provider.Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE; +import java.util.Arrays; +import java.util.List; /** * A class to encapsulate management of the "Smart Networking" capability of @@ -69,6 +72,7 @@ public class MultinetworkPolicyTracker { private volatile boolean mAvoidBadWifi = true; private volatile int mMeteredMultipathPreference; + private int mActiveSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; public MultinetworkPolicyTracker(Context ctx, Handler handler) { this(ctx, handler, null); @@ -95,6 +99,14 @@ public class MultinetworkPolicyTracker { } }; + TelephonyManager.from(ctx).listen(new PhoneStateListener() { + @Override + public void onActiveDataSubscriptionIdChanged(int subId) { + mActiveSubId = subId; + reevaluate(); + } + }, PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE); + updateAvoidBadWifi(); updateMeteredMultipathPreference(); } @@ -131,7 +143,12 @@ public class MultinetworkPolicyTracker { * Whether the device or carrier configuration disables avoiding bad wifi by default. */ public boolean configRestrictsAvoidBadWifi() { - return (mContext.getResources().getInteger(R.integer.config_networkAvoidBadWifi) == 0); + return (getResourcesForActiveSubId().getInteger(R.integer.config_networkAvoidBadWifi) == 0); + } + + @NonNull + private Resources getResourcesForActiveSubId() { + return SubscriptionManager.getResourcesForSubId(mContext, mActiveSubId); } /** |
