Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 557dd9db authored by Chiachang Wang's avatar Chiachang Wang Committed by android-build-merger
Browse files

Merge "Get resource based on subId for multi-SIM" into qt-r1-dev

am: 559e7a3d

Change-Id: I721f78ae6d97ab2d686ca24988cd9cc93a88dc22
parents 97213902 559e7a3d
Loading
Loading
Loading
Loading
+26 −9
Original line number Diff line number Diff line
@@ -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);
    }

    /**