Hide Memory usage UI fields if flag is enabled
This change updates the Memory use UI in developer settings to hide
memory fields by default if the AppProfiler PSS deprecation flag is
enabled. A toggle is provided to resume PSS profiling and reinstate the
memory fields, and shows a dialog to reboot if the toggle is updated.
The summary for the "Memory" button in developer settings will show
"Memory profiling disabled" instead of "Avg X GB of Y memory used" if
PSS profiling is not enabled.
Test: With the flag enabled, flash and verify that:
- The memory fields are hidden by default, and the summary shows
the expected "Memory profiling disabled" text
- Clicking the toggle shows the reboot dialog, which will
correctly change the setting and reboot if accepted, and keep
the setting and not reboot if denied
- Check that AppProfiler correctly profiles PSS or RSS based on
the state of the toggle, which persists across reboots
- Included UI test for Memory page elements based on flag value.
Bug: 296454553
Change-Id: Ie21791502445a321446cb8110e5800089f47ac58
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (C) 2023 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.ui
|
||||
|
||||
import android.os.Flags
|
||||
import android.platform.test.annotations.RequiresFlagsDisabled
|
||||
import android.platform.test.annotations.RequiresFlagsEnabled
|
||||
import android.provider.Settings
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.filters.SmallTest
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.By
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.clickObject
|
||||
import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
@SmallTest
|
||||
class MemorySettingsTest {
|
||||
private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
device.startMainActivityFromHomeScreen(Settings.ACTION_DEVICE_INFO_SETTINGS)
|
||||
device.assertHasTexts(listOf(BUILD_NUMBER))
|
||||
repeat(7) { // Enable development mode
|
||||
device.clickObject(By.text(BUILD_NUMBER))
|
||||
}
|
||||
device.startMainActivityFromHomeScreen(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)
|
||||
device.clickObject(By.text(MEMORY_PAGE))
|
||||
}
|
||||
|
||||
@Test
|
||||
@RequiresFlagsDisabled(Flags.FLAG_REMOVE_APP_PROFILER_PSS_COLLECTION)
|
||||
fun memoryPageIfPssFlagDisabled() {
|
||||
device.assertHasTexts(ON_SCREEN_TEXTS_DEFAULT)
|
||||
}
|
||||
|
||||
@Test
|
||||
@RequiresFlagsEnabled(Flags.FLAG_REMOVE_APP_PROFILER_PSS_COLLECTION)
|
||||
fun memoryPageIfPssFlagEnabled() {
|
||||
device.assertHasTexts(ON_SCREEN_TEXTS_PSS_PROFILING_DISABLED)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
private const val BUILD_NUMBER = "Build number"
|
||||
private const val MEMORY_PAGE = "Memory"
|
||||
val ON_SCREEN_TEXTS_DEFAULT = listOf(
|
||||
"Performance",
|
||||
"Total memory",
|
||||
"Average used (%)",
|
||||
"Free",
|
||||
)
|
||||
val ON_SCREEN_TEXTS_PSS_PROFILING_DISABLED = listOf(
|
||||
"Enable memory usage profiling",
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user