Loading src/com/android/settings/fuelgauge/PowerUsageSummary.java +16 −1 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList SparseArray<List<Anomaly>> mAnomalySparseArray; @VisibleForTesting BatteryHeaderPreferenceController mBatteryHeaderPreferenceController; @VisibleForTesting boolean mNeedUpdateBatteryTip; private BatteryTipPreferenceController mBatteryTipPreferenceController; private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; Loading Loading @@ -211,6 +213,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList mAnomalySparseArray = new SparseArray<>(); restartBatteryInfoLoader(); mNeedUpdateBatteryTip = icicle == null; mBatteryTipPreferenceController.restoreInstanceState(icicle); } @Override Loading Loading @@ -291,7 +295,12 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList return; } // Only skip BatteryTipLoader for the first time when device is rotated if (mNeedUpdateBatteryTip) { restartBatteryTipLoader(); } else { mNeedUpdateBatteryTip = true; } // reload BatteryInfo and updateUI restartBatteryInfoLoader(); Loading Loading @@ -385,6 +394,12 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList restartBatteryStatsLoader(true /* clearHeader */); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mBatteryTipPreferenceController.saveInstanceState(outState); } void restartBatteryStatsLoader(boolean clearHeader) { super.restartBatteryStatsLoader(); if (clearHeader) { Loading src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +14 −1 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ package com.android.settings.fuelgauge.batterytip; import android.content.Context; import android.os.Bundle; import android.support.annotation.VisibleForTesting; import android.support.v14.preference.PreferenceFragment; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroup; import android.support.v7.preference.PreferenceScreen; Loading @@ -34,6 +34,7 @@ import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; Loading @@ -44,6 +45,7 @@ import java.util.Map; public class BatteryTipPreferenceController extends BasePreferenceController { private static final String TAG = "BatteryTipPreferenceController"; private static final int REQUEST_ANOMALY_ACTION = 0; private static final String KEY_BATTERY_TIPS = "key_battery_tips"; private BatteryTipListener mBatteryTipListener; private List<BatteryTip> mBatteryTips; Loading Loading @@ -138,6 +140,17 @@ public class BatteryTipPreferenceController extends BasePreferenceController { return super.handlePreferenceTreeClick(preference); } public void restoreInstanceState(Bundle bundle) { if (bundle != null) { List<BatteryTip> batteryTips = bundle.getParcelableArrayList(KEY_BATTERY_TIPS); updateBatteryTips(batteryTips); } } public void saveInstanceState(Bundle outState) { outState.putParcelableList(KEY_BATTERY_TIPS, mBatteryTips); } /** * Listener to give the control back to target fragment */ Loading src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java +3 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,9 @@ public class RestrictAppTip extends BatteryTip { // If anomaly becomes invisible, show it as handled mState = StateType.HANDLED; mShowDialog = false; } else { mState = tip.getState(); mShowDialog = tip.shouldShowDialog(); } } Loading tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +8 −6 Original line number Diff line number Diff line Loading @@ -352,6 +352,14 @@ public class PowerUsageSummaryTest { R.string.advanced_battery_title); } @Test public void testRefreshUi_deviceRotate_doNotUpdateBatteryTip() { mFragment.mNeedUpdateBatteryTip = false; mFragment.refreshUi(); verify(mFragment, never()).restartBatteryTipLoader(); } public static class TestFragment extends PowerUsageSummary { private Context mContext; Loading @@ -364,12 +372,6 @@ public class PowerUsageSummaryTest { return mContext; } @Override protected void refreshUi() { // Leave it empty for toggle apps menu test } @Override void showBothEstimates() { List<BatteryInfo> fakeBatteryInfo = new ArrayList<>(2); Loading tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.os.Bundle; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceGroup; Loading Loading @@ -133,6 +134,21 @@ public class BatteryTipPreferenceControllerTest { BatteryTip.StateType.NEW); } @Test public void testSaveAndRestore() { mBatteryTipPreferenceController.updateBatteryTips(mOldBatteryTips); final Bundle bundle = new Bundle(); mBatteryTipPreferenceController.saveInstanceState(bundle); final BatteryTipPreferenceController controller = new BatteryTipPreferenceController( mContext, KEY_PREF, mSettingsActivity, mFragment, mBatteryTipListener); controller.mPreferenceGroup = mPreferenceGroup; controller.mPrefContext = mContext; controller.restoreInstanceState(bundle); assertOnlyContainsSummaryTip(mPreferenceGroup); } @Test public void testHandlePreferenceTreeClick_noDialog_invokeCallback() { when(mBatteryTip.getType()).thenReturn(SMART_BATTERY_MANAGER); Loading Loading
src/com/android/settings/fuelgauge/PowerUsageSummary.java +16 −1 Original line number Diff line number Diff line Loading @@ -105,6 +105,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList SparseArray<List<Anomaly>> mAnomalySparseArray; @VisibleForTesting BatteryHeaderPreferenceController mBatteryHeaderPreferenceController; @VisibleForTesting boolean mNeedUpdateBatteryTip; private BatteryTipPreferenceController mBatteryTipPreferenceController; private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; Loading Loading @@ -211,6 +213,8 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList mAnomalySparseArray = new SparseArray<>(); restartBatteryInfoLoader(); mNeedUpdateBatteryTip = icicle == null; mBatteryTipPreferenceController.restoreInstanceState(icicle); } @Override Loading Loading @@ -291,7 +295,12 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList return; } // Only skip BatteryTipLoader for the first time when device is rotated if (mNeedUpdateBatteryTip) { restartBatteryTipLoader(); } else { mNeedUpdateBatteryTip = true; } // reload BatteryInfo and updateUI restartBatteryInfoLoader(); Loading Loading @@ -385,6 +394,12 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList restartBatteryStatsLoader(true /* clearHeader */); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mBatteryTipPreferenceController.saveInstanceState(outState); } void restartBatteryStatsLoader(boolean clearHeader) { super.restartBatteryStatsLoader(); if (clearHeader) { Loading
src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +14 −1 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ package com.android.settings.fuelgauge.batterytip; import android.content.Context; import android.os.Bundle; import android.support.annotation.VisibleForTesting; import android.support.v14.preference.PreferenceFragment; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroup; import android.support.v7.preference.PreferenceScreen; Loading @@ -34,6 +34,7 @@ import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; Loading @@ -44,6 +45,7 @@ import java.util.Map; public class BatteryTipPreferenceController extends BasePreferenceController { private static final String TAG = "BatteryTipPreferenceController"; private static final int REQUEST_ANOMALY_ACTION = 0; private static final String KEY_BATTERY_TIPS = "key_battery_tips"; private BatteryTipListener mBatteryTipListener; private List<BatteryTip> mBatteryTips; Loading Loading @@ -138,6 +140,17 @@ public class BatteryTipPreferenceController extends BasePreferenceController { return super.handlePreferenceTreeClick(preference); } public void restoreInstanceState(Bundle bundle) { if (bundle != null) { List<BatteryTip> batteryTips = bundle.getParcelableArrayList(KEY_BATTERY_TIPS); updateBatteryTips(batteryTips); } } public void saveInstanceState(Bundle outState) { outState.putParcelableList(KEY_BATTERY_TIPS, mBatteryTips); } /** * Listener to give the control back to target fragment */ Loading
src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java +3 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,9 @@ public class RestrictAppTip extends BatteryTip { // If anomaly becomes invisible, show it as handled mState = StateType.HANDLED; mShowDialog = false; } else { mState = tip.getState(); mShowDialog = tip.shouldShowDialog(); } } Loading
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +8 −6 Original line number Diff line number Diff line Loading @@ -352,6 +352,14 @@ public class PowerUsageSummaryTest { R.string.advanced_battery_title); } @Test public void testRefreshUi_deviceRotate_doNotUpdateBatteryTip() { mFragment.mNeedUpdateBatteryTip = false; mFragment.refreshUi(); verify(mFragment, never()).restartBatteryTipLoader(); } public static class TestFragment extends PowerUsageSummary { private Context mContext; Loading @@ -364,12 +372,6 @@ public class PowerUsageSummaryTest { return mContext; } @Override protected void refreshUi() { // Leave it empty for toggle apps menu test } @Override void showBothEstimates() { List<BatteryInfo> fakeBatteryInfo = new ArrayList<>(2); Loading
tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.os.Bundle; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceGroup; Loading Loading @@ -133,6 +134,21 @@ public class BatteryTipPreferenceControllerTest { BatteryTip.StateType.NEW); } @Test public void testSaveAndRestore() { mBatteryTipPreferenceController.updateBatteryTips(mOldBatteryTips); final Bundle bundle = new Bundle(); mBatteryTipPreferenceController.saveInstanceState(bundle); final BatteryTipPreferenceController controller = new BatteryTipPreferenceController( mContext, KEY_PREF, mSettingsActivity, mFragment, mBatteryTipListener); controller.mPreferenceGroup = mPreferenceGroup; controller.mPrefContext = mContext; controller.restoreInstanceState(bundle); assertOnlyContainsSummaryTip(mPreferenceGroup); } @Test public void testHandlePreferenceTreeClick_noDialog_invokeCallback() { when(mBatteryTip.getType()).thenReturn(SMART_BATTERY_MANAGER); Loading