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

Commit a8e0f315 authored by Ying Xu's avatar Ying Xu Committed by Android (Google) Code Review
Browse files

Merge changes I55b21a32,I4188007a into sc-dev

* changes:
  Explicitly opt-in to get location data from WifiInfo
  Fix the QS Tile issue
parents 51755dc6 2ed590c2
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -75,7 +75,8 @@ public class WifiStatusTracker {
            .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)
            .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
            .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR).build();
    private final NetworkCallback mNetworkCallback = new NetworkCallback() {
    private final NetworkCallback mNetworkCallback =
            new NetworkCallback(NetworkCallback.FLAG_INCLUDE_LOCATION_INFO) {
        @Override
        public void onAvailable(
                Network network, NetworkCapabilities networkCapabilities,
@@ -131,7 +132,8 @@ public class WifiStatusTracker {
            }
        }
    };
    private final NetworkCallback mDefaultNetworkCallback = new NetworkCallback() {
    private final NetworkCallback mDefaultNetworkCallback =
            new NetworkCallback(NetworkCallback.FLAG_INCLUDE_LOCATION_INFO) {
        @Override
        public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
            // network is now the default network, and its capabilities are nc.
+28 −22
Original line number Diff line number Diff line
@@ -445,11 +445,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
        final ArrayList<String> tiles = new ArrayList<String>();
        boolean addedDefault = false;
        Set<String> addedSpecs = new ArraySet<>();
        // TODO(b/174753536): Move it into the config file.
        if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
            tiles.add("internet");
            addedSpecs.add("internet");
        }
        for (String tile : tileList.split(",")) {
            tile = tile.trim();
            if (tile.isEmpty()) continue;
@@ -457,17 +452,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
                if (!addedDefault) {
                    List<String> defaultSpecs = getDefaultSpecs(context);
                    for (String spec : defaultSpecs) {
                        // TODO(b/174753536): Move it into the config file.
                        if (FeatureFlagUtils.isEnabled(
                                context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                            if (spec.equals("wifi") || spec.equals("cell")) {
                                continue;
                            }
                        } else {
                            if (spec.equals("internet")) {
                                continue;
                            }
                        }
                        if (!addedSpecs.contains(spec)) {
                            tiles.add(spec);
                            addedSpecs.add(spec);
@@ -476,15 +460,37 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
                    addedDefault = true;
                }
            } else {
                if (!addedSpecs.contains(tile)) {
                    tiles.add(tile);
                    addedSpecs.add(tile);
                }
            }
        }
        // TODO(b/174753536): Move it into the config file.
        // Only do the below hacking when at least one of the below tiles exist
        //   --InternetTile
        //   --WiFiTile
        //   --CellularTIle
        if (tiles.contains("internet") || tiles.contains("wifi") || tiles.contains("cell")) {
            if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                    if (tile.equals("wifi") || tile.equals("cell")) {
                        continue;
                if (!tiles.contains("internet")) {
                    tiles.add("internet");
                }
                if (tiles.contains("wifi")) {
                    tiles.remove("wifi");
                }
                if (!addedSpecs.contains(tile)) {
                    tiles.add(tile);
                    addedSpecs.add(tile);
                if (tiles.contains("cell")) {
                    tiles.remove("cell");
                }
            } else {
                if (tiles.contains("internet")) {
                    tiles.remove("internet");
                }
                if (!tiles.contains("wifi")) {
                    tiles.add("wifi");
                }
                if (!tiles.contains("cell")) {
                    tiles.add("cell");
                }
            }
        }
+26 −12
Original line number Diff line number Diff line
@@ -115,25 +115,39 @@ public class TileQueryHelper {

        final ArrayList<QSTile> tilesToAdd = new ArrayList<>();
        // TODO(b/174753536): Move it into the config file.
        // Only do the below hacking when at least one of the below tiles exist
        //   --InternetTile
        //   --WiFiTile
        //   --CellularTIle
        if (possibleTiles.contains("internet") || possibleTiles.contains("wifi")
                || possibleTiles.contains("cell")) {
            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                if (!possibleTiles.contains("internet")) {
                    possibleTiles.add("internet");
                }
                if (possibleTiles.contains("wifi")) {
                    possibleTiles.remove("wifi");
                }
                if (possibleTiles.contains("cell")) {
                    possibleTiles.remove("cell");
                }
            } else {
                if (possibleTiles.contains("internet")) {
                    possibleTiles.remove("internet");
                }
                if (!possibleTiles.contains("wifi")) {
                    possibleTiles.add("wifi");
                }
                if (!possibleTiles.contains("cell")) {
                    possibleTiles.add("cell");
                }
            }
        }
        for (String spec : possibleTiles) {
            // Only add current and stock tiles that can be created from QSFactoryImpl.
            // Do not include CustomTile. Those will be created by `addPackageTiles`.
            if (spec.startsWith(CustomTile.PREFIX)) continue;
            // TODO(b/174753536): Move it into the config file.
            if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
                if (spec.equals("wifi") || spec.equals("cell")) {
                    continue;
                }
            } else {
                if (spec.equals("internet")) {
                    continue;
                }
            }
            final QSTile tile = host.createTile(spec);
            if (tile == null) {
                continue;
+3 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkScoreManager;
@@ -307,7 +308,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
            mWifiManager.registerScanResultsCallback(mReceiverHandler::post, scanResultsCallback);
        }

        ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback(){
        NetworkCallback callback =
                new NetworkCallback(NetworkCallback.FLAG_INCLUDE_LOCATION_INFO){
            private Network mLastNetwork;
            private NetworkCapabilities mLastNetworkCapabilities;