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

Commit d76c12f6 authored by ykhung's avatar ykhung
Browse files

Include new "dex2oat64" process to map into App Optimization name

Bug: 191991503
Test: make SettingsRoboTests
Change-Id: Ib392ed3adf7fe37fdaf73076dd1c3cd8361468eb
parent 2ceb52ea
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -572,7 +572,8 @@ public class BatteryEntry {
            name = context.getResources().getString(R.string.process_kernel_label);
        } else if ("mediaserver".equals(name)) {
            name = context.getResources().getString(R.string.process_mediaserver_label);
        } else if ("dex2oat".equals(name)) {
        } else if ("dex2oat".equals(name) || "dex2oat32".equals(name) ||
                "dex2oat64".equals(name)) {
            name = context.getResources().getString(R.string.process_dex2oat_label);
        }
        return new NameAndIcon(name, icon, 0 /* iconId */);
+77 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.content.Context;
@@ -36,6 +37,7 @@ import android.os.UserBatteryConsumer;
import android.os.UserManager;

import com.android.settings.R;
import com.android.settings.fuelgauge.BatteryEntry.NameAndIcon;

import org.junit.Before;
import org.junit.Rule;
@@ -64,6 +66,7 @@ public class BatteryEntryTest {

    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
    private Context mMockContext;
    private Context mContext;
    @Mock private Handler mockHandler;
    @Mock private PackageManager mockPackageManager;
    @Mock private UserManager mockUserManager;
@@ -71,6 +74,7 @@ public class BatteryEntryTest {

    @Before
    public void stubContextToReturnMockPackageManager() {
        mContext = spy(RuntimeEnvironment.application);
        when(mMockContext.getPackageManager()).thenReturn(mockPackageManager);
    }

@@ -248,4 +252,77 @@ public class BatteryEntryTest {
        final String key = entry.getKey();
        assertThat(key).isEqualTo("U|2");
    }

    @Test
    public void getNameAndIconFromUserId_nullUserInfo_returnDefaultNameAndIcon() {
        final int userId = 1001;
        doReturn(mockUserManager).when(mContext).getSystemService(UserManager.class);
        doReturn(null).when(mockUserManager).getUserInfo(userId);

        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUserId(
                mContext, userId);
        assertThat(nameAndIcon.name).isEqualTo(getString(
                R.string.running_process_item_removed_user_label));
        assertThat(nameAndIcon.icon).isNull();
    }

    @Test
    public void getNameAndIconFromUid_rerturnExpectedName() {
        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
                mContext, /* name */ null, /* uid */ 0);
        assertThat(nameAndIcon.name).isEqualTo(getString(R.string.process_kernel_label));

        assertNameAndIcon("mediaserver", R.string.process_mediaserver_label);
        assertNameAndIcon("dex2oat32", R.string.process_dex2oat_label);
        assertNameAndIcon("dex2oat64", R.string.process_dex2oat_label);
        assertNameAndIcon("dex2oat", R.string.process_dex2oat_label);
    }

    @Test
    public void getNameAndIconFromPowerComponent_rerturnExpectedNameAndIcon() {
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
                R.string.ambient_display_screen_title,
                R.drawable.ic_settings_aod);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
                R.string.power_bluetooth,
                com.android.internal.R.drawable.ic_settings_bluetooth);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_CAMERA,
                R.string.power_camera,
                R.drawable.ic_settings_camera);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
                R.string.power_cell,
                R.drawable.ic_cellular_1_bar);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
                R.string.power_flashlight,
                R.drawable.ic_settings_display);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_PHONE,
                R.string.power_phone,
                R.drawable.ic_settings_voice_calls);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_SCREEN,
                R.string.power_screen,
                R.drawable.ic_settings_display);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_WIFI,
                R.string.power_wifi,
                R.drawable.ic_settings_wireless);
        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_IDLE,
                R.string.power_idle,
                R.drawable.ic_settings_phone_idle);
    }

    private void assertNameAndIcon(String name, int stringId) {
        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
                mContext, name, /* uid */ 1000);
        assertThat(nameAndIcon.name).isEqualTo(getString(stringId));
    }

    private void assertNameAndIcon(int powerComponentId, int stringId, int iconId) {
        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromPowerComponent(
                mContext, powerComponentId);
        assertThat(nameAndIcon.name).isEqualTo(getString(stringId));
        assertThat(nameAndIcon.iconId).isEqualTo(iconId);
    }

    private String getString(int stringId) {
        return mContext.getResources().getString(stringId);
    }
}