Loading res/layout/battery_tips_card.xml +2 −3 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:maxLines="2" android:textAlignment="viewStart" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="?android:attr/textColorPrimary" /> Loading @@ -45,7 +44,7 @@ style="@style/Widget.Material3.Button.TextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:layout_gravity="end|center_vertical" android:paddingHorizontal="16dp" android:layout_marginEnd="8dp" android:text="@string/battery_tips_card_dismiss_button" Loading @@ -59,7 +58,7 @@ android:paddingHorizontal="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:layout_gravity="end|center_vertical" android:text="@string/battery_tips_card_action_button" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?android:attr/textColorPrimary" Loading src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +24 −10 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnCreate; import com.android.settingslib.core.lifecycle.events.OnDestroy; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; Loading @@ -51,14 +52,17 @@ import com.google.common.base.Objects; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; /** Controls the update for chart graph and the list items. */ public class BatteryChartPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, OnPause, OnSaveInstanceState, OnResume { private static final String TAG = "BatteryChartPreferenceController"; private static final String PREFERENCE_KEY = "battery_chart"; Loading Loading @@ -135,6 +139,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll private OnBatteryUsageUpdatedListener mOnBatteryUsageUpdatedListener; private OnScreenOnTimeUpdatedListener mOnScreenOnTimeUpdatedListener; private OnBatteryTipsUpdatedListener mOnBatteryTipsUpdatedListener; private AtomicBoolean mIsAppResume = new AtomicBoolean(false); private final SettingsActivity mActivity; private final MetricsFeatureProvider mMetricsFeatureProvider; Loading Loading @@ -179,9 +184,15 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll Log.d(TAG, String.format("onCreate() dailyIndex=%d hourlyIndex=%d", mDailyChartIndex, mHourlyChartIndex)); } @Override public void onPause() { mIsAppResume.compareAndSet(/* expect= */ true, /* update= */ false); } @Override public void onResume() { mIsAppResume.compareAndSet(/* expect= */ false, /* update= */ true); mIs24HourFormat = DateFormat.is24HourFormat(mContext); mMetricsFeatureProvider.action(mPrefContext, SettingsEnums.OPEN_BATTERY_USAGE); } Loading Loading @@ -364,14 +375,22 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mOnBatteryUsageUpdatedListener.onBatteryUsageUpdated( slotUsageData, getSlotInformation(), isBatteryUsageMapNullOrEmpty()); Log.d(TAG, "isBatteryTipsEnabled = " + mPowerUsageFeatureProvider.isBatteryTipsEnabled()); if (mOnBatteryTipsUpdatedListener != null) { mExecutor.execute(() -> { final PowerAnomalyEventList anomalyEventList = mPowerUsageFeatureProvider .detectSettingsAnomaly(mContext, /* displayDrain= */ 0); Log.d(TAG, "anomalyEventList = " + anomalyEventList); final PowerAnomalyEvent displayEvent = getHighestScoreAnomalyEvent(anomalyEventList); mHandler.post(() -> mOnBatteryTipsUpdatedListener.onBatteryTipsUpdated(displayEvent)); mHandler.post(() -> { if (mIsAppResume.get()) { mOnBatteryTipsUpdatedListener .onBatteryTipsUpdated(displayEvent); } } ); }); } } Loading @@ -382,13 +401,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll if (anomalyEventList == null || anomalyEventList.getPowerAnomalyEventsCount() == 0) { return null; } PowerAnomalyEvent highestScoreEvent = null; for (PowerAnomalyEvent event : anomalyEventList.getPowerAnomalyEventsList()) { if (highestScoreEvent == null || event.getScore() > highestScoreEvent.getScore()) { highestScoreEvent = event; } } return highestScoreEvent; return Collections.max(anomalyEventList.getPowerAnomalyEventsList(), Comparator.comparing(PowerAnomalyEvent::getScore)); } private boolean refreshUiWithNoLevelDataCase() { Loading src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public class BatteryTipsCardPreference extends Preference implements View.OnClic .setDestination(mDestinationComponentName) .setSourceMetricsCategory(mSourceMetricsCategory) .launch(); setVisible(false); } else if (viewId == R.id.dismiss_button) { setVisible(false); } Loading Loading
res/layout/battery_tips_card.xml +2 −3 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:maxLines="2" android:textAlignment="viewStart" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="?android:attr/textColorPrimary" /> Loading @@ -45,7 +44,7 @@ style="@style/Widget.Material3.Button.TextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:layout_gravity="end|center_vertical" android:paddingHorizontal="16dp" android:layout_marginEnd="8dp" android:text="@string/battery_tips_card_dismiss_button" Loading @@ -59,7 +58,7 @@ android:paddingHorizontal="16dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:layout_gravity="end|center_vertical" android:text="@string/battery_tips_card_action_button" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?android:attr/textColorPrimary" Loading
src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +24 −10 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnCreate; import com.android.settingslib.core.lifecycle.events.OnDestroy; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; Loading @@ -51,14 +52,17 @@ import com.google.common.base.Objects; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; /** Controls the update for chart graph and the list items. */ public class BatteryChartPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, OnPause, OnSaveInstanceState, OnResume { private static final String TAG = "BatteryChartPreferenceController"; private static final String PREFERENCE_KEY = "battery_chart"; Loading Loading @@ -135,6 +139,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll private OnBatteryUsageUpdatedListener mOnBatteryUsageUpdatedListener; private OnScreenOnTimeUpdatedListener mOnScreenOnTimeUpdatedListener; private OnBatteryTipsUpdatedListener mOnBatteryTipsUpdatedListener; private AtomicBoolean mIsAppResume = new AtomicBoolean(false); private final SettingsActivity mActivity; private final MetricsFeatureProvider mMetricsFeatureProvider; Loading Loading @@ -179,9 +184,15 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll Log.d(TAG, String.format("onCreate() dailyIndex=%d hourlyIndex=%d", mDailyChartIndex, mHourlyChartIndex)); } @Override public void onPause() { mIsAppResume.compareAndSet(/* expect= */ true, /* update= */ false); } @Override public void onResume() { mIsAppResume.compareAndSet(/* expect= */ false, /* update= */ true); mIs24HourFormat = DateFormat.is24HourFormat(mContext); mMetricsFeatureProvider.action(mPrefContext, SettingsEnums.OPEN_BATTERY_USAGE); } Loading Loading @@ -364,14 +375,22 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mOnBatteryUsageUpdatedListener.onBatteryUsageUpdated( slotUsageData, getSlotInformation(), isBatteryUsageMapNullOrEmpty()); Log.d(TAG, "isBatteryTipsEnabled = " + mPowerUsageFeatureProvider.isBatteryTipsEnabled()); if (mOnBatteryTipsUpdatedListener != null) { mExecutor.execute(() -> { final PowerAnomalyEventList anomalyEventList = mPowerUsageFeatureProvider .detectSettingsAnomaly(mContext, /* displayDrain= */ 0); Log.d(TAG, "anomalyEventList = " + anomalyEventList); final PowerAnomalyEvent displayEvent = getHighestScoreAnomalyEvent(anomalyEventList); mHandler.post(() -> mOnBatteryTipsUpdatedListener.onBatteryTipsUpdated(displayEvent)); mHandler.post(() -> { if (mIsAppResume.get()) { mOnBatteryTipsUpdatedListener .onBatteryTipsUpdated(displayEvent); } } ); }); } } Loading @@ -382,13 +401,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll if (anomalyEventList == null || anomalyEventList.getPowerAnomalyEventsCount() == 0) { return null; } PowerAnomalyEvent highestScoreEvent = null; for (PowerAnomalyEvent event : anomalyEventList.getPowerAnomalyEventsList()) { if (highestScoreEvent == null || event.getScore() > highestScoreEvent.getScore()) { highestScoreEvent = event; } } return highestScoreEvent; return Collections.max(anomalyEventList.getPowerAnomalyEventsList(), Comparator.comparing(PowerAnomalyEvent::getScore)); } private boolean refreshUiWithNoLevelDataCase() { Loading
src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public class BatteryTipsCardPreference extends Preference implements View.OnClic .setDestination(mDestinationComponentName) .setSourceMetricsCategory(mSourceMetricsCategory) .launch(); setVisible(false); } else if (viewId == R.id.dismiss_button) { setVisible(false); } Loading