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

Commit 37d67958 authored by Jason Zhang's avatar Jason Zhang Committed by Android (Google) Code Review
Browse files

Merge "Add "Add network" button in Internet detailed view" into main

parents eecaaf86 9f2e67f7
Loading
Loading
Loading
Loading
+79 −25
Original line number Diff line number Diff line
@@ -449,10 +449,63 @@
                    app:layout_constraintTop_toTopOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>


            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/wifi_buttons_container"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/dialog_bottom_padding">

                <LinearLayout
                    android:id="@+id/add_network_button"
                    style="@style/InternetDialog.Network"
                    android:layout_height="@dimen/tile_details_button_row_height"
                    android:layout_width="0dp"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintEnd_toStartOf="@id/share_wifi_button"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    android:background="@drawable/settingslib_entry_bg_off"
                    android:gravity="center"
                    android:visibility="gone">

                    <FrameLayout
                        android:layout_width="@dimen/tile_details_button_size"
                        android:layout_height="@dimen/tile_details_button_size"
                        android:clickable="false">

                        <ImageView
                            android:contentDescription="@string/add_network_button_text"
                            android:src="@drawable/ic_add"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:tint="@androidprv:color/materialColorOnSurface" />
                    </FrameLayout>

                    <FrameLayout
                        android:clickable="false"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/internet_dialog_network_layout_margin">

                        <TextView
                            android:text="@string/add_network_button_text"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textAppearance="@style/TextAppearance.TileDetailsEntryTitle" />
                    </FrameLayout>
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/share_wifi_button"
                    style="@style/InternetDialog.Network"
                    android:layout_height="@dimen/tile_details_button_row_height"
                    android:layout_width="0dp"
                    app:layout_constrainedWidth="true"
                    app:layout_constraintStart_toEndOf="@id/add_network_button"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintBottom_toBottomOf="parent"
                    android:background="@drawable/settingslib_entry_bg_off"
                    android:gravity="center">

@@ -482,6 +535,7 @@
                            android:textAppearance="@style/TextAppearance.TileDetailsEntryTitle" />
                    </FrameLayout>
                </LinearLayout>
            </androidx.constraintlayout.widget.ConstraintLayout>

        </LinearLayout>
    </androidx.core.widget.NestedScrollView>
+3 −0
Original line number Diff line number Diff line
@@ -168,6 +168,9 @@
    <!-- Button label to share wifi [CHAR_LIMIT=20] -->
    <string name="share_wifi_button_text">Share Wi\u2011Fi</string>

    <!-- Button label to add a new network [CHAR_LIMIT=20] -->
    <string name="add_network_button_text">Add network</string>

    <!-- Title of confirmation dialog for wireless debugging [CHAR LIMIT=NONE] -->
    <string name="wifi_debugging_title">Allow wireless debugging on this network?</string>

+23 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.qs.tiles.dialog
import android.app.AlertDialog
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Canvas
import android.graphics.Rect
import android.graphics.drawable.Drawable
@@ -58,10 +59,12 @@ import com.android.internal.logging.UiEventLogger
import com.android.settingslib.satellite.SatelliteDialogUtils.TYPE_IS_WIFI
import com.android.settingslib.satellite.SatelliteDialogUtils.mayStartSatelliteWarningDialog
import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils
import com.android.settingslib.wifi.WifiUtils
import com.android.systemui.Prefs
import com.android.systemui.accessibility.floatingmenu.AnnotationLinkSpan
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.qs.flags.QsWifiConfig
import com.android.systemui.res.R
import com.android.systemui.statusbar.phone.SystemUIDialog
import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -122,6 +125,7 @@ constructor(
    private lateinit var mobileDataToggle: MaterialSwitch
    private lateinit var wifiToggle: MaterialSwitch
    private lateinit var shareWifiButton: LinearLayout
    private lateinit var addNetworkButton: LinearLayout
    private lateinit var airplaneModeButton: Button
    private var alertDialog: AlertDialog? = null
    private var canChangeWifiState = false
@@ -243,6 +247,19 @@ constructor(
            }
        }

        // Add network
        addNetworkButton = contentView.requireViewById(R.id.add_network_button)
        if (QsWifiConfig.isEnabled) {
            addNetworkButton.setOnClickListener {
                val intent =
                    WifiUtils.getWifiDialogIntent(null, true /* connectForCaller */).apply {
                        addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                        addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
                    }
                internetDetailsContentController.startActivityForDialog(intent)
            }
        }

        // Airplane mode
        airplaneModeButton = contentView.requireViewById(R.id.apm_button)
        airplaneModeButton.setOnClickListener {
@@ -432,6 +449,7 @@ constructor(
        wifiRecyclerView.visibility = View.GONE
        seeAllLayout.visibility = View.GONE
        shareWifiButton.visibility = View.GONE
        addNetworkButton.visibility = View.GONE
    }

    private fun setProgressBarVisible(visible: Boolean) {
@@ -744,8 +762,12 @@ constructor(
        if (!internetContent.isWifiEnabled || internetContent.isDeviceLocked) {
            wifiRecyclerView.visibility = View.GONE
            seeAllLayout.visibility = View.GONE
            addNetworkButton.visibility = View.GONE
            return
        }
        if (QsWifiConfig.isEnabled) {
            addNetworkButton.visibility = View.VISIBLE
        }
        val wifiListMaxCount = getWifiListMaxCount()
        if (adapter.itemCount > wifiListMaxCount) {
            hasMoreWifiEntries = true
@@ -840,6 +862,7 @@ constructor(
        wifiToggle.setOnCheckedChangeListener(null)
        mobileDataToggle.setOnCheckedChangeListener(null)
        shareWifiButton.setOnClickListener(null)
        addNetworkButton.setOnClickListener(null)
        airplaneModeButton.setOnClickListener(null)
        internetDetailsContentController.onStop()
    }
+48 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.qs.tiles.dialog
import android.content.Intent
import android.os.Handler
import android.os.fakeExecutorHandler
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
@@ -90,6 +91,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
    private var airplaneModeSummaryText: TextView? = null
    private var mockitoSession: MockitoSession? = null
    private var sharedWifiButton: LinearLayout? = null
    private var addNetworkButton: LinearLayout? = null
    private lateinit var contentView: View

    @Before
@@ -152,6 +154,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
        wifiScanNotify = contentView.requireViewById(R.id.wifi_scan_notify_layout)
        airplaneModeSummaryText = contentView.requireViewById(R.id.airplane_mode_summary)
        sharedWifiButton = contentView.requireViewById(R.id.share_wifi_button)
        addNetworkButton = contentView.requireViewById(R.id.add_network_button)
    }

    @After
@@ -406,6 +409,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            val secondaryLayout =
                contentView.requireViewById<LinearLayout>(R.id.secondary_mobile_network_layout)
            assertThat(secondaryLayout.visibility).isEqualTo(View.GONE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

@@ -422,6 +426,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            internetDetailsContentManager.lifecycleOwner!!
        ) {
            assertThat(connectedWifi!!.visibility).isEqualTo(View.GONE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

@@ -441,6 +446,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            assertThat(wifiList!!.visibility).isEqualTo(View.VISIBLE)
            verify(internetAdapter).setMaxEntriesCount(3)
            assertThat(seeAll!!.visibility).isEqualTo(View.INVISIBLE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

@@ -460,6 +466,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            assertThat(wifiList!!.visibility).isEqualTo(View.VISIBLE)
            verify(internetAdapter).setMaxEntriesCount(3)
            assertThat(seeAll!!.visibility).isEqualTo(View.INVISIBLE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

@@ -478,6 +485,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            assertThat(wifiList!!.visibility).isEqualTo(View.VISIBLE)
            verify(internetAdapter).setMaxEntriesCount(2)
            assertThat(seeAll!!.visibility).isEqualTo(View.INVISIBLE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

@@ -498,6 +506,7 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            assertThat(wifiList!!.visibility).isEqualTo(View.VISIBLE)
            verify(internetAdapter).setMaxEntriesCount(3)
            assertThat(seeAll!!.visibility).isEqualTo(View.VISIBLE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

@@ -517,10 +526,12 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            assertThat(wifiList!!.visibility).isEqualTo(View.VISIBLE)
            verify(internetAdapter).setMaxEntriesCount(2)
            assertThat(seeAll!!.visibility).isEqualTo(View.VISIBLE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

    @Test
    @EnableFlags(Flags.FLAG_QS_WIFI_CONFIG)
    fun updateContent_deviceLockedAndNoConnectedWifi_showWifiToggle() {
        // The preconditions WiFi entries are already in setUp()
        whenever(internetDetailsContentController.isDeviceLocked).thenReturn(true)
@@ -538,10 +549,12 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            assertThat(connectedWifi!!.visibility).isEqualTo(View.GONE)
            assertThat(wifiList!!.visibility).isEqualTo(View.GONE)
            assertThat(seeAll!!.visibility).isEqualTo(View.GONE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

    @Test
    @EnableFlags(Flags.FLAG_QS_WIFI_CONFIG)
    fun updateContent_deviceLockedAndHasConnectedWifi_showWifiToggleWithBackground() {
        // The preconditions WiFi ON and WiFi entries are already in setUp()
        whenever(internetDetailsContentController.isDeviceLocked).thenReturn(true)
@@ -558,6 +571,41 @@ class InternetDetailsContentManagerTest : SysuiTestCase() {
            assertThat(connectedWifi!!.visibility).isEqualTo(View.GONE)
            assertThat(wifiList!!.visibility).isEqualTo(View.GONE)
            assertThat(seeAll!!.visibility).isEqualTo(View.GONE)
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }

    @Test
    @EnableFlags(Flags.FLAG_QS_WIFI_CONFIG)
    fun updateContent_showAddNetworkButton() {
        // The preconditions WiFi ON and WiFi entries are already in setUp()
        internetDetailsContentManager.wifiEntriesCount =
            InternetDetailsContentController.MAX_WIFI_ENTRY_COUNT - 1
        internetDetailsContentManager.hasMoreWifiEntries = true
        internetDetailsContentManager.updateContent(false)
        bgExecutor.runAllReady()

        internetDetailsContentManager.internetContentData.observe(
            internetDetailsContentManager.lifecycleOwner!!
        ) {
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.VISIBLE)
        }
    }

    @Test
    @DisableFlags(Flags.FLAG_QS_WIFI_CONFIG)
    fun updateContent_notShowAddNetworkButtonWhenFlagDisabled() {
        // The preconditions WiFi ON and WiFi entries are already in setUp()
        internetDetailsContentManager.wifiEntriesCount =
            InternetDetailsContentController.MAX_WIFI_ENTRY_COUNT - 1
        internetDetailsContentManager.hasMoreWifiEntries = true
        internetDetailsContentManager.updateContent(false)
        bgExecutor.runAllReady()

        internetDetailsContentManager.internetContentData.observe(
            internetDetailsContentManager.lifecycleOwner!!
        ) {
            assertThat(addNetworkButton!!.visibility).isEqualTo(View.GONE)
        }
    }