Merge "Support another new intent for mainline module intent" into rvc-dev
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
index 76a539f..fb17eca 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
@@ -47,6 +47,10 @@
@VisibleForTesting
static final Intent MODULE_UPDATE_INTENT =
new Intent("android.settings.MODULE_UPDATE_SETTINGS");
+ @VisibleForTesting
+ static final Intent MODULE_UPDATE_V2_INTENT =
+ new Intent("android.settings.MODULE_UPDATE_VERSIONS");
+
private final PackageManager mPackageManager;
private String mModuleVersion;
@@ -81,7 +85,14 @@
public void updateState(Preference preference) {
super.updateState(preference);
- // Confirm MODULE_UPDATE_INTENT is handleable, and set it to Preference.
+ final ResolveInfo resolvedV2 =
+ mPackageManager.resolveActivity(MODULE_UPDATE_V2_INTENT, 0 /* flags */);
+ if (resolvedV2 != null) {
+ preference.setIntent(MODULE_UPDATE_V2_INTENT);
+ preference.setSelectable(true);
+ return;
+ }
+
final ResolveInfo resolved =
mPackageManager.resolveActivity(MODULE_UPDATE_INTENT, 0 /* flags */);
if (resolved != null) {
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
index 59f24dd..3f49b15 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
@@ -19,6 +19,7 @@
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
import static com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController.MODULE_UPDATE_INTENT;
+import static com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController.MODULE_UPDATE_V2_INTENT;
import static com.google.common.truth.Truth.assertThat;
@@ -97,7 +98,33 @@
}
@Test
- public void updateStates_canHandleIntent_setIntentToPreference() throws Exception {
+ public void updateState_canHandleV2Intent_setIntentToPreference() throws Exception {
+ setupModulePackage("test version 123");
+ when(mPackageManager.resolveActivity(MODULE_UPDATE_V2_INTENT, 0))
+ .thenReturn(new ResolveInfo());
+ final MainlineModuleVersionPreferenceController controller =
+ new MainlineModuleVersionPreferenceController(mContext, "key");
+
+ controller.updateState(mPreference);
+
+ assertThat(mPreference.getIntent()).isEqualTo(MODULE_UPDATE_V2_INTENT);
+ }
+
+ @Test
+ public void updateState_canHandleV2Intent_preferenceShouldBeSelectable() throws Exception {
+ setupModulePackage("test version 123");
+ when(mPackageManager.resolveActivity(MODULE_UPDATE_V2_INTENT, 0))
+ .thenReturn(new ResolveInfo());
+ final MainlineModuleVersionPreferenceController controller =
+ new MainlineModuleVersionPreferenceController(mContext, "key");
+
+ controller.updateState(mPreference);
+
+ assertThat(mPreference.isSelectable()).isTrue();
+ }
+
+ @Test
+ public void updateState_canHandleIntent_setIntentToPreference() throws Exception {
setupModulePackage("test version 123");
when(mPackageManager.resolveActivity(MODULE_UPDATE_INTENT, 0))
.thenReturn(new ResolveInfo());
@@ -111,7 +138,7 @@
}
@Test
- public void updateStates_canHandleIntent_preferenceShouldBeSelectable() throws Exception {
+ public void updateState_canHandleIntent_preferenceShouldBeSelectable() throws Exception {
setupModulePackage("test version 123");
when(mPackageManager.resolveActivity(MODULE_UPDATE_INTENT, 0))
.thenReturn(new ResolveInfo());
@@ -125,10 +152,12 @@
}
@Test
- public void updateStates_cannotHandleIntent_setNullToPreference() throws Exception {
+ public void updateState_cannotHandleIntent_setNullToPreference() throws Exception {
setupModulePackage("test version 123");
when(mPackageManager.resolveActivity(MODULE_UPDATE_INTENT, 0))
.thenReturn(null);
+ when(mPackageManager.resolveActivity(MODULE_UPDATE_V2_INTENT, 0))
+ .thenReturn(null);
final MainlineModuleVersionPreferenceController controller =
new MainlineModuleVersionPreferenceController(mContext, "key");