Loading res/xml/power_usage_summary.xml +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ android:selectable="false" settings:searchable="false" /> <com.android.settings.widget.TipCardPreference <com.android.settingslib.widget.BannerMessagePreference android:key="battery_tip" android:title="@string/summary_placeholder" settings:controller="com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController" /> Loading src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +4 −2 Original line number Diff line number Diff line Loading @@ -33,8 +33,8 @@ import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.TipCardPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.widget.BannerMessagePreference; import java.util.List; import java.util.Map; Loading @@ -55,8 +55,10 @@ public class BatteryTipPreferenceController extends BasePreferenceController { private Activity mActivity; private MetricsFeatureProvider mMetricsFeatureProvider; private boolean mNeedUpdate; @VisibleForTesting TipCardPreference mCardPreference; @VisibleForTesting BannerMessagePreference mCardPreference; @VisibleForTesting Context mPrefContext; InstrumentedPreferenceFragment mFragment; public BatteryTipPreferenceController(Context context, String preferenceKey) { Loading src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java +14 −20 Original line number Diff line number Diff line Loading @@ -27,12 +27,11 @@ import androidx.core.app.ActivityCompat; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.overlay.FeatureFactory; 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 { Loading Loading @@ -79,17 +78,20 @@ public class BatteryDefenderTip extends BatteryTip { super.updatePreference(preference); final Context context = preference.getContext(); var cardPreference = castToTipCardPreferenceSafely(preference); var cardPreference = castToBannerMassagePreferenceSafely(preference); if (cardPreference == null) { Log.e(TAG, "cast Preference to TipCardPreference failed"); return; } cardPreference.setSelectable(false); cardPreference.setIconResId(getIconId()); cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); cardPreference.setPrimaryButtonAction( () -> { cardPreference.setNegativeButtonText( Utils.createAccessibleSequence( context.getString(R.string.learn_more), context.getString(R.string .battery_tip_limited_temporarily_sec_button_content_description))); cardPreference.setNegativeButtonOnClickListener( unused -> { var helpIntent = HelpUtils.getHelpIntent( context, Loading @@ -100,25 +102,17 @@ public class BatteryDefenderTip extends BatteryTip { 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.setNegativeButtonVisible(true); cardPreference.setSecondaryButtonText( cardPreference.setPositiveButtonText( context.getString(R.string.battery_tip_charge_to_full_button)); cardPreference.setSecondaryButtonAction( () -> { cardPreference.setPositiveButtonOnClickListener( unused -> { resumeCharging(context); preference.setVisible(false); return Unit.INSTANCE; }); cardPreference.setSecondaryButtonVisibility(mIsPluggedIn); cardPreference.buildContent(); cardPreference.setPositiveButtonVisible(mIsPluggedIn); } private void resumeCharging(Context context) { Loading src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java +10 −6 Original line number Diff line number Diff line Loading @@ -27,8 +27,9 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import com.android.settings.widget.TipCardPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.widget.BannerMessagePreference; import com.android.settingslib.widget.BannerMessagePreference.AttentionLevel; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -166,9 +167,10 @@ public abstract class BatteryTip implements Comparable<BatteryTip>, Parcelable { preference.setTitle(getTitle(context)); preference.setSummary(getSummary(context)); preference.setIcon(getIconId()); final TipCardPreference cardPreference = castToTipCardPreferenceSafely(preference); final BannerMessagePreference cardPreference = castToBannerMassagePreferenceSafely(preference); if (cardPreference != null) { cardPreference.resetLayoutState(); cardPreference.setAttentionLevel(AttentionLevel.NORMAL); } } Loading Loading @@ -207,9 +209,11 @@ public abstract class BatteryTip implements Comparable<BatteryTip>, Parcelable { return "type=" + mType + " state=" + mState; } /** Returns the converted {@link TipCardPreference} if it is valid. */ /** Returns the converted {@link BannerMessagePreference} if it is valid. */ @Nullable public TipCardPreference castToTipCardPreferenceSafely(Preference preference) { return preference instanceof TipCardPreference ? (TipCardPreference) preference : null; public BannerMessagePreference castToBannerMassagePreferenceSafely(Preference preference) { return preference instanceof BannerMessagePreference ? (BannerMessagePreference) preference : null; } } src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java +10 −14 Original line number Diff line number Diff line Loading @@ -26,11 +26,10 @@ import androidx.core.app.ActivityCompat; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.Utils; 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"; Loading Loading @@ -73,18 +72,20 @@ public final class IncompatibleChargerTip extends BatteryTip { public void updatePreference(Preference preference) { super.updatePreference(preference); final Context context = preference.getContext(); final var cardPreference = castToTipCardPreferenceSafely(preference); final var cardPreference = castToBannerMassagePreferenceSafely(preference); if (cardPreference == null) { Log.e(TAG, "cast Preference to CardPreference failed"); return; } cardPreference.setSelectable(false); cardPreference.enableDismiss(false); cardPreference.setIconResId(getIconId()); cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); cardPreference.setPrimaryButtonAction( () -> { cardPreference.setNegativeButtonText( Utils.createAccessibleSequence( context.getString(R.string.learn_more), context.getString( R.string.battery_tip_incompatible_charging_content_description))); cardPreference.setNegativeButtonOnClickListener( unused -> { var helpIntent = HelpUtils.getHelpIntent( context, Loading @@ -95,13 +96,8 @@ public final class IncompatibleChargerTip extends BatteryTip { 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(); cardPreference.setNegativeButtonVisible(true); } public static final Creator CREATOR = Loading Loading
res/xml/power_usage_summary.xml +1 −1 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ android:selectable="false" settings:searchable="false" /> <com.android.settings.widget.TipCardPreference <com.android.settingslib.widget.BannerMessagePreference android:key="battery_tip" android:title="@string/summary_placeholder" settings:controller="com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController" /> Loading
src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +4 −2 Original line number Diff line number Diff line Loading @@ -33,8 +33,8 @@ import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.TipCardPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.widget.BannerMessagePreference; import java.util.List; import java.util.Map; Loading @@ -55,8 +55,10 @@ public class BatteryTipPreferenceController extends BasePreferenceController { private Activity mActivity; private MetricsFeatureProvider mMetricsFeatureProvider; private boolean mNeedUpdate; @VisibleForTesting TipCardPreference mCardPreference; @VisibleForTesting BannerMessagePreference mCardPreference; @VisibleForTesting Context mPrefContext; InstrumentedPreferenceFragment mFragment; public BatteryTipPreferenceController(Context context, String preferenceKey) { Loading
src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java +14 −20 Original line number Diff line number Diff line Loading @@ -27,12 +27,11 @@ import androidx.core.app.ActivityCompat; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.overlay.FeatureFactory; 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 { Loading Loading @@ -79,17 +78,20 @@ public class BatteryDefenderTip extends BatteryTip { super.updatePreference(preference); final Context context = preference.getContext(); var cardPreference = castToTipCardPreferenceSafely(preference); var cardPreference = castToBannerMassagePreferenceSafely(preference); if (cardPreference == null) { Log.e(TAG, "cast Preference to TipCardPreference failed"); return; } cardPreference.setSelectable(false); cardPreference.setIconResId(getIconId()); cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); cardPreference.setPrimaryButtonAction( () -> { cardPreference.setNegativeButtonText( Utils.createAccessibleSequence( context.getString(R.string.learn_more), context.getString(R.string .battery_tip_limited_temporarily_sec_button_content_description))); cardPreference.setNegativeButtonOnClickListener( unused -> { var helpIntent = HelpUtils.getHelpIntent( context, Loading @@ -100,25 +102,17 @@ public class BatteryDefenderTip extends BatteryTip { 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.setNegativeButtonVisible(true); cardPreference.setSecondaryButtonText( cardPreference.setPositiveButtonText( context.getString(R.string.battery_tip_charge_to_full_button)); cardPreference.setSecondaryButtonAction( () -> { cardPreference.setPositiveButtonOnClickListener( unused -> { resumeCharging(context); preference.setVisible(false); return Unit.INSTANCE; }); cardPreference.setSecondaryButtonVisibility(mIsPluggedIn); cardPreference.buildContent(); cardPreference.setPositiveButtonVisible(mIsPluggedIn); } private void resumeCharging(Context context) { Loading
src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java +10 −6 Original line number Diff line number Diff line Loading @@ -27,8 +27,9 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import com.android.settings.widget.TipCardPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.widget.BannerMessagePreference; import com.android.settingslib.widget.BannerMessagePreference.AttentionLevel; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -166,9 +167,10 @@ public abstract class BatteryTip implements Comparable<BatteryTip>, Parcelable { preference.setTitle(getTitle(context)); preference.setSummary(getSummary(context)); preference.setIcon(getIconId()); final TipCardPreference cardPreference = castToTipCardPreferenceSafely(preference); final BannerMessagePreference cardPreference = castToBannerMassagePreferenceSafely(preference); if (cardPreference != null) { cardPreference.resetLayoutState(); cardPreference.setAttentionLevel(AttentionLevel.NORMAL); } } Loading Loading @@ -207,9 +209,11 @@ public abstract class BatteryTip implements Comparable<BatteryTip>, Parcelable { return "type=" + mType + " state=" + mState; } /** Returns the converted {@link TipCardPreference} if it is valid. */ /** Returns the converted {@link BannerMessagePreference} if it is valid. */ @Nullable public TipCardPreference castToTipCardPreferenceSafely(Preference preference) { return preference instanceof TipCardPreference ? (TipCardPreference) preference : null; public BannerMessagePreference castToBannerMassagePreferenceSafely(Preference preference) { return preference instanceof BannerMessagePreference ? (BannerMessagePreference) preference : null; } }
src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java +10 −14 Original line number Diff line number Diff line Loading @@ -26,11 +26,10 @@ import androidx.core.app.ActivityCompat; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.Utils; 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"; Loading Loading @@ -73,18 +72,20 @@ public final class IncompatibleChargerTip extends BatteryTip { public void updatePreference(Preference preference) { super.updatePreference(preference); final Context context = preference.getContext(); final var cardPreference = castToTipCardPreferenceSafely(preference); final var cardPreference = castToBannerMassagePreferenceSafely(preference); if (cardPreference == null) { Log.e(TAG, "cast Preference to CardPreference failed"); return; } cardPreference.setSelectable(false); cardPreference.enableDismiss(false); cardPreference.setIconResId(getIconId()); cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more)); cardPreference.setPrimaryButtonAction( () -> { cardPreference.setNegativeButtonText( Utils.createAccessibleSequence( context.getString(R.string.learn_more), context.getString( R.string.battery_tip_incompatible_charging_content_description))); cardPreference.setNegativeButtonOnClickListener( unused -> { var helpIntent = HelpUtils.getHelpIntent( context, Loading @@ -95,13 +96,8 @@ public final class IncompatibleChargerTip extends BatteryTip { 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(); cardPreference.setNegativeButtonVisible(true); } public static final Creator CREATOR = Loading