diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java index 047bf135741..319ba7a16c8 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java @@ -16,12 +16,14 @@ package com.android.settings.fuelgauge.batterytip.tips; +import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; import android.os.Parcel; import android.util.Log; +import androidx.core.app.ActivityCompat; import androidx.preference.Preference; import com.android.settings.R; @@ -30,6 +32,8 @@ import com.android.settings.widget.CardPreference; import com.android.settingslib.HelpUtils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import kotlin.Unit; + /** Tip to show current battery is overheated */ public class BatteryDefenderTip extends BatteryTip { @@ -83,28 +87,39 @@ public class BatteryDefenderTip extends BatteryTip { } cardPreference.setSelectable(false); + cardPreference.setIconResId(getIconId()); cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); - cardPreference.setPrimaryButtonClickListener( - button -> - button.startActivityForResult( - HelpUtils.getHelpIntent( - context, - context.getString(R.string.help_url_battery_defender), - /* backupContext */ ""), /* requestCode */ - 0)); - cardPreference.setPrimaryButtonVisible(true); + 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)); cardPreference.setSecondaryButtonText( context.getString(R.string.battery_tip_charge_to_full_button)); - cardPreference.setSecondaryButtonClickListener( - unused -> { + cardPreference.setSecondaryButtonAction( + () -> { resumeCharging(context); preference.setVisible(false); + + return Unit.INSTANCE; }); - cardPreference.setSecondaryButtonVisible(mIsPluggedIn); + cardPreference.setSecondaryButtonVisibility(mIsPluggedIn); + cardPreference.buildContent(); } private void resumeCharging(Context context) { diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java index 882b755a28f..c9ff8641ceb 100644 --- a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java +++ b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java @@ -16,11 +16,13 @@ package com.android.settings.fuelgauge.batterytip.tips; +import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Parcel; import android.util.Log; +import androidx.core.app.ActivityCompat; import androidx.preference.Preference; import com.android.settings.R; @@ -28,6 +30,8 @@ import com.android.settings.widget.CardPreference; import com.android.settingslib.HelpUtils; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import kotlin.Unit; + /** Tip to show incompatible charger state */ public final class IncompatibleChargerTip extends BatteryTip { private static final String TAG = "IncompatibleChargerTip"; @@ -77,18 +81,27 @@ public final class IncompatibleChargerTip extends BatteryTip { } cardPreference.setSelectable(false); + cardPreference.setIconResId(getIconId()); cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); - cardPreference.setPrimaryButtonClickListener( - button -> - button.startActivityForResult( - HelpUtils.getHelpIntent( - context, - context.getString(R.string.help_url_incompatible_charging), - /* backupContext */ ""), /* requestCode */ - 0)); - cardPreference.setPrimaryButtonVisible(true); + cardPreference.setPrimaryButtonAction( + () -> { + var helpIntent = + HelpUtils.getHelpIntent( + context, + context.getString(R.string.help_url_incompatible_charging), + /* backupContext */ ""); + ActivityCompat.startActivityForResult( + (Activity) context, + helpIntent, + /* requestCode= */ 0, + /* options= */ null); + + return Unit.INSTANCE; + }); + cardPreference.setPrimaryButtonVisibility(true); cardPreference.setPrimaryButtonContentDescription( context.getString(R.string.battery_tip_incompatible_charging_content_description)); + cardPreference.buildContent(); } public static final Creator CREATOR = diff --git a/src/com/android/settings/widget/CardPreference.java b/src/com/android/settings/widget/CardPreference.java deleted file mode 100644 index 61114d959f2..00000000000 --- a/src/com/android/settings/widget/CardPreference.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.widget; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.View; -import android.widget.Button; - -import androidx.preference.Preference; -import androidx.preference.PreferenceViewHolder; - -import com.android.settings.R; - -import com.google.android.material.card.MaterialCardView; - -import java.util.Optional; - -/** Preference that wrapped by {@link MaterialCardView} */ -public class CardPreference extends Preference { - - private View.OnClickListener mPrimaryBtnClickListener = null; - private View.OnClickListener mSecondaryBtnClickListener = null; - - private String mPrimaryButtonText = null; - private String mSecondaryButtonText = null; - - private Optional