Loading src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +17 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.content.res.Configuration; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; Loading @@ -39,6 +40,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.OnResume; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; import com.android.settingslib.utils.StringUtil; Loading @@ -53,7 +55,7 @@ import java.util.Map; /** Controls the update for chart graph and the list items. */ public class BatteryChartPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, OnSaveInstanceState, BatteryChartView.OnSelectListener, OnSaveInstanceState, BatteryChartView.OnSelectListener, OnResume, ExpandDividerPreference.OnExpandListener { private static final String TAG = "BatteryChartPreferenceController"; /** Desired battery history size for timestamp slots. */ Loading @@ -67,6 +69,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll private static final String KEY_EXPAND_SYSTEM_INFO = "expand_system_info"; private static final String KEY_CURRENT_TIME_SLOT = "current_time_slot"; private static int sUiMode = Configuration.UI_MODE_NIGHT_UNDEFINED; @VisibleForTesting Map<Integer, List<BatteryDiffEntry>> mBatteryIndexedMap; Loading Loading @@ -124,6 +128,18 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mTrapezoidIndex, mIsExpanded)); } @Override public void onResume() { final int currentUiMode = mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; if (sUiMode != currentUiMode) { sUiMode = currentUiMode; BatteryDiffEntry.clearCache(); Log.d(TAG, "clear icon and label cache since uiMode is changed"); } } @Override public void onSaveInstanceState(Bundle savedInstance) { if (savedInstance == null) { Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java +31 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.ContentValues; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.format.DateUtils; Loading Loading @@ -76,6 +78,8 @@ public final class BatteryChartPreferenceControllerTest { @Mock private PowerGaugePreference mPowerGaugePreference; @Mock private ExpandDividerPreference mExpandDividerPreference; @Mock private BatteryUtils mBatteryUtils; @Mock private Configuration mConfiguration; @Mock private Resources mResources; private Context mContext; private BatteryDiffEntry mBatteryDiffEntry; Loading Loading @@ -104,6 +108,33 @@ public final class BatteryChartPreferenceControllerTest { createBatteryHistoryMap()); } @Test public void testOnResume_uiModeIsChanged_clearBatteryDiffEntryCache() { doReturn(mResources).when(mContext).getResources(); doReturn(mConfiguration).when(mResources).getConfiguration(); mConfiguration.uiMode = Configuration.UI_MODE_NIGHT_UNDEFINED; // Ensures the testing environment is correct. assertThat(BatteryDiffEntry.sResourceCache).hasSize(1); mBatteryChartPreferenceController.onResume(); // Changes the uiMode in the configuration. mConfiguration.uiMode = Configuration.UI_MODE_NIGHT_YES; mBatteryChartPreferenceController.onResume(); assertThat(BatteryDiffEntry.sResourceCache).isEmpty(); } @Test public void testOnResume_uiModeIsNotChanged_notClearBatteryDiffEntryCache() { doReturn(mResources).when(mContext).getResources(); doReturn(mConfiguration).when(mResources).getConfiguration(); mConfiguration.uiMode = Configuration.UI_MODE_NIGHT_UNDEFINED; // Ensures the testing environment is correct. assertThat(BatteryDiffEntry.sResourceCache).hasSize(1); mBatteryChartPreferenceController.onResume(); assertThat(BatteryDiffEntry.sResourceCache).isNotEmpty(); } @Test public void testOnDestroy_activityIsChanging_clearBatteryEntryCache() { doReturn(true).when(mSettingsActivity).isChangingConfigurations(); Loading Loading
src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +17 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.fuelgauge; import android.content.Context; import android.content.res.Configuration; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; Loading @@ -39,6 +40,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.OnResume; import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState; import com.android.settingslib.utils.StringUtil; Loading @@ -53,7 +55,7 @@ import java.util.Map; /** Controls the update for chart graph and the list items. */ public class BatteryChartPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, OnSaveInstanceState, BatteryChartView.OnSelectListener, OnSaveInstanceState, BatteryChartView.OnSelectListener, OnResume, ExpandDividerPreference.OnExpandListener { private static final String TAG = "BatteryChartPreferenceController"; /** Desired battery history size for timestamp slots. */ Loading @@ -67,6 +69,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll private static final String KEY_EXPAND_SYSTEM_INFO = "expand_system_info"; private static final String KEY_CURRENT_TIME_SLOT = "current_time_slot"; private static int sUiMode = Configuration.UI_MODE_NIGHT_UNDEFINED; @VisibleForTesting Map<Integer, List<BatteryDiffEntry>> mBatteryIndexedMap; Loading Loading @@ -124,6 +128,18 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mTrapezoidIndex, mIsExpanded)); } @Override public void onResume() { final int currentUiMode = mContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK; if (sUiMode != currentUiMode) { sUiMode = currentUiMode; BatteryDiffEntry.clearCache(); Log.d(TAG, "clear icon and label cache since uiMode is changed"); } } @Override public void onSaveInstanceState(Bundle savedInstance) { if (savedInstance == null) { Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java +31 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.ContentValues; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.format.DateUtils; Loading Loading @@ -76,6 +78,8 @@ public final class BatteryChartPreferenceControllerTest { @Mock private PowerGaugePreference mPowerGaugePreference; @Mock private ExpandDividerPreference mExpandDividerPreference; @Mock private BatteryUtils mBatteryUtils; @Mock private Configuration mConfiguration; @Mock private Resources mResources; private Context mContext; private BatteryDiffEntry mBatteryDiffEntry; Loading Loading @@ -104,6 +108,33 @@ public final class BatteryChartPreferenceControllerTest { createBatteryHistoryMap()); } @Test public void testOnResume_uiModeIsChanged_clearBatteryDiffEntryCache() { doReturn(mResources).when(mContext).getResources(); doReturn(mConfiguration).when(mResources).getConfiguration(); mConfiguration.uiMode = Configuration.UI_MODE_NIGHT_UNDEFINED; // Ensures the testing environment is correct. assertThat(BatteryDiffEntry.sResourceCache).hasSize(1); mBatteryChartPreferenceController.onResume(); // Changes the uiMode in the configuration. mConfiguration.uiMode = Configuration.UI_MODE_NIGHT_YES; mBatteryChartPreferenceController.onResume(); assertThat(BatteryDiffEntry.sResourceCache).isEmpty(); } @Test public void testOnResume_uiModeIsNotChanged_notClearBatteryDiffEntryCache() { doReturn(mResources).when(mContext).getResources(); doReturn(mConfiguration).when(mResources).getConfiguration(); mConfiguration.uiMode = Configuration.UI_MODE_NIGHT_UNDEFINED; // Ensures the testing environment is correct. assertThat(BatteryDiffEntry.sResourceCache).hasSize(1); mBatteryChartPreferenceController.onResume(); assertThat(BatteryDiffEntry.sResourceCache).isNotEmpty(); } @Test public void testOnDestroy_activityIsChanging_clearBatteryEntryCache() { doReturn(true).when(mSettingsActivity).isChangingConfigurations(); Loading