Add ethernet interface details settings subpage

Adds a click listener to the ethernet interface row and displays a
settings subpage with interface connection status.

Flag: com.android.settings.connectivity.ethernet_settings

Test: atest SettingsRoboTests:
com.android.settings.network.NetworkProviderSettingsTest

Change-Id: Id64ce3657b47dd4ca70d425dd3d13227c8468d2c
This commit is contained in:
Nikhil Nayunigari
2025-02-03 05:10:55 +00:00
parent 0afd3f64a5
commit 487a4774d1
6 changed files with 292 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
/*
* Copyright (C) 2025 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.network.ethernet
import android.content.Context
import android.content.ContextWrapper
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class EthernetInterfaceDetailsControllerTest {
private val ethernetInterfaceDetailsFragment = EthernetInterfaceDetailsFragment()
private val context: Context =
object : ContextWrapper(ApplicationProvider.getApplicationContext()) {}
private val ethernetInterfaceDetailsController =
EthernetInterfaceDetailsController(context, ethernetInterfaceDetailsFragment, "eth0")
@Test
fun isAvailable_ShouldReturnTrue() {
assertTrue(ethernetInterfaceDetailsController.isAvailable())
}
@Test
fun getPreferencKey_shouldReturnExpectedKey() {
assertEquals(ethernetInterfaceDetailsController.getPreferenceKey(), "ethernet_details")
}
}

View File

@@ -0,0 +1,69 @@
/*
* Copyright (C) 2025 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.network.ethernet
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.ContextWrapper
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
import com.android.settingslib.core.AbstractPreferenceController
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class EthernetInterfaceDetailsFragmentTest {
private val ethernetInterfaceDetailsFragment = EthernetInterfaceDetailsFragment()
private val context: Context =
object : ContextWrapper(ApplicationProvider.getApplicationContext()) {}
@Test
fun getMetricsCategory_shouldReturnEthernetSettings() {
assertEquals(
ethernetInterfaceDetailsFragment.getMetricsCategory(),
SettingsEnums.ETHERNET_SETTINGS,
)
}
@Test
fun getPreferenceScreenId_shouldReturnExpectedResource() {
assertEquals(
ethernetInterfaceDetailsFragment.getPreferenceScreenResId(),
R.xml.ethernet_interface_details,
)
}
@Test
fun getLogTag_shouldReturnClassName() {
assertEquals(
ethernetInterfaceDetailsFragment.getLogTag(),
"EthernetInterfaceDetailsFragment",
)
}
@Test
fun createPreferenceController_shouldReturnDetailController() {
val preferenceController =
ethernetInterfaceDetailsFragment.createPreferenceControllers(context)
assertEquals(1, preferenceController.size)
assertTrue(preferenceController[0] is AbstractPreferenceController)
}
}