Merge "Get resource based on subId for multi-SIM" am: 55752cf8d4 am: 85ff8a6902 am: 2b7f2fbb5b am: 115b77593c
am: 953f3a62ce Change-Id: Ief32e4d6376062ba6e86472e39d84681f562980a
This commit is contained in:
@@ -16,29 +16,32 @@
|
|||||||
|
|
||||||
package android.net.util;
|
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.BroadcastReceiver;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
import android.telephony.PhoneStateListener;
|
||||||
|
import android.telephony.SubscriptionManager;
|
||||||
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
|
||||||
|
import com.android.internal.R;
|
||||||
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
|
||||||
import com.android.internal.R;
|
|
||||||
|
|
||||||
import static android.provider.Settings.Global.NETWORK_AVOID_BAD_WIFI;
|
|
||||||
import static android.provider.Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class to encapsulate management of the "Smart Networking" capability of
|
* A class to encapsulate management of the "Smart Networking" capability of
|
||||||
* avoiding bad Wi-Fi when, for example upstream connectivity is lost or
|
* avoiding bad Wi-Fi when, for example upstream connectivity is lost or
|
||||||
@@ -69,6 +72,7 @@ public class MultinetworkPolicyTracker {
|
|||||||
|
|
||||||
private volatile boolean mAvoidBadWifi = true;
|
private volatile boolean mAvoidBadWifi = true;
|
||||||
private volatile int mMeteredMultipathPreference;
|
private volatile int mMeteredMultipathPreference;
|
||||||
|
private int mActiveSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
|
|
||||||
public MultinetworkPolicyTracker(Context ctx, Handler handler) {
|
public MultinetworkPolicyTracker(Context ctx, Handler handler) {
|
||||||
this(ctx, handler, null);
|
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();
|
updateAvoidBadWifi();
|
||||||
updateMeteredMultipathPreference();
|
updateMeteredMultipathPreference();
|
||||||
}
|
}
|
||||||
@@ -131,7 +143,12 @@ public class MultinetworkPolicyTracker {
|
|||||||
* Whether the device or carrier configuration disables avoiding bad wifi by default.
|
* Whether the device or carrier configuration disables avoiding bad wifi by default.
|
||||||
*/
|
*/
|
||||||
public boolean configRestrictsAvoidBadWifi() {
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user