diff --git a/res/xml/firmware_version.xml b/res/xml/firmware_version.xml index 443ae35dd23..88675d291f7 100644 --- a/res/xml/firmware_version.xml +++ b/res/xml/firmware_version.xml @@ -43,7 +43,6 @@ android:key="module_version" android:title="@string/module_version" android:summary="@string/summary_placeholder" - android:selectable="false" settings:enableCopying="true" settings:controller="com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController"/> diff --git a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java index 95f3ae3ca59..76a539f7da1 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java @@ -86,8 +86,11 @@ public class MainlineModuleVersionPreferenceController extends BasePreferenceCon mPackageManager.resolveActivity(MODULE_UPDATE_INTENT, 0 /* flags */); if (resolved != null) { preference.setIntent(MODULE_UPDATE_INTENT); + preference.setSelectable(true); } else { + Log.d(TAG, "The ResolveInfo of the update intent is null."); preference.setIntent(null); + preference.setSelectable(false); } } 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 950d96237d6..59f24dda848 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java @@ -110,6 +110,20 @@ public class MainlineModuleVersionPreferenceControllerTest { assertThat(mPreference.getIntent()).isEqualTo(MODULE_UPDATE_INTENT); } + @Test + public void updateStates_canHandleIntent_preferenceShouldBeSelectable() throws Exception { + setupModulePackage("test version 123"); + when(mPackageManager.resolveActivity(MODULE_UPDATE_INTENT, 0)) + .thenReturn(new ResolveInfo()); + + final MainlineModuleVersionPreferenceController controller = + new MainlineModuleVersionPreferenceController(mContext, "key"); + + controller.updateState(mPreference); + + assertThat(mPreference.isSelectable()).isTrue(); + } + @Test public void updateStates_cannotHandleIntent_setNullToPreference() throws Exception { setupModulePackage("test version 123");