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

Commit a451fd5e authored by Zoey Chen's avatar Zoey Chen Committed by Android (Google) Code Review
Browse files

Merge changes from topic "launch_wifi_details-sc-v2" into sc-v2-dev

* changes:
  [RESTRICT AUTOMERGE][Provider Model] Cherry-pick from ag/15243691, ag/15287619, ag/15287620 and ag/15270751
  [RESTRICT AUTOMERGE] [ProviderModel] Cherry-pick from master ag/15207286, ag/15216391 and ag/15205988
parents 2907230d c3abe499
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -20,10 +20,12 @@ import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_
import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.getMaxNetworkSelectionDisableReason;

import android.content.Context;
import android.content.Intent;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
import android.net.wifi.WifiInfo;
import android.os.Bundle;
import android.os.SystemClock;

import androidx.annotation.VisibleForTesting;
@@ -36,6 +38,23 @@ public class WifiUtils {

    private static final int INVALID_RSSI = -127;

    /**
     * The intent action shows network details settings to allow configuration of Wi-Fi.
     * <p>
     * In some cases, a matching Activity may not exist, so ensure you
     * safeguard against this.
     * <p>
     * Input: The calling package should put the chosen
     * com.android.wifitrackerlib.WifiEntry#getKey() to a string extra in the request bundle into
     * the {@link #KEY_CHOSEN_WIFIENTRY_KEY}.
     * <p>
     * Output: Nothing.
     */
    public static final String ACTION_WIFI_DETAILS_SETTINGS =
            "android.settings.WIFI_DETAILS_SETTINGS";
    public static final String KEY_CHOSEN_WIFIENTRY_KEY = "key_chosen_wifientry_key";
    public static final String EXTRA_SHOW_FRAGMENT_ARGUMENTS = ":settings:show_fragment_args";

    static final int[] WIFI_PIE = {
            com.android.internal.R.drawable.ic_wifi_signal_0,
            com.android.internal.R.drawable.ic_wifi_signal_1,
@@ -278,4 +297,17 @@ public class WifiUtils {
    public static boolean isMeteredOverridden(WifiConfiguration config) {
        return config.meteredOverride != WifiConfiguration.METERED_OVERRIDE_NONE;
    }

    /**
     * Returns the Intent for Wi-Fi network details settings.
     *
     * @param key The Wi-Fi entry key
     */
    public static Intent getWifiDetailsSettingsIntent(String key) {
        final Intent intent = new Intent(ACTION_WIFI_DETAILS_SETTINGS);
        final Bundle bundle = new Bundle();
        bundle.putString(KEY_CHOSEN_WIFIENTRY_KEY, key);
        intent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, bundle);
        return intent;
    }
}
+12 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.Intent;
import android.net.NetworkKey;
import android.net.RssiCurve;
import android.net.ScoredNetwork;
@@ -148,6 +149,17 @@ public class WifiUtilsTest {
        assertThat(WifiUtils.isMeteredOverridden(mWifiConfig)).isTrue();
    }

    @Test
    public void getWifiDetailsSettingsIntent_returnsCorrectValues() {
        final String key = "test_key";

        final Intent intent = WifiUtils.getWifiDetailsSettingsIntent(key);

        assertThat(intent.getAction()).isEqualTo(WifiUtils.ACTION_WIFI_DETAILS_SETTINGS);
        final Bundle bundle = intent.getBundleExtra(WifiUtils.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
        assertThat(bundle.getString(WifiUtils.KEY_CHOSEN_WIFIENTRY_KEY)).isEqualTo(key);
    }

    private static ArrayList<ScanResult> buildScanResultCache() {
        ArrayList<ScanResult> scanResults = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
+284 −269
Original line number Diff line number Diff line
@@ -27,15 +27,16 @@
        android:layout_width="match_parent"
        style="@style/Widget.SliceView.Panel"
        android:gravity="center_vertical|center_horizontal"
        android:layout_marginTop="20dp"
        android:layout_height="64dp"
        android:layout_marginTop="24dp"
        android:layout_marginBottom="24dp"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/internet_dialog_title"
            android:gravity="center_vertical|center_horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_height="32dp"
            android:textColor="?android:attr/textColorPrimary"
            android:fontFamily="google-sans"
            android:textSize="24sp"/>
@@ -44,7 +45,8 @@
            android:id="@+id/internet_dialog_subtitle"
            android:gravity="center_vertical|center_horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_height="20dp"
            android:layout_marginTop="8dp"
            android:ellipsize="end"
            android:maxLines="1"
            android:fontFamily="google-sans"
@@ -56,6 +58,24 @@
        android:layout_height="1dp"
        android:background="?android:attr/listDivider"/>

    <ProgressBar
        android:id="@+id/wifi_searching_progress"
        android:indeterminate="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="1dp"
        android:maxHeight="1dp"
        style="@*android:style/Widget.Material.ProgressBar.Horizontal"/>

    <androidx.core.widget.NestedScrollView
        android:id="@+id/scroll_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:id="@+id/scroll_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <LinearLayout
                android:id="@+id/internet_list"
                android:layout_width="match_parent"
@@ -69,18 +89,18 @@
                    android:clickable="true"
                    android:focusable="true"
                    android:background="?android:attr/selectableItemBackground"
            android:gravity="center_vertical|center_horizontal"
                    android:layout_gravity="center_vertical|start"
                    android:orientation="horizontal"
                    android:layout_marginRight="@dimen/settingslib_switchbar_margin"
                    android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
                    android:layout_marginTop="4dp"
                    android:layout_marginBottom="4dp"
            android:paddingStart="@dimen/settingslib_switchbar_padding_left"
                    android:paddingStart="19dp"
                    android:paddingEnd="@dimen/settingslib_switchbar_padding_right">

                    <FrameLayout
                android:layout_width="36dp"
                android:layout_height="36dp"
                        android:layout_width="24dp"
                        android:layout_height="24dp"
                        android:clickable="false"
                        android:layout_gravity="center_vertical|start">
                        <ImageView
@@ -95,12 +115,12 @@
                        android:id="@+id/mobile_network_list"
                        android:orientation="vertical"
                        android:clickable="false"
                android:layout_marginLeft="3dp"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:gravity="start|center_vertical">
                        <TextView
                            android:id="@+id/mobile_title"
                            android:layout_marginLeft="17dp"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_vertical"
@@ -111,6 +131,7 @@
                            android:fontFamily="google-sans"/>
                        <TextView
                            android:id="@+id/mobile_summary"
                            android:layout_marginLeft="17dp"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_vertical"
@@ -123,7 +144,8 @@

                    <FrameLayout
                        android:layout_width="48dp"
                android:layout_height="48dp">
                        android:layout_height="48dp"
                        android:layout_gravity="end|center_vertical">
                        <Switch
                            android:id="@+id/mobile_toggle"
                            android:layout_gravity="center"
@@ -136,15 +158,6 @@

                </LinearLayout>

        <ProgressBar
            android:id="@+id/wifi_searching_progress"
            android:indeterminate="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="1dp"
            android:maxHeight="1dp"
            style="@*android:style/Widget.Material.ProgressBar.Horizontal"/>

                <LinearLayout
                    android:id="@+id/turn_on_wifi_layout"
                    android:layout_width="match_parent"
@@ -155,6 +168,7 @@
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:layout_marginRight="@dimen/settingslib_switchbar_margin"
                    android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
                    android:paddingStart="@dimen/settingslib_switchbar_padding_left"
@@ -203,7 +217,6 @@
                    android:visibility="gone"
                    android:background="?android:attr/selectableItemBackground"
                    android:orientation="horizontal"
            android:layout_marginTop="8dp"
                    android:layout_marginRight="@dimen/settingslib_switchbar_margin"
                    android:layout_marginLeft="@dimen/settingslib_switchbar_margin"
                    android:paddingStart="@dimen/settingslib_switchbar_padding_left"
@@ -349,3 +362,5 @@
                    android:fontFamily="google-sans"/>
            </LinearLayout>
        </LinearLayout>
    </androidx.core.widget.NestedScrollView>
</LinearLayout>
+6 −3
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.AccessPointController;
import com.android.systemui.statusbar.policy.NetworkController.IconState;
import com.android.systemui.statusbar.policy.NetworkController.MobileDataIndicators;
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
@@ -69,6 +70,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
    private static final Intent WIFI_SETTINGS = new Intent(Settings.ACTION_WIFI_SETTINGS);

    protected final NetworkController mController;
    private final AccessPointController mAccessPointController;
    private final DataUsageController mDataController;
    // The last updated tile state, 0: mobile, 1: wifi, 2: ethernet.
    private int mLastTileState = -1;
@@ -88,6 +90,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
            ActivityStarter activityStarter,
            QSLogger qsLogger,
            NetworkController networkController,
            AccessPointController accessPointController,
            InternetDialogFactory internetDialogFactory
    ) {
        super(host, backgroundLooper, mainHandler, falsingManager, metricsLogger,
@@ -95,6 +98,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
        mInternetDialogFactory = internetDialogFactory;
        mHandler = mainHandler;
        mController = networkController;
        mAccessPointController = accessPointController;
        mDataController = mController.getMobileDataController();
        mController.observe(getLifecycle(), mSignalCallback);
    }
@@ -118,9 +122,8 @@ public class InternetTile extends QSTileImpl<SignalState> {

    @Override
    protected void handleClick(@Nullable View view) {
        mHandler.post(() -> {
            mInternetDialogFactory.create(true);
        });
        boolean canConfigMobileData = mAccessPointController.canConfigMobileData();
        mHandler.post(() -> mInternetDialogFactory.create(true, canConfigMobileData));
    }

    @Override
+1 −4
Original line number Diff line number Diff line
@@ -174,10 +174,7 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern
                    Html.fromHtml(wifiEntry.getSummary(false), Html.FROM_HTML_MODE_LEGACY));

            mWifiListLayout.setOnClickListener(v -> {
                if (!isOpenNetwork(security)) {
                    // Popup Wi-Fi password dialog condition:
                    // 1. The access point is a non-open network.
                    // 2. The Wi-Fi connection is not connected with this access point.
                if (wifiEntry.shouldEditBeforeConnect()) {
                    final Intent intent = new Intent(ACTION_WIFI_DIALOG);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Loading