From fa7e6f0919397010cb064d4f9e8abc0b71e0aca9 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Fri, 8 Nov 2024 12:02:56 +0200 Subject: [PATCH] BatteryTip: Hide Learn more button if URL is empty When help_url_battery_defender is empty, tapping on Learn more button causes a NPE. Issue: calyxos#2809 Change-Id: Ib1c52dcff430cae7c4bc0793120ace837f5bf4c7 --- .../batterytip/tips/BatteryDefenderTip.java | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java index dbe2722ebea..c9458f782a7 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java @@ -87,26 +87,28 @@ public class BatteryDefenderTip extends BatteryTip { cardPreference.setSelectable(false); cardPreference.setIconResId(getIconId()); - cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); - cardPreference.setPrimaryButtonAction( - () -> { - var helpIntent = - HelpUtils.getHelpIntent( - context, - context.getString(R.string.help_url_battery_defender), - /* backupContext= */ ""); - ActivityCompat.startActivityForResult( - (Activity) preference.getContext(), - helpIntent, - /* requestCode= */ 0, - /* options= */ null); - return Unit.INSTANCE; - }); - cardPreference.setPrimaryButtonVisibility(true); - cardPreference.setPrimaryButtonContentDescription( - context.getString( - R.string.battery_tip_limited_temporarily_sec_button_content_description)); + if (getHelpResource() != 0) { + cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); + cardPreference.setPrimaryButtonAction( + () -> { + var helpIntent = + HelpUtils.getHelpIntent( + context, + context.getString(getHelpResource()), + /* backupContext= */ ""); + ActivityCompat.startActivityForResult( + (Activity) preference.getContext(), + helpIntent, + /* requestCode= */ 0, + /* options= */ null); + + return Unit.INSTANCE; + }); + cardPreference.setPrimaryButtonVisibility(true); + cardPreference.setPrimaryButtonContentDescription(context.getString( + R.string.battery_tip_limited_temporarily_sec_button_content_description)); + } cardPreference.setSecondaryButtonText( context.getString(R.string.battery_tip_charge_to_full_button)); @@ -121,6 +123,10 @@ public class BatteryDefenderTip extends BatteryTip { cardPreference.buildContent(); } + private int getHelpResource() { + return R.string.help_url_battery_defender; + } + private void resumeCharging(Context context) { final Intent intent = FeatureFactory.getFeatureFactory()