From 10ec77121ca62aab1e1048d99a8fcda180891526 Mon Sep 17 00:00:00 2001 From: Stanley Wang Date: Thu, 6 Feb 2020 17:26:07 +0800 Subject: [PATCH] Fix the 'Google play system update' button is not actionable. If the ResolveInfo of the update intent is not null, set preference to selectable. Fixes: 147616097 Test: manual & robotest Change-Id: If6086b113fc1c782b47966f7a30eddfdac195ce0 --- res/xml/firmware_version.xml | 1 - .../MainlineModuleVersionPreferenceController.java | 3 +++ ...nlineModuleVersionPreferenceControllerTest.java | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) 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");