Loading Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ android_library { }, libs: [ "framework-virtualization.stubs.system", "telephony-common", "ims-common", ], Loading src/com/android/settings/development/linuxterminal/LinuxTerminalPreferenceController.java +8 −1 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.settings.development.linuxterminal; import static android.system.virtualmachine.VirtualMachineManager.CAPABILITY_NON_PROTECTED_VM; import android.content.Context; import android.content.pm.PackageManager; import android.os.Process; import android.os.storage.StorageManager; import android.system.virtualmachine.VirtualMachineManager; import android.text.TextUtils; import android.util.DataUnit; Loading Loading @@ -58,9 +61,13 @@ public class LinuxTerminalPreferenceController extends DeveloperOptionsPreferenc StorageManager storageManager = Objects.requireNonNull(context.getSystemService(StorageManager.class)); VirtualMachineManager virtualMachineManager = Objects.requireNonNull(context.getSystemService(VirtualMachineManager.class)); mIsDeviceCapable = getTotalMemory() >= MEMORY_MIN_BYTES && storageManager.getPrimaryStorageSize() >= STORAGE_MIN_BYTES; && storageManager.getPrimaryStorageSize() >= STORAGE_MIN_BYTES && ((virtualMachineManager.getCapabilities() & CAPABILITY_NON_PROTECTED_VM) != 0); } // Avoid lazy initialization because this may be called before displayPreference(). Loading tests/robotests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ android_robolectric_test { libs: [ "android.test.mock.impl", "framework-virtualization.stubs.system", "ims-common", ], Loading tests/robotests/src/com/android/settings/development/linuxterminal/LinuxTerminalPreferenceControllerTest.java +22 −4 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.development.linuxterminal; import static android.system.virtualmachine.VirtualMachineManager.CAPABILITY_NON_PROTECTED_VM; import static com.android.settings.development.linuxterminal.LinuxTerminalPreferenceController.MEMORY_MIN_BYTES; import static com.android.settings.development.linuxterminal.LinuxTerminalPreferenceController.STORAGE_MIN_BYTES; import static com.android.settings.development.linuxterminal.LinuxTerminalPreferenceController.TERMINAL_PACKAGE_NAME_RESID; Loading @@ -32,6 +34,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.storage.StorageManager; import android.system.virtualmachine.VirtualMachineManager; import org.junit.Before; import org.junit.Test; Loading @@ -43,27 +46,33 @@ import org.robolectric.RobolectricTestRunner; /** Tests {@link LinuxTerminalPreferenceController} */ @RunWith(RobolectricTestRunner.class) public class LinuxTerminalPreferenceControllerTest { private static final String TERMINAL_PACKAGE_NAME = "com.android.virtualization.terminal"; @Mock private Context mContext; @Mock private PackageManager mPackageManager; @Mock private StorageManager mStorageManager; @Mock private VirtualMachineManager mVirtualMachineManager; @Mock private PackageInfo mPackageInfo; private String mTerminalPackageName = "com.android.virtualization.terminal"; private LinuxTerminalPreferenceController mController; @Before public void setup() throws Exception { MockitoAnnotations.initMocks(this); doReturn(mTerminalPackageName).when(mContext).getString(TERMINAL_PACKAGE_NAME_RESID); doReturn(TERMINAL_PACKAGE_NAME).when(mContext).getString(TERMINAL_PACKAGE_NAME_RESID); doReturn(mPackageManager).when(mContext).getPackageManager(); doReturn(mPackageInfo) .when(mPackageManager) .getPackageInfo(eq(mTerminalPackageName), anyInt()); .getPackageInfo(eq(TERMINAL_PACKAGE_NAME), anyInt()); doReturn(mStorageManager).when(mContext).getSystemService(StorageManager.class); doReturn(STORAGE_MIN_BYTES).when(mStorageManager).getPrimaryStorageSize(); doReturn(mVirtualMachineManager) .when(mContext) .getSystemService(VirtualMachineManager.class); doReturn(CAPABILITY_NON_PROTECTED_VM).when(mVirtualMachineManager).getCapabilities(); } @Test Loading @@ -82,6 +91,15 @@ public class LinuxTerminalPreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } @Test public void isAvailable_whenVmNotSupported_returnFalse() { doReturn(0).when(mVirtualMachineManager).getCapabilities(); mController = createController(mContext); assertThat(mController.isAvailable()).isFalse(); } @Test public void isAvailable_whenPackageExists_returnsTrue() { mController = createController(mContext); Loading @@ -102,7 +120,7 @@ public class LinuxTerminalPreferenceControllerTest { public void isAvailable_whenAppDoesNotExist_returnsFalse() throws Exception { doThrow(new NameNotFoundException()) .when(mPackageManager) .getPackageInfo(eq(mTerminalPackageName), anyInt()); .getPackageInfo(eq(TERMINAL_PACKAGE_NAME), anyInt()); mController = createController(mContext); Loading Loading
Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,7 @@ android_library { }, libs: [ "framework-virtualization.stubs.system", "telephony-common", "ims-common", ], Loading
src/com/android/settings/development/linuxterminal/LinuxTerminalPreferenceController.java +8 −1 Original line number Diff line number Diff line Loading @@ -16,10 +16,13 @@ package com.android.settings.development.linuxterminal; import static android.system.virtualmachine.VirtualMachineManager.CAPABILITY_NON_PROTECTED_VM; import android.content.Context; import android.content.pm.PackageManager; import android.os.Process; import android.os.storage.StorageManager; import android.system.virtualmachine.VirtualMachineManager; import android.text.TextUtils; import android.util.DataUnit; Loading Loading @@ -58,9 +61,13 @@ public class LinuxTerminalPreferenceController extends DeveloperOptionsPreferenc StorageManager storageManager = Objects.requireNonNull(context.getSystemService(StorageManager.class)); VirtualMachineManager virtualMachineManager = Objects.requireNonNull(context.getSystemService(VirtualMachineManager.class)); mIsDeviceCapable = getTotalMemory() >= MEMORY_MIN_BYTES && storageManager.getPrimaryStorageSize() >= STORAGE_MIN_BYTES; && storageManager.getPrimaryStorageSize() >= STORAGE_MIN_BYTES && ((virtualMachineManager.getCapabilities() & CAPABILITY_NON_PROTECTED_VM) != 0); } // Avoid lazy initialization because this may be called before displayPreference(). Loading
tests/robotests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ android_robolectric_test { libs: [ "android.test.mock.impl", "framework-virtualization.stubs.system", "ims-common", ], Loading
tests/robotests/src/com/android/settings/development/linuxterminal/LinuxTerminalPreferenceControllerTest.java +22 −4 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings.development.linuxterminal; import static android.system.virtualmachine.VirtualMachineManager.CAPABILITY_NON_PROTECTED_VM; import static com.android.settings.development.linuxterminal.LinuxTerminalPreferenceController.MEMORY_MIN_BYTES; import static com.android.settings.development.linuxterminal.LinuxTerminalPreferenceController.STORAGE_MIN_BYTES; import static com.android.settings.development.linuxterminal.LinuxTerminalPreferenceController.TERMINAL_PACKAGE_NAME_RESID; Loading @@ -32,6 +34,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.storage.StorageManager; import android.system.virtualmachine.VirtualMachineManager; import org.junit.Before; import org.junit.Test; Loading @@ -43,27 +46,33 @@ import org.robolectric.RobolectricTestRunner; /** Tests {@link LinuxTerminalPreferenceController} */ @RunWith(RobolectricTestRunner.class) public class LinuxTerminalPreferenceControllerTest { private static final String TERMINAL_PACKAGE_NAME = "com.android.virtualization.terminal"; @Mock private Context mContext; @Mock private PackageManager mPackageManager; @Mock private StorageManager mStorageManager; @Mock private VirtualMachineManager mVirtualMachineManager; @Mock private PackageInfo mPackageInfo; private String mTerminalPackageName = "com.android.virtualization.terminal"; private LinuxTerminalPreferenceController mController; @Before public void setup() throws Exception { MockitoAnnotations.initMocks(this); doReturn(mTerminalPackageName).when(mContext).getString(TERMINAL_PACKAGE_NAME_RESID); doReturn(TERMINAL_PACKAGE_NAME).when(mContext).getString(TERMINAL_PACKAGE_NAME_RESID); doReturn(mPackageManager).when(mContext).getPackageManager(); doReturn(mPackageInfo) .when(mPackageManager) .getPackageInfo(eq(mTerminalPackageName), anyInt()); .getPackageInfo(eq(TERMINAL_PACKAGE_NAME), anyInt()); doReturn(mStorageManager).when(mContext).getSystemService(StorageManager.class); doReturn(STORAGE_MIN_BYTES).when(mStorageManager).getPrimaryStorageSize(); doReturn(mVirtualMachineManager) .when(mContext) .getSystemService(VirtualMachineManager.class); doReturn(CAPABILITY_NON_PROTECTED_VM).when(mVirtualMachineManager).getCapabilities(); } @Test Loading @@ -82,6 +91,15 @@ public class LinuxTerminalPreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } @Test public void isAvailable_whenVmNotSupported_returnFalse() { doReturn(0).when(mVirtualMachineManager).getCapabilities(); mController = createController(mContext); assertThat(mController.isAvailable()).isFalse(); } @Test public void isAvailable_whenPackageExists_returnsTrue() { mController = createController(mContext); Loading @@ -102,7 +120,7 @@ public class LinuxTerminalPreferenceControllerTest { public void isAvailable_whenAppDoesNotExist_returnsFalse() throws Exception { doThrow(new NameNotFoundException()) .when(mPackageManager) .getPackageInfo(eq(mTerminalPackageName), anyInt()); .getPackageInfo(eq(TERMINAL_PACKAGE_NAME), anyInt()); mController = createController(mContext); Loading